Skip to content

Instantly share code, notes, and snippets.

@hikalium
Last active November 8, 2024 14:50
Show Gist options
  • Save hikalium/f84d52d9b9e0c8c610cbfba7726d512f to your computer and use it in GitHub Desktop.
Save hikalium/f84d52d9b9e0c8c610cbfba7726d512f to your computer and use it in GitHub Desktop.

Quartus II をコマンドラインで使う方法

  • Quartus II Version 15.0.0 Build 145 04/22/2015 SJ Web Edition

  • with Cyclone IV C4E6 ボード

  • ちなみに私はこれを、QuartusIIインストールも含め一切GUIを起動することなく実行した。

  • ピン制約情報は.qsfに記述。.pinファイルは自動生成されるだけで参照されることはない。

  • .sof, .pofが, Xilinxでいうbitstreamに相当する最終生成ファイル。

まずled.vを作成

module led (led1,led2,clk,btn);
	input clk;
	input btn;
	output led1;
	output led2;
	reg[24:0]count;
	assign led1 = count[24];
	assign led2 = btn;
	always @(posedge(clk)) begin
		if(btn == 0) count <= count + 1;
	end
endmodule

これをSynthesis

  • --partに指定するパーツID
    • EP4CE6E22C8   - チップに書いてあるんだけど、最後のNは不要。    - まあミスったらエラーが出るので適当に試せばいいと思う。
~/altera/15.0/quartus/bin/quartus_map led --part=EP4CE6E22C8 --source=led.v

次にピン配置を決定(led.qsfに追記)

  • clkが忘れがちなので注意(私は忘れた)
  • 忘れた分(指定しなかったピン)は自動配置される。
set_location_assignment PIN_73 -to led1
set_location_assignment PIN_74 -to led2
set_location_assignment PIN_86 -to btn
set_location_assignment PIN_23 -to clk

出力ファイルを生成

quartus_asm led

書き込み

  • 各種ヘルプはコマンドで見れる(たとえばoコマンドの説明)
quartus_pgm --help=o
  • 書き込み器のリスト取得
quartus_pgm -l
  • 書き込み
quartus_pgm -c 1 -m jtag -o P\;led.sof@1
  • もしもError (213019): Can't scan JTAG chain. Error code 89.と言われたら
# from http://www.alteraforum.com/forum/showthread.php?t=5893&page=4
killall jtagd
sudo /opt/altera/quartus/bin/jtagd

おしまい!

これで、86番ポートのボタンを押している間は、74番ポートのLEDがついて、73番ポートのLEDがチカチカし、 ボタンを離すと74番のLEDは消えて、73番ポートのLEDは変化が止まる、という回路ができるはず。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment