我是靠谱客的博主 沉静石头,最近开发中收集的这篇文章主要介绍基于Verilog HDL与虚拟实验平台的计算机组成与CPU实验第六章:移位寄存器实验代码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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实验第六章:移位寄存器实验代码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部