概述
1多选(3分)
选出右移移位寄存器
得分/总分
A.
module Shifter
( input Dsi,
input CLK,
output reg [3:0] Q);
always@(posedeg clk)
begin
Q[3]<= Dsi;
Q[2]<=Q[3];
Q[1]<=Q[2];
Q[0]<=Q[1];
end
endmodule
B.
module Shifter
( input Dsi,
input CLK,
output reg [0:3] Q);
always@(posedeg clk)
Q[0:3]<={ Dsi,Q[0:2]};
endmodule
C.
module Shifter
(input Dsi,
input [3:0] In,
input CLK,
output reg [3:0] Q);
always@(posedeg clk)
if(Load)
Q<= In;
else
Q<={Dsi,Q[3:1]};
endmodule
D.
module Shifter
( input Dsi,
input CLK,
output reg [0:3] Q);
always@(posedeg clk)
begin
Q[0]<= Dsi;
Q[1]<=Q[0];
Q[2]<=Q[1];
Q[3]<=Q[2];
end
endmodule
正确答案:A、B、C、D
2填空(2分)
使用远程实验平台虚拟面板验证流水灯
根据设计要求,并行装载是将输入端数据装入到移位寄存器,并行装载的时钟全能信号是________(iLoad/iEnable)。右移的时钟使能信号是________(iLoad/iEnable)。
注意,多个填空的答案之间用#隔开,例如:三个空,答案填写为:0#有#更新
得分/总分
iLoad#iEnable
正确答案:iLoad#iEnable
3填空(2分)
使用远程实验平台虚拟面板验证流水灯
本实验设计的流水灯移位寄存器是将移位寄存器________(内部保存的数据Q/输入端数据iD)移位。
得分/总分
内部保存的数据Q
正确答案:内部保存的数据Q
4填空(2分)
使用远程实验平台虚拟面板验证流水灯
在时钟上升沿到来时,如果并行装载和右移的控制信号同时有效,该流水灯的功能是________(并行载入/右移)。
得分/总分
并行载入
正确答案:并行载入
5填空(2分)
如果想实现逻辑右移,需要将________(0/1/Q[7]/Q[0])连接到iLeftIn。
得分/总分
0
正确答案:0
6填空(2分)
如果想实现算术右移,需要将________(0/1/Q[7]/Q[0])连接到iLeftIn。
得分/总分
Q[7]
正确答案:Q[7]
7填空(2分)
如果想实现循环右移,需要将________(0/1/Q[7]/Q[0])连接到iLeftIn。
得分/总分
Q[0]
正确答案:Q[0]
实验代码
module RightShifter
#(parameter N=4)
(
input logic Clk,
input logic Reset,
input logic iLoad,
input logic iEnable,
input logic iLeftIn,
input logic [N-1:0] iD,
output logic [N-1:0] oQ
);
always @(posedge Clk or posedge Reset)
if(Reset)
oQ<=1;
else if(iLoad)
oQ<=iD[N-1:0];
else if(iEnable)
oQ<={oQ[0],oQ[N-1:1]};
endmodule
`default_nettype none
module VirtualBoard (
input logic CLOCK, // 10 MHz Input Clock
input logic [19:0] PB, // 20 Push Buttons, logical 1 when pressed
input logic [35:0] S, // 36 Switches
output logic [35:0] L, // 36 LEDs, drive logical 1 to light up
output logic [7:0] SD7, // 8 common anode Seven-segment Display
output logic [7:0] SD6,
output logic [7:0] SD5,
output logic [7:0] SD4,
output logic [7:0] SD3,
output logic [7:0] SD2,
output logic [7:0] SD1,
output logic [7:0] SD0
);
/** The input port is replaced with an internal signal **/
wire reset = PB[0];
wire clk = PB[1];
wire Load =S[8];
wire [7:0] In=S[7:0];
wire Enable=S[9];
/************* The logic of this experiment *************/
logic [7:0]q;
localparam N = 8;
RightShifter #(N) R0(.Clk(clk),.Reset(reset),.iLoad(Load),.iEnable(Enable),.iD(In),.oQ(q),.iLeftIn(q[0]));
always @ (posedge clk or posedge reset)
if (Load)
q<=In;
else if (reset)
q <= 1;
else
q <= {q[6:0], q[7]};
/****** Internal signal assignment to output port *******/
assign L[7:0] = q[7:0];
endmodule
最后
以上就是沉静石头为你收集整理的基于Verilog HDL与虚拟实验平台的计算机组成与CPU实验第六章:移位寄存器实验代码的全部内容,希望文章能够帮你解决基于Verilog HDL与虚拟实验平台的计算机组成与CPU实验第六章:移位寄存器实验代码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复