eric2013 发表于 2013-9-22 15:00:48

时序逻辑电路(3)--------移位寄存器

【例9.22】8位移位寄存器
module shifter(din,clk,clr,dout);
input din,clk,clr;
output dout;
reg dout;
always @(posedge clk)
    begin
if (clr)dout<= 8'b0;      //同步清0,高电平有效
else
   begin
dout <= dout << 1;      //输出信号左移一位
dout <= din;         //输入信号补充到输出信号的最低位
end
    end
endmodule
【例10.11】阻塞赋值方式描述的移位寄存器1
module block1(Q0,Q1,Q2,Q3,din,clk);
output Q0,Q1,Q2,Q3;
input clk,din;
reg Q0,Q1,Q2,Q3;
always @(posedge clk)
   begin
   Q3=Q2;      //注意赋值语句的顺序
   Q2=Q1;
   Q1=Q0;
   Q0=din;
    end
endmodule
【例10.14】非阻塞赋值方式描述的移位寄存器
module block4(Q0,Q1,Q2,Q3,din,clk);
output Q0,Q1,Q2,Q3;
input clk,din;
reg Q0,Q1,Q2,Q3;
always @(posedge clk)
    begin
   Q3<=Q2;
    Q1<=Q0;
    Q2<=Q1;
    Q0<=din;
    end
endmodule
页: [1]
查看完整版本: 时序逻辑电路(3)--------移位寄存器