用Verilog HDL编程设计8位左右移移位寄存器电路。

8位左右移移位寄存器电路的时钟输入端是clk,上升沿有效;ldn是异步预置控制输入端,低电平有效;d是8位预置数据输入端;k是左右移位控制输入,当k=0时为左移,k=1时为右移q是移位寄存器的8位输出端。

module Verilog1(clk,ldn,k,d,q);

input clk,ldn,k;
input [7:0] d;
output [7:0] q;

reg[7:0] d_reg,q_reg;
always@(negedge ldn)
if(!ldn)
d_reg <= d;

always@(posedge clk )
begin
if(k)
begin//right
q_reg[7:0] <= {1'b00,d_reg[7:1]};
end
else q_reg[7:0] <= {d_reg[6:0],1'b0};
end

assign q = q_reg;
endmodule追问

请问有没有波形仿真图啊?还有这个“ 1'b00 ”是什么意思啊?

追答

就是1'b0.
这个只是移动一位.多位的话可以将输出再接到输入. 还不清楚你的意思,ldn时 k, d一块锁存输入吗? k为高时右移几位怎么确定,有几个时钟上升沿就移几次吗?

温馨提示:答案为网友推荐,仅供参考
相似回答