Quartusで、回路図からHDLを生成する

FPGA

Quartusを使ってFPGAを設計する際、HDL(Hardware Description Language)ではなく回路図で設計するのも一つの方法です。

私は各機能モジュールはVHDLで設計しますが、階層のトップは回路図にしています。

理由は、トップが回路図だと、ブロック図みたいになってデータの流れがわかりやすいからです。

まあ、この辺は人の好みによると思いますが。

それで、今回は、Quartusを使って回路図設計を行い、それをHDLに変換したいと思います。

HDLに変換してしまえば、Quartus以外のFPGA設計ツールでも使用でき、設計資産が流用できそうです。

Intel FPGAの特有機能(IntelのIPなど)を使っている場合は別ですが、FPGAのメーカーをIntelから別メーカーに切り替えるときなどに使えるかもしれません。

遅延時間などが変わるため、メーカー変更時には注意が必要ですが。

スポンサーリンク

回路図からHDLに変換

Quartusでは、回路図からHDLへの変換は簡単です。

以下の回路で試してみます。

2入力1出力のAND素子と、2入力1出力のOR素子が、各1個あるだけです。

回路作成が終わったら、メニューFile -> Create / Update -> Create HDL Design File from Current Fileを選択します。

すると、回路図に問題がなければ、以下のウインドウが表示されます。

File nameの内容を確認し、File typeでVHDLかVerilog HDLかを選択します。

File nameの保存先やファイル名を編集しようとしたのですが、できませんでした。これは固定かもしれません。

選択が終わったら、OKボタンを押します。

そしたら、File nameで指定した場所に、HDLファイルが作成されます。

そのHDL(ここではVHDL)ファイルを開いた結果がこちら。

入出力のポート宣言から、ANDとOR演算まで生成してくれました。

回路図とHDLの混在設計の場合

回路図からHDLを生成することはできました。

次に、回路図とHDLの混在設計の場合も試してみました。

試したのは下図で、先ほどの回路に、VHDLで作成したXOR演算のモジュールを追加しました。

HDLで作成したモジュールをシンボル化し、回路図で利用する方法はこちらの記事を参照ください。

VHDLで作成したXORの中身はこちらです。

LIBRARY ieee;
USE ieee.std_logic_1164.all; 

ENTITY xor_hdl IS 
	PORT
	(
		X1_IN :  IN  STD_LOGIC;
		X2_IN :  IN  STD_LOGIC;
		X_OUT :  OUT  STD_LOGIC
	);
END xor_hdl;

ARCHITECTURE rtl OF xor_hdl IS 



BEGIN 

	X_OUT <= X1_IN xor X2_IN;


END rtl;

これで、先ほどと同様、メニューFile -> Create / Update -> Create HDL Design File from Current Fileを選択しました。

その結果、生成されたVHDLがこちら。

シンプルに、X_OUT <= X1_IN xor X2_IN;と生成されるのではなく、componentを使ったHDLを生成してくれました。

まとめ

「回路図では設計できるけど、HDLではどうやって記述したら良いかわからない」という時にも使える機能かもしれません。

まず、回路を設計し、それをHDLに変換すれば、Quartusが記述方法を教えてくれるので。

タイトルとURLをコピーしました