インテル® Quartus® Prime プロ・エディションのユーザーガイド: デザインの推奨事項

ID 683082
日付 8/03/2023
Public
ドキュメント目次

1.4.3.2. 等間隔のタップを備えるシフトレジスター

次に示すVerilog HDLおよびVHDLの例は、8ビット幅、255ビット長のシフトレジスター (W > 1M = 255) で、等間隔にタップ (64、128、192、254) を備えています。

合成ソフトウェアは、この機能を単一のALTSHIFT_TAPS IPコアに実装し、サポートされているデバイスのRAMにマッピングします (可能な配置は、専用のRAMブロックまたはMLABメモリーになります)。

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