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
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