2021-05-22

这篇博客介绍了使用Verilog HDL设计4位移位寄存器、可配置位数的移位寄存器、递增计数器以及带有并行加载功能的递增计数器的实验。通过源代码展示了如何在时钟边沿触发下实现这些基本的数字逻辑电路。实验代码包括了条件加载、逐位移位以及加1计数等功能,适用于数字逻辑和FPGA设计的学习与实践。
摘要由CSDN通过智能技术生成

一、实验名称
1.4位移位寄存器的另一种代码;
2.一个n位移位寄存器;
3.递增计数器;
4.带并行载入端的递增计数器。
二、实验目的
1.每个实验都有相应的代码,实行联合仿真
三、实验截图与源代码
1.实验(1)
在这里插入图片描述
1.
module shift4(R,L,w,Clock,Q);
input [3:0]R;
input L,w,Clock;
output reg [3:0]Q;

always @(posedge Clock)
	if(L)
		Q<=R;
	else
	begin
		Q[0]<=Q[1];
		Q[1]<=Q[2];
		Q[2]<=Q[3];
		Q[3]<=w;
	end

endmodule

2.实验(2)
在这里插入图片描述
2.
module shiftn(R,L,w,Clock,Q);
parameter n=16;
input [n-1:0]R;
input L,w,Clock;
output reg [n-1:0]Q;
integer k;

always @(posedge Clock)
	if(L)
		Q<=R;
	else
	begin
		for(k=0;k<n-1;k=k+1)
			Q[k]<=Q[k+1];
		Q[n-1]<=w;
	end

endmodule
3.实验3
在这里插入图片描述
3.
module upcount(Resetn,Clock,E,Q);
input Resetn,Clock,E;
output reg [3:0] Q;

always @(negedge Resetn,posedge Clock)
	if(!Resetn)
		Q<=0;
	else if(E)
		Q<=Q+1;

endmodule
4.实验(4)
在这里插入图片描述
4.
module Tupcount(R,Resetn,Clock,E,L,Q);
input [3:0]R;
input Resetn,Clock,E,L;
output reg [3:0] Q;

always @(negedge Resetn,posedge Clock)
	if(!Resetn)
		Q<=0;
	else if(L)
		Q<=R;
	else if(E)
		Q<=Q+1;

endmodule

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值