Intel® Quartus® Prime Pro Edition用户指南: 设计建议

ID 683082
日期 9/28/2020
Public

本文档可提供新的版本。客户应 单击此处 前往查看最新版本。

文档目录

1.4.3.2. 包含均匀间隔的抽头(tap)的移位寄存器

下面示例显示了一个Verilog HDL和VHDL 8-bit宽,255-bit长的移位寄存器(W > 1M = 255),包括在64、128、192和254上均匀分布的抽头(tap)。

综合软件在单一ALTSHIFT_TAPS IP core中实现此功能,并将其映射到受支持器件中的RAM,这是在专用RAM模块或MLAB存储器中所允许的布局。

包含均匀间隔的抽头(tap)的Verilog HDL 8比特宽,255比特长的移位寄存器

module top (clk, shift, sr_in, sr_out, sr_tap_one, sr_tap_two,
				sr_tap_three );
	input clk, shift;
	input [7:0] sr_in;
	output [7:0] sr_tap_one, sr_tap_two, sr_tap_three, sr_out;
	reg [7:0] sr [254:0];
	integer n;
	always @ (posedge clk)
		begin
		if (shift == 1'b1)
			begin
			for (n = 254; n>0; n = n-1)
				begin
				sr[n] <= sr[n-1];
				end
			sr[0] <= sr_in;
		end
	end
	assign sr_tap_one = sr[64];
	assign sr_tap_two = sr[128];
	assign sr_tap_three = sr[192];
	assign sr_out = sr[254];
endmodule