FPGAスタディノート_QuartusIIプライムスタンダードエディション---メモリIPコアの呼び出し

FPGAスタディノート

Quartus II Prime StandardEdition-メモリIPコアの呼び出し

古いバージョンのQuartusIIと新しいバージョンのIPコアの呼び出し方法は多少異なります。以下は、参考のために、Quartus II Prime StandardEditionの呼び出し方法です。

  1. 次の図に示すように、assignmenで[IP Catalog]をクリックし、ramと入力して、RAM:2-PORTをダブルクリックします。ここに画像の説明を挿入

  2. 必要に応じてポート情報メモリのストレージサイズを選択し、[次へ]をクリックします
    ここに画像の説明を挿入

  3. 必要に応じてデータ幅を選択し、[次へ]をクリックします
    ここに画像の説明を挿入

  • 自動:LCを自動的に割り当て
    ます:内部レジスタ
    M9K:内部ブロックRAM
  1. クロックタイプを選択し、[次へ]をクリックします。ここに画像の説明を挿入
    ポートAのバイト有効化を作成します。ビット幅が8ビットより大きい場合

  2. ポート登録方法を選択し、[次へ]をクリックしますここに画像の説明を挿入

  3. メモリ初期化コンテンツを選択し、[次へ]をクリックしますここに画像の説明を挿入

  4. 次へをクリックここに画像の説明を挿入

  5. [完了]をクリックして、ram ipcoreを呼び出して完了します。
    ここに画像の説明を挿入

  6. プロジェクトファイルを右クリックし、呼び出されたram .vファイルを1、2、3の順序でプロジェクトに追加します。
    ここに画像の説明を挿入ここに画像の説明を挿入

  7. 追加後、シミュレーション検証機能を実行します ここに画像の説明を挿入

  8. シミュレーション検証用のテストベンチを作成する

//----testbench-------------------------------------
`timescale 1ns/1ns
`define clock_period 20
module ram_dual_tb;//ram_dual

	reg clk;
	reg [7:0] data;
	reg [7:0] rdaddress;
	reg [7:0] wraddress;
	reg wren;
	wire [7:0] q;
	integer i;
	
//----例化ip核---------------------------------	
	ip ram_dual(
	.clock(clk),
	.data(data),
	.rdaddress(rdaddress),
	.wraddress(wraddress),
	.wren(wren),
	.q(q)
	);
//----激励设置--------------------------------	
	initial clk = 1;
	always begin #(`clock_period/2) clk = ~clk;end
	
	initial begin
		data = 0;
		rdaddress = 32;
		wraddress = 0;
		wren = 0;
		
		#(`clock_period*30+1);
		for(i=0;i<=15;i=i+1)begin
			wren = 1;
			data = 255-i;
			wraddress = i;
			#(`clock_period);
		end
		wren = 0;
		
		#(`clock_period*30+1);
		for(i=0;i<=15;i=i+1)begin
			rdaddress = i;
			#(`clock_period);
			
		end
		
		#(`clock_period*30);
		$stop;
	end
endmodule

ここに画像の説明を挿入

【注意】:個人学習メモ、間違いがありましたら、お気軽に教えてください、丁寧です~~~

おすすめ

転載: blog.csdn.net/weixin_50722839/article/details/109748878