Vivadoプロジェクトと自作IPの作成
1.Vivadoプロジェクト作成
今回のLEDチカチカのプロジェクトはリファレンスデザインのプロジェクトを元として作ります。
リファレンスデザインのzipを解凍したフォルダ内は以下のようになっています。
Hello Worldのときと同様にdesign_basic_settings.cmdを編集します。
編集が終わったら
vivado_create_project_batchmode.cmd → vivado_open_existing_project_guimode.cmd
または
vivado_create_project_guimode.cmd
のコマンドを実行してVivadoプロジェクトを作成し、VivadoのGUIモードで開きます。
Vivadoの画面の左側の Flow Navigator -> Integrator -> Open Block Design をクリックすると
ブロックダイアグラムが表示されます。
現在はHello Worldに必要なモジュールだけが用いられています。
これから、ここにLEDチカチカに必要なモジュールを追加していきます。
2. 自作IPの作成
次にLEDへの出力を制御する部分を作成します。
とりあえず、Vivadoはそのままにしておきます。
フォルダ内の test_board/ip_lib に移動します。
そしてこの中に適当なエディタで led_ctrl.vhd というvhdlファイルを作成し、
以下のように編集します。
-- led_ctrl.vhd library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity led_ctrl is Port ( clk_ip : in std_logic; led_op : out std_logic; interval_ip : in std_logic_vector( 31 downto 0) ); end led_ctrl; architecture Behavioral of led_ctrl is signal clk : std_logic; signal led_toggle : std_logic; signal count : std_logic_vector( 31 downto 0); signal interval : std_logic_vector( 31 downto 0); begin clk <= clk_ip; led_op <= led_toggle; process(clk) begin if(clk'event and clk='1') then if(interval /= interval_ip) then count <= X"00000000"; elsif(count = interval) then if( count /= 0 ) then count <= X"00000000"; led_toggle <= not led_toggle; end if; else count <= count + 1; end if; end if; end process; process(clk) begin if(clk'event and clk='1') then interval <= interval_ip; end if; end process; end Behavioral;
ここまでの作業で test_board/ip_lib/led_ctrl.vhd が追加されました。
ここでまたVivadoに戻ります。
Vivadoタブの Tools -> Create and Package IP をクリックすると、
以下の画面が出てくるので Next ボタンを押します。
以下の画面でPackage a specified directoryを選択し Next ボタンを押します。
以下の画面で Directory に先ほど作成した test_board/ip_lib/led_ctrl を指定し Next ボタンを押します。
以下の画面で何も変更せず Next ボタンを押します。
以下の画面で Finish ボタンを押すと自作IPのためのプロジェクトが別ウィンドウで立ち上がります。
画面左の Flow Navigator -> Project Manager -> Package IP をクリックして Package IP の画面を開きます。
Package IP 画面のReview and Package タブからPackage IP(またはRe-Package IP)ボタンをクリックします。
IPが作成された後以下のようなウィンドウが表示されるので yes ボタンを押して、
IP作成のためのプロジェクトを終了します。
以上の手順でLEDへの出力を制御するための自作IPの作成が完了しました。