Comments
Description
Transcript
トレーニング書き込み
Open-It FPGAトレーニングコース(初級編) 第9版 付録 2013年5月10日 修正 内容 1. Verilog-HDL記述 DFF 同期リセット付き 2. 検出器信号の受け方 3. FPGAダウンロード Internal SPI Flash mode 4. 問題: 組み合わせ回路 5. 問題: 順序回路 Open-It FPGAトレーニングコース(初級) 2 復習:同期リセット付きDFFの動作 (アクティブLowのリセットの場合) CLK RSTn(入力) D(入力) Q(出力) クロックの立ち上がり時に判断 リセット信号がLowになると、 入力Dの値に関係なく出力がLowになる 入力 RSTn D Q 出力 CLK Open-It FPGAトレーニングコース(初級) 3 DFFの書き方/同期リセット付き 同期リセットを使用する場合 always@の()内に表れない reg Q; always@ (posedge CLK) begin if(RSTn==1’b0)begin Q <= 1'b0; 同期リセットでの動き end else begin Q <= D; 通常動作での動き end end Open-It FPGAトレーニングコース(初級) 4 付録: 検出器信号の受け方 同期回路での非同期信号の扱い方 Open-It FPGAトレーニングコース(初級) 5 検出器の信号 検出器の信号はアナログ信号 FPGAに入力される時 通常ディスクリ(デジタル化)出力を入力する 検出器の出力はランダム Poisson arrival FPGAは同期回路 非同期信号を入力しても問題は無いのか? Open-It FPGAトレーニングコース(初級) 6 入力回路 デジタル化した 検出器信号 D Q 出力 CLK CLK CLKの立ち上がり (取り込み)で変化 したら出力は? デジタル化された 検出器の信号 Poisson arrivals Open-It FPGAトレーニングコース(初級) 7 CLKに対して何処で変化するかわからない! DFFのMeta-stable state CLKの立ち上がりで入力が変化した時 出力がどうなるかはトランジスタレベルの振る舞いに依存し ます 例の場合 Lowのままかもしれませんし サンプリング誤差になる Highになるかもしれません この時は問題ない もしかしたら中間レベルになるかもしれません、時には振 動する事もあります これは誤動作する原因です! Open-It FPGAトレーニングコース(初級) 8 対策 実は決定的な対策はありません! 誤動作発生確率を無視できるくらいまで下げることで 対処します 中間状態になる確率は低い事 中間状態を取る条件がトランジスタレベルの個性で異なる 事を利用する 通常、2段以上のDFFを直列に接続します デジタル化した 検出器信号 D Q D Q D Q CLK Open-It FPGAトレーニングコース(初級) ここに論理回路を入れない 9 FPGAへダウンロード Internal SPI Flash mode Open-It FPGAトレーニングコース(初級) 10 PROMへの書き込み手順 1. 2. 3. 4. 5. 6. 7. 8. 9. ボードの電源を切る Bitファイルの再生成(スタートアップクロックをCCLK) MCSファイルを生成する Boot modeをInternal SPI Flashにする USBケーブル(ダウンロード・ケーブル)を接続 ボードの電源を入れる データをROMへダウンロード 電源を一度切って、再度投入 動作確認 Open-It FPGAトレーニングコース(初級) 11 PROMへの書き込み手順 1. 2. 3. 4. 5. 6. 7. 8. 9. ボードの電源を切る Bitファイルの再生成(スタートアップクロックをCCLK) MCSファイルを生成する Boot modeをInternal SPI Flashにする USBケーブル(ダウンロード・ケーブル)を接続 ボードの電源を入れる データをROMへダウンロード 電源を一度切って、再度投入 動作確認 Open-It FPGAトレーニングコース(初級) 12 BITファイル再生成: Start Up-Clockの設定 Generate Programming File を選択して右クリック Process Properties Open-It FPGAトレーニングコース(初級) 13 BITファイル: FPGA Start Up-Clockの設定 ②CCLKを選択 ①Startup Option を選択 Open-It FPGAトレーニングコース(初級) 14 ファイルの生成 C:¥Temp¥FPGA_Seminar¥Course1を確認し生成前後を比較してビットファイルの生成を確認 Generate Programming File 右クリック→ Run, Rerunで生成 Open-It FPGAトレーニングコース(初級) 15 正常生成確認 チェックマークになっている事を確認 よくあるエラーの原因: 出力信号を未使用のまま合成 未使用I/Oはコメントアウトする事 これでBITファイルが生成されました Open-It FPGAトレーニングコース(初級) 16 ダウンロードツール Generate Target PROM/ACE File Create Programming PROM/ACE Fileをダブルクリック Open-It FPGAトレーニングコース(初級) 17 iMPACT起動 iMPACTが起動する Create PROM Fileをダブルクリック Open-It FPGAトレーニングコース(初級) 18 iMPACT projectファイルの確認 プロジェクトファイルが見つらないと警告 作っていないのでOK Open-It FPGAトレーニングコース(初級) 19 PROM File Formatter ③選択 ⑥ファイル名を指定 ①Spartan3ANを選択 ④Add Storage Device ⑦作業ディレクトリを確認 ②クリック ⑤クリック ⑧クリック Open-It FPGAトレーニングコース(初級) 20 Internal SPI Flash File Formatter 起動画面 Open-It FPGAトレーニングコース(初級) 21 Bitファイルの指定 Open-It FPGAトレーニングコース(初級) 22 読み込みファイル設定確認 Open-It FPGAトレーニングコース(初級) 23 MCSファイル生成 ここで右クリック Generate File Open-It FPGAトレーニングコース(初級) 24 MCSファイル生成終了 Succeededしている事を確認 Open-It FPGAトレーニングコース(初級) 25 PROMへの書き込み手順 1. 2. 3. 4. 5. 6. 7. 8. 9. ボードの電源を切る Bitファイルの再生成(スタートアップクロックをCCLK) MCSファイルを生成する Boot modeをInternal SPI Flashにする USBケーブル(ダウンロード・ケーブル)を接続 ボードの電源を入れる データをROMへダウンロード 電源を一度切って、再度投入 動作確認 Open-It FPGAトレーニングコース(初級) 26 Boot Modeの設定 ISF KEK Seminar board Internal SPI Flash mode このジャンパーで切り替える M0 M1 M2 M2のみジャンパー接続 BOOT MODE SELECT Open-It FPGAトレーニングコース(初級) 27 Boundary Scan画面へ変更 ①Baundary Scanをダブルクリック ここで右クリック ①ここで右クリック→Initialize Chain Open-It FPGAトレーニングコース(初級) 28 JTAG検出結果 KEK Seminar board 検出された接続が表示 ダウンロードする ファイルを割り当てる Open-It FPGAトレーニングコース(初級) 29 ダウンロードファイルの指定 設定対象が緑色になる 使用するFPGA test.mcsを指定 複数ある時はデバイス毎にダウンロードデータを指定する Open-It FPGAトレーニングコース(初級) 30 書き込みパラメータを設定 書き込み後VerifyするかRead back を禁止するかなど設定できる Open-It FPGAトレーニングコース(初級) 31 Program プログラムするチップの図の上で右クリック ここでは練習の為MCSファイルを使用したが、 Spartan3ANシリーズはbitファイルでも Internal SPI Flashに書き込むことができる。 Bitファイルを選択しProgram Flash and Load FPGA で書き込む事が出来る ダウンロードファイルを変更したくなった時 はここで変更できる Open-It FPGAトレーニングコース(初級) 32 ダウンロード終了 成功しましたか? Open-It FPGAトレーニングコース(初級) 33 PROMへの書き込み手順 1. 2. 3. 4. 5. 6. 7. 8. 9. ボードの電源を切る Bitファイルの再生成(スタートアップクロックをCCLK) MCSファイルを生成する Boot modeをInternal SPI Flashにする USBケーブル(ダウンロード・ケーブル)を接続 ボードの電源を入れる データをROMへダウンロード 電源を一度切って、再度投入 動作確認 Open-It FPGAトレーニングコース(初級) 34 補足:iMPACT単体での起動方法 1. スタート→ 2. 全てのプログラム→ 3. Xilinx ISE Design Suite 12.4→ 4. ISEデザインツール→ 5. ツール→ 6. iMPACT Open-It FPGAトレーニングコース(初級) 35 組み合わせ回路の問題 次の回路を設計し、シミュレーションおよびFPGAへ実装して動作確認し てください 4bit adder Multiplexer (Data selector) Open-It FPGAトレーニングコース(初級) 36 4bit adder 次の回路を設計し、シミュレーションおよびFPGAへ実装して動作確認し てください Full adder 1bit+1bitを計算する回路 4bit adder Full adderを4つ使用して設計する モジュールの呼び出し方法などは「Web版 Verilog-HDL入門」を参照してください Open-It FPGAトレーニングコース(初級) 37 4bit adder: 1bit Full adder 真理値表 モジュール名:FULL_ADDER ファイル名:FULL_ADDER.V CIN A B S COUT A + B + CINを計算してSへ出力 桁上がりが発生したらCOUTへ出力 CIN A B S COUT 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 1 1 1 1 Open-It FPGAトレーニングコース(初級) 38 4bit adder: MY_ADDER モジュール名:MY_ADDER ファイル名:MY_ADDER.V DIP SW で設定 IN_A[3:0] LED[3:0] IN_B[3:0] LED[4] 足し算結果 A+B 最上位の桁上がり DIPSWを半分に分けて、4bitずつ使用します。 2つの4bitの値を加えて結果をLED[3:0]に表示します 最上位の桁上がりが発生した場合(加算結果が16以上の時)は桁上がりの値をLED[4]を表示します 使用するFPGAのピン番号は次ページを参照してください Open-It FPGAトレーニングコース(初級) 39 4bit adder: ピンリスト(MY_ADDR.V) 記載が無き項目はdefaultを設定 Name Site I/O Std. Drive Str. IN_A[0] P33 IN_A[1] P35 IN_A[2] P53 IN_A[3] P58 IN_B[0] P69 IN_B[1] P70 IN_B[2] P71 IN_B[3] P72 LED0 Pull type P142 LVCMOS33 12 Slow LED1 P141 LVCMOS33 12 Slow LED2 P139 LVCMOS33 12 Slow LED3 P138 LVCMOS33 12 Slow LED4 P135 LVCMOS33 12 Slow Open-It FPGAトレーニングコース(初級) Slew 40 Multiplexer (Data Selector) モジュール名:MUX1B ファイル名:MUX1B.V DIP_SW[0] DIP_SW[1] SW_A 真理値表 LED[7] DIP_SW[0] DIP_SW[1] SW_A LED[7] L X L L H X L H X L H L X H H H XはDon’t care (何でも良いと言う意味) Open-It FPGAトレーニングコース(初級) 41 順序回路の問題 LOAD信号付きDFF 値設定可能なDFF Open-It FPGAトレーニングコース(初級) 42 値設定可能なDFF SW_Aを押すとDIP_SW[0]の値をLED[7]へ出力する CLK DIP_SW[0] SW_A LED[7] 注意)SW_Aを押すとLowになる、通常はHigh Open-It FPGAトレーニングコース(初級) 43 履歴 2012/5/17 第1版 ISE13.4対応 内田智久(Esys), 林達也(大阪大学) 2013/5/10 第9版 ISE14.5対応 内田智久(Esys) Open-It FPGAトレーニングコース(初級) 44