当前位置:首页 >> 信息与通信 >>

基于Verilog的八位移位寄存器

Verilog HDL 八位移位寄存器

林春涛

电子信息科学与技术 08 级 2 班 3108001158
//定义了一个 8 位的名为 q 的 reg 型数据 //声明输入信号 direction,clk 和 d //声明输出信号 q //初始化寄存器输出

module EightBit(direction,clk,q,d); reg[7:0] q; input direction,clk,d; Output[7:0] q; initial q=0; always @(posedge clk) begin shift(q,d,direction); end task shift; inout [7:0] Q; input D; input dir; if(dir==0) begin Q<=(Q<<1); Q[0]<=D; end else begin Q<=(Q>>1); Q[7]<=D; end endtask endmodule 编译仿真图如下:

//调用等待任务 shift //定义移位寄存器开始移位

//当 direction 为 0 时定义为左移,否则为右移

结果分析: 图中设计了三个 d 为高电平的区域,图的左半部分下可见 direction 为 0,寄存器左移, 每次 clk 上升沿到达时,可见 q[0]的值一直向高位传。右半部分 direction 设为 1,寄存器右 移,每次 clk 上升沿到达时,可见 q[7]的值一直向低位移动。可见实现了八位移位寄存器。