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

① 用Verilog HDL编写设计题目指定的源程序,并在QuartusⅡ软件平台完成设计输入、设计编译和设计仿真。
②8位左右移移位寄存器电路的时钟输入端是clk,上升沿有效;ldn是异步预置控制输入端,低电平有效;d是8位预置数据输入端;k是左右移位控制输入,当k=0时为左移,k=1时为右移q是移位寄存器的8位输出端。
用EDA实训仪上的按扭K8做为时钟(clk)的输入,用K0按扭做为异步预置控制输入端(ldn),用8只波动开关S0~S7做为预置数据输入(d);用一只波动开关S15做为左右移位控制信号输入(k);用8只发光二极管L0~L7显示移位寄存器输出(q)的状态。
只需要Verilog HDL程序即可

第1个回答  2011-07-01
module shift_reg8(clk, ldn, d, k, q)
input clk;
input ldn, k;
input [7:0]d;
output [7:0]q;

always@(posedge clk or ldn)
begin
if(ldn == 1'b0)
q <= d;
else
if(k == 1'b0)
q <= {q[6:0], 1'b0};
else
q <= {1'b0, q[7:1]};
end

endmodle本回答被网友采纳
第2个回答  2011-06-22
module baidu(clk,ldn,d,k,q);
input clk;
input ldn;
input k;
input [7:0] d;
output [7:0] q;

reg [7:0] q;

always @ (posedge clk or negedge ldn)
begin
if (!ldn)
q <= d[7:0];
else
begin
if (k)
q <= {1'b0, q[7:1]};
else
q <= {q[6:0], 1'b0};
end
end

endmodule
第3个回答  2011-06-22
module (clk, ldn, d, k, q);
input clk;
input ldn;
input [7:0] d;
input k;
output [7:0] q;

reg [7:0] q;

always @ (posedge clk or negedge ldn) begin
if (~ldn)
q <= d[7:0];
else
if (k)
q <= {1'b0, q[7:1]};
else
q <= {q[6:0], 1'b0};
end

endmodule
相似回答