时序逻辑电路(4)----------移位寄存器
【例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]