Intel Quartus と CX-Trainer の使用法
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[上プロIII後半(回路設計)]]
* ツール起動 [#v64baeaa]
- [サーバで実行する場合] サーバにログインして quartus 起動
-- ssh -X oyster0 (または oyster1, moule1)
-- シミュレーション波形の表示以外は -X 無しで端末上でもで...
- [端末ローカルで実行する場合] quartus 起動
-- /eda1 をマウントしてあること
-- /eda1/Altera/quartus/13.0sp1/quartus/bin/ にパスが通っ...
-- libXext fontconfig libXrender libSM freetype libpng12 ...
--- 他のパッケージの状況によるが、yum install libXext.i68...
--- Debian 系は dpkg --add-architecture i386; apt-get ins...
- [自宅PCなど自分でツールをインストールする場合]
-- 最新の Quartus Prime ではなく、Quartus II 13.0 SP1 を...
--- 使用する FPGA が旧モデルで、新版ではサポートされてい...
-- 無償ライセンス (Web Edition) でよい
-- シミュレーションのために ModelSim-Altera Edition (の中...
-- ディスク容量が相当必要なので注意 (30GB ぐらい?)
- FPGA ボードへのダウンロードは別ツール (PsiUsbConfig2) ...
* ツール設定 [#a5e3ffb2]
- Tools > Options
-- License Setup でライセンスを取得できていることを確認
--- License file は 1717@ecs-lic:27000@ecs-lic:27001@ecs-...
-- EDA Tool Options の ModelSim-Altera のパスを確認
--- /eda1/Altera/quartus/13.0sp1/modelsim_ase/bin
--- modelsim_ae になっていたら modelsim_ase に変更 (ae の...
* 新規プロジェクト [#wb84cef4]
- File > New Project Wizard
-- 作業ディレクトリ
--- ホームの下にディレクトリを作る (例: ~/designs/)
--- 更に下に個別設計のディレクトリ (例: ~/designs/adder4/)
-- プロジェクト名
-- トップレベルデザイン名
--- プロジェクト名と同じにしておくと無難
--- 例題ではトップレベルはボードのドライバ (cx_frame)、プ...
- 用意した設計ファイルがあれば Add Files で追加
- Family & Device Settings でデバイス Cyclone III - EP3C2...
* 既存プロジェクト [#o9e51308]
- 配布された設計例/テンプレートから始める場合、作業を再開...
- File > Open Project で *.qpf を指定 (次からはツール立ち...
* 設計入力 [#qfd2ceea]
- File > New で Verilog HDL ファイルを追加、編集
- トップレベルの名前で保存
- トップレベルを変更するには Project Navigator ウィンドウ...
* コンパイル [#k1102805]
- コンパイル
-- Processing -> Start Compilation
-- Project Navigator ウィンドウの Hierarchy タブでトップ...
-- トップレベルエンティティは Project Navigator の Files ...
- デバッグ
-- Messages ウィンドウで Error と Warning を確認
-- ピン指定関係以外の Warning は撲滅
- ピン指定
-- Assignments -> Pin Planner で指定
-- *.qsf にテキストエディタで書いても可
-- 内部回路のコンパイルでは指定無し (Warning 無視) でよい
- タイミング制約 (後で)
- コーディング-コンパイルのサイクル (設定変更なし) は GUI...
-- quartus_sh --flow compile <プロジェクト名>
* シミュレーション設定 [#c6624743]
- Assignments > Settings
-- Simulation 出力は Verilog にする
- Processing > Start > Start Test Bench Template Writer
- 入力波形設定
- Assignment > Settings > NativeLink settings
-- Compile test bench に適当な名前でテストベンチ
-- 上のテストベンチファイルを追加
-- トップレベルモジュール名 xxx_vlg_tst を合わせる
* シミュレーション [#o182e2e0]
- Tools -> Run Simulation Tool > RTL simulation
-- デバッグ
-- 波形が出ればOK
-- transcript にエラーが出ていないか確認
- Tools -> Run Simulation Tool > Gate Level simulation
-- 遅延を確認
- コーディング-シミュレーションのサイクル (設定変更なし) ...
-- コマンドは、GUI から立ち上げたときのログ (simulation/m...
-- simulation/modelsim/ の環境とは別に以下で実行しても OK
--- vlib work
--- vlog xx.v xx2.v xx.vt (Verilog ファイル、テストベンチ...
--- vsim -c xx_vlg_tst (テストベンチのトップモジュール名)
* ピン指定 [#o3ec4412]
- cx_frame.v
-- スイッチ、表示系の周辺回路を用意してある
-- この中で自分の設計を呼び出してコンパイル
-- 不要な部分は消してよい
- cx_frame.qsf
-- ピン配置を指定してある
* タイミング制約 [#f400c461]
- クロックを指定
-- 自動認識されなければ TimeQuest から手動で指定
-- クロック周期を指定
-- xxx.sdc に保存
-- xxx.sdc をを直接編集してもよい
--- create_clock -name "clock" -period 20ns [get_ports {c...
--- derive_clock_uncertainty
--- set_input_delay -clock {clock} 0 [all_inputs]
--- set_output_delay -clock {clock} 0 [all_outputs]
* タイミング解析 [#d1e1c2c8]
- Compilation Report の TimeQuest Timing Analyzer の節を...
-- 赤で表示されている項目があれば要チェック
--- クロック周波数の指定を遅くすることも検討
--- Unconstrained Paths は全て 0 になっていること
-- Slow 1200mV 85C Model でタイミングをチェック
--- Fmax Summary の Fmax が最大動作周波数
--- Worst-Case Timing Paths でクリティカルパスをチェック
--- Setup の余裕がないところは論理を改善
--- Hold 違反はないはず、もしあれば設計におかしいところが...
- Tools -> TimeQuest Timing Analyzer ツールも解析に有用
- Tools -> Netlist Viewers -> RTL viewer も参考になる
* FPGAへダウンロード [#ic5b3708]
- コンパイルして output_files/xxx.sof を生成
- File->Convert Program Files.. で rbf に変換
-- Programming file type は rbf
-- Input files to convert に sof を指定
-- 設定を Conversion Setup Data に保存しておくとよい (例...
- USB ケーブルを接続しダウンロード
-- PsiUsbConfig2 -fxxx.rbf &color(red){("-f" の後スペース...
-- リモートサーバではなく、ケーブルを接続しているホストで...
-- ボードのテスト用データ: &ref("cx_frame.rbf"); (ソース ...
-- iibusb が無くて PsiUsbConfig2 が動かない場合
yum install libusb
-- 一般ユーザ権限で FPGA に書込めない場合: ファイル /etc/...
SUBSYSTEM=="usb", ATTR{idVendor}=="0a2f", MODE="0666"
終了行:
[[上プロIII後半(回路設計)]]
* ツール起動 [#v64baeaa]
- [サーバで実行する場合] サーバにログインして quartus 起動
-- ssh -X oyster0 (または oyster1, moule1)
-- シミュレーション波形の表示以外は -X 無しで端末上でもで...
- [端末ローカルで実行する場合] quartus 起動
-- /eda1 をマウントしてあること
-- /eda1/Altera/quartus/13.0sp1/quartus/bin/ にパスが通っ...
-- libXext fontconfig libXrender libSM freetype libpng12 ...
--- 他のパッケージの状況によるが、yum install libXext.i68...
--- Debian 系は dpkg --add-architecture i386; apt-get ins...
- [自宅PCなど自分でツールをインストールする場合]
-- 最新の Quartus Prime ではなく、Quartus II 13.0 SP1 を...
--- 使用する FPGA が旧モデルで、新版ではサポートされてい...
-- 無償ライセンス (Web Edition) でよい
-- シミュレーションのために ModelSim-Altera Edition (の中...
-- ディスク容量が相当必要なので注意 (30GB ぐらい?)
- FPGA ボードへのダウンロードは別ツール (PsiUsbConfig2) ...
* ツール設定 [#a5e3ffb2]
- Tools > Options
-- License Setup でライセンスを取得できていることを確認
--- License file は 1717@ecs-lic:27000@ecs-lic:27001@ecs-...
-- EDA Tool Options の ModelSim-Altera のパスを確認
--- /eda1/Altera/quartus/13.0sp1/modelsim_ase/bin
--- modelsim_ae になっていたら modelsim_ase に変更 (ae の...
* 新規プロジェクト [#wb84cef4]
- File > New Project Wizard
-- 作業ディレクトリ
--- ホームの下にディレクトリを作る (例: ~/designs/)
--- 更に下に個別設計のディレクトリ (例: ~/designs/adder4/)
-- プロジェクト名
-- トップレベルデザイン名
--- プロジェクト名と同じにしておくと無難
--- 例題ではトップレベルはボードのドライバ (cx_frame)、プ...
- 用意した設計ファイルがあれば Add Files で追加
- Family & Device Settings でデバイス Cyclone III - EP3C2...
* 既存プロジェクト [#o9e51308]
- 配布された設計例/テンプレートから始める場合、作業を再開...
- File > Open Project で *.qpf を指定 (次からはツール立ち...
* 設計入力 [#qfd2ceea]
- File > New で Verilog HDL ファイルを追加、編集
- トップレベルの名前で保存
- トップレベルを変更するには Project Navigator ウィンドウ...
* コンパイル [#k1102805]
- コンパイル
-- Processing -> Start Compilation
-- Project Navigator ウィンドウの Hierarchy タブでトップ...
-- トップレベルエンティティは Project Navigator の Files ...
- デバッグ
-- Messages ウィンドウで Error と Warning を確認
-- ピン指定関係以外の Warning は撲滅
- ピン指定
-- Assignments -> Pin Planner で指定
-- *.qsf にテキストエディタで書いても可
-- 内部回路のコンパイルでは指定無し (Warning 無視) でよい
- タイミング制約 (後で)
- コーディング-コンパイルのサイクル (設定変更なし) は GUI...
-- quartus_sh --flow compile <プロジェクト名>
* シミュレーション設定 [#c6624743]
- Assignments > Settings
-- Simulation 出力は Verilog にする
- Processing > Start > Start Test Bench Template Writer
- 入力波形設定
- Assignment > Settings > NativeLink settings
-- Compile test bench に適当な名前でテストベンチ
-- 上のテストベンチファイルを追加
-- トップレベルモジュール名 xxx_vlg_tst を合わせる
* シミュレーション [#o182e2e0]
- Tools -> Run Simulation Tool > RTL simulation
-- デバッグ
-- 波形が出ればOK
-- transcript にエラーが出ていないか確認
- Tools -> Run Simulation Tool > Gate Level simulation
-- 遅延を確認
- コーディング-シミュレーションのサイクル (設定変更なし) ...
-- コマンドは、GUI から立ち上げたときのログ (simulation/m...
-- simulation/modelsim/ の環境とは別に以下で実行しても OK
--- vlib work
--- vlog xx.v xx2.v xx.vt (Verilog ファイル、テストベンチ...
--- vsim -c xx_vlg_tst (テストベンチのトップモジュール名)
* ピン指定 [#o3ec4412]
- cx_frame.v
-- スイッチ、表示系の周辺回路を用意してある
-- この中で自分の設計を呼び出してコンパイル
-- 不要な部分は消してよい
- cx_frame.qsf
-- ピン配置を指定してある
* タイミング制約 [#f400c461]
- クロックを指定
-- 自動認識されなければ TimeQuest から手動で指定
-- クロック周期を指定
-- xxx.sdc に保存
-- xxx.sdc をを直接編集してもよい
--- create_clock -name "clock" -period 20ns [get_ports {c...
--- derive_clock_uncertainty
--- set_input_delay -clock {clock} 0 [all_inputs]
--- set_output_delay -clock {clock} 0 [all_outputs]
* タイミング解析 [#d1e1c2c8]
- Compilation Report の TimeQuest Timing Analyzer の節を...
-- 赤で表示されている項目があれば要チェック
--- クロック周波数の指定を遅くすることも検討
--- Unconstrained Paths は全て 0 になっていること
-- Slow 1200mV 85C Model でタイミングをチェック
--- Fmax Summary の Fmax が最大動作周波数
--- Worst-Case Timing Paths でクリティカルパスをチェック
--- Setup の余裕がないところは論理を改善
--- Hold 違反はないはず、もしあれば設計におかしいところが...
- Tools -> TimeQuest Timing Analyzer ツールも解析に有用
- Tools -> Netlist Viewers -> RTL viewer も参考になる
* FPGAへダウンロード [#ic5b3708]
- コンパイルして output_files/xxx.sof を生成
- File->Convert Program Files.. で rbf に変換
-- Programming file type は rbf
-- Input files to convert に sof を指定
-- 設定を Conversion Setup Data に保存しておくとよい (例...
- USB ケーブルを接続しダウンロード
-- PsiUsbConfig2 -fxxx.rbf &color(red){("-f" の後スペース...
-- リモートサーバではなく、ケーブルを接続しているホストで...
-- ボードのテスト用データ: &ref("cx_frame.rbf"); (ソース ...
-- iibusb が無くて PsiUsbConfig2 が動かない場合
yum install libusb
-- 一般ユーザ権限で FPGA に書込めない場合: ファイル /etc/...
SUBSYSTEM=="usb", ATTR{idVendor}=="0a2f", MODE="0666"
ページ名: