Verilog-HDL講習会DE0編(9) 順序回路記述(4) ~複雑な状態遷移図~
はじめに
サブモジュールを作って,順序回路を記述する際のQuartus II 13.0の使い方を記す.
やること
- 3Hzのクロックに同期して4桁同時にカウントアップ
- 25Hzのクロックに同期して4bit毎に左右にスライド
もう少し詳細に
- 回路を並列に動作させる
- 2つの状態遷移図に分ける (状態遷移図に関してここ参照)
指針
状態遷移1: LEDGスライド回路
ピンの自動割り振り
作業フォルダを作成
Demonstrations/DE0_Topフォルダの全てを作業フォルダにコピペ
作業フォルダ内のDE0_TOP.qpfをダブルクリック
テストベンチの準備
デバイス名を右クリック「settings」「EDA TOOL Setting」「Simulation」
- 「Tool name」「ModelSim-Altera」を選択
- 「Format for output netlist」「Verilog-HDL」を選択
- 「Time scale」を「1 ns」
メニューバー「Processing」「start」「Start Test Bench Template Writer」
デバイス右クリ「settings」「EDA TOOL Setting」「Simulation」「NatlevLink setting」「Compile test bench」にチェック
「test Benches」「New」「test bench and simulation files」の「…」をクリック,作業フォルダ/simulation/modelsim内の「**.vt」open
- test bench name「**」
- top level module in test benchに「**_vlg_tst」
Test bench and simulation filesでadd後ok
テストの実行
ModelSimが起動
rtl_workを展開,「DE0_TOP_vlg_tst」を右栗editを選択
「'timescale 1 ns/ 1 ps」を確認,以下記述
修正したら保存,右栗recompile,右栗simulate
状態遷移2: カウントアップ回路
ピンの自動割り振り
作業フォルダを作成
Demonstrations/DE0_Topフォルダの全てを作業フォルダにコピペ
作業フォルダ内のDE0_TOP.qpfをダブルクリック
テストベンチの準備
デバイス名を右クリック「settings」「EDA TOOL Setting」「Simulation」
- 「Tool name」「ModelSim-Altera」を選択
- 「Format for output netlist」「Verilog-HDL」を選択
- 「Time scale」を「1 ns」
メニューバー「Processing」「start」「Start Test Bench Template Writer」
デバイス右クリ「settings」「EDA TOOL Setting」「Simulation」「NatlevLink setting」「Compile test bench」にチェック
「test Benches」「New」「test bench and simulation files」の「…」をクリック,作業フォルダ/simulation/modelsim内の「**.vt」open
- test bench name「**」
- top level module in test benchに「**_vlg_tst」
Test bench and simulation filesでadd後ok
テストの実行
ModelSimが起動
rtl_workを展開,「DE0_TOP_vlg_tst」を右栗editを選択
修正したら保存,右栗recompile,右栗simulate
設計した各回路を読み込んで1つの回路に統合する
ピンの自動割り振り
作業フォルダを作成
Demonstrations/DE0_Topフォルダの全てを作業フォルダにコピペ
作業フォルダ内のDE0_TOP.qpfをダブルクリック