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

ID 683082
日付 4/13/2020
Public

このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。

ドキュメント目次

1.4.3.2. タップを等間隔に配置したシフトレジスター

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

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

Verilog HDLシングル・ビット幅、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