当前位置: 首页 > 编程笔记 >

verilog 移位寄存器

东郭臻
2023-03-14
本文向大家介绍verilog 移位寄存器,包括了verilog 移位寄存器的使用技巧和注意事项,需要的朋友参考一下

示例

具有异步复位功能的N位深移位寄存器。

module shift_register #(
  parameter REG_DEPTH = 16
)(
  input clk,       //时钟信号
  input ena,       //使能信号
  input rst,       //复位信号
  input data_in,   //输入位
  output data_out  //输出位
);

  reg [REG_DEPTH-1:0] data_reg;

  always @(posedge clk or posedge rst) begin
    if (rst) begin //异步复位
      data_reg <= {REG_DEPTH{1'b0}}; //加载REG_DEPTH零
    end else if (enable) begin
      data_reg <= {data_reg[REG_DEPTH-2:0], data_in}; //将输入数据加载为LSB并将所有其他位左移 
    end
  end

  assign data_out = data_reg[REG_DEPTH-1]; //MSB是输出位

endmodule
           

 类似资料:
  • 基本上指令有8->16、8->32、8->64、16->32和16->64。 32->64的转换在哪里?我必须使用签名版本吗? 如果是的话,您如何使用完整的64位来表示无符号整数?

  • 我正在寻找一种方法来移动arch64寄存器x1中的任何32位常数。 是否有一种方法可以执行

  • 本文向大家介绍Intel x86 Assembly& Microarchitecture 将进位标志移入寄存器,包括了Intel x86 Assembly& Microarchitecture 将进位标志移入寄存器的使用技巧和注意事项,需要的朋友参考一下 示例 背景 如果Carry(C)标志保存您要放入寄存器的值,那么天真的方法是执行以下操作: 使用“ sbb” 为了避免跳转,一种更直接的方法是使

  • 我可以使用MOV指令将存储在内存中的数据项移动到我选择的通用寄存器中。 现在,不要向我开枪,但以下是如何实现的:

  • 本文向大家介绍Intel x86 Assembly& Microarchitecture 8位寄存器,包括了Intel x86 Assembly& Microarchitecture 8位寄存器的使用技巧和注意事项,需要的朋友参考一下 示例 前四个16位寄存器可以将其高低字节和低半字节直接作为自己的寄存器进行访问: AH和AL是AX寄存器的上半部分和下半部分。 BH和BL是BX寄存器的上半部分和下

  • 本文向大家介绍Intel x86 Assembly& Microarchitecture 32位寄存器,包括了Intel x86 Assembly& Microarchitecture 32位寄存器的使用技巧和注意事项,需要的朋友参考一下 示例 英特尔生产80386时,他们从16位处理器升级到了32位处理器。32位处理意味着两件事:要处理的数据都是32位,而要访问的内存地址是32位。为此,他们仍然