序列信号发生器-移位寄存器构成

该博客介绍了使用Verilog语言设计一个移位寄存器的步骤,展示了如何在时钟边沿触发下,根据加载信号更新寄存器值。内容包括寄存器长度与序列长度的关系以及其对电路面积的影响。同时,给出了测试模块的代码,用于验证移位寄存器的功能。
摘要由CSDN通过智能技术生成

电路工作频率高,缺点:移位寄存器长度取决于序列长度,电路占用面积大

module signal_maker(clk,reset,dout,load,din,d);
	parameter width = 4;
	input clk,reset,load;
	input [width-1:0] din;
	output [width-1:0] dout;
	output d;
	reg [width-1:0] dout;
	
	always @ (posedge clk)begin
		if(reset)
			dout <= 0;
		else if(load)
			dout <= din;
		else
			dout <= {dout[width-2:0],dout[width-1]};
	end
	
	assign d = dout[width-1];

endmodule

`timescale 1ns/1ns

module signal_maker_tb;
	parameter width = 4;
	reg clk,reset,load;
	reg [width-1:0] din;
	wire [width-1:0] dout;
	wire d;

	signal_maker n1 (clk,reset,dout,load,din,d);
	
	initial begin
		clk = 0;
		reset = 0;
		load = 0;
	#10	reset = 1;
	#20	reset = 0;
		load = 1;
		din = 4'b1010;
	#10	load = 0;
	#90	load = 1;
		din = 4'b1101;
	#10	load = 0;
	end
	always	begin
		#10	clk = ~clk;
	end
		//#200 $finish;
endmodule


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值