トップ・レベルの作成とPin Planner

VHDLで記述するのはあくまで回路内部の動作です。したがって記述した回路と外の世界、具体的にはFPGAのピンを何らかの方法で接続しない限り、記述した回路は実体として動作しません。

この、結合の役割を果たすのがVHDL側ではトップ・レベルと呼ばれるエンティティで、Quartus Prime側ではPin Plannerと呼ばれるツールです。

トップ・レベル

トップ・レベルはVHDLによるエンティティとアーキテクチャの対です。これ自身はVHDLに沿って書かれており、何の変哲もありません。昨日紹介したVHDLコードをコンポーネントとして使用するトップ・レベルが以下のコードです。

-- LED display demo on BeMicro MAX10
-- Shifting LED pattern every second. 


library ieee;
use ieee.std_logic_1164.all;

entity blink_top is 
	port ( 	reset_n : in std_logic;
				clock : in std_logic;	-- assign 50Mhz clock.
				led_n : out std_logic_vector( 7 downto 0 ) );
			
end entity blink_top;


architecture rtl of blink_top is
	component blink_slide is
		generic(	period : integer := 50000000 );
		port ( 	reset : in std_logic;
					clock : in std_logic;	-- assign 50Mhz clock.
					led : out std_logic_vector( 7 downto 0 ) 
				);
	end component blink_slide;
	
	signal display_data : std_logic_vector( 7 downto 0 );
begin
	blinker : blink_slide 
		generic map (
			period => 25000000
		)
		port map (
			reset => not reset_n,
			clock => clock,
			led => display_data
		);
		
	led_n <= not display_data;

end architecture rtl;

特に変哲もありません。書いてみた実感は「単なる結線だった」と言うところでしょうか。ネット上の例も呼んでみましたが、トップ・レベルで行うのはおおむね下位のコンポーネントの結線と、ポートを通した外部との接続だけのようです。

トップ・レベルを作り終わったら、Analysis & Elaborationを実行します。これによって、トップ・レベル・エンティティのポート名をシステムが読み取ることができます。

Pin Planner

Analysis & Elaborationが成功したら、Pin Plannerを開きます。すると、All Pin ペインにトップ・レベル・エンティティのポート名が現れます。これはAnalysis & Elaborationによってシステムが読み込んだ結果です。

エンティティのポートとFPGAのピンの結線はこのウィンドウで行います。結線はノード名をピン上にドラッグ&ドロップするか、ロケーションフィールドにピン名を書き込むことで行います。ロケーションへの書き込みは”PIN_”を付けずに書き込んでもかまいません。システムが自動的に補います。

image

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください