O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Verilog-HDL Tutorial (9)

938 visualizações

Publicada em

Verilog-HDL Tutorial Using DE0 FPGA Board

Publicada em: Educação
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • Seja a primeira pessoa a gostar disto

Verilog-HDL Tutorial (9)

  1. 1. 1 Verilog-HDL 講習会DE0編(9) 順序回路記述(4) ∼複雑な状態遷移図∼ 31, July, 2013 鹿児島大学 中原 啓貴
  2. 2. DE0_Default もどきを作ってみよう (DE0ボードの電源を入れたときの動作) 2 3Hzのクロック に同期して 4桁同時に カウントアップ 25 Hzのクロックに同期して 4ビット毎に左右にスライド
  3. 3. 回路を並列に動作させる •  なにも一つの回路で制御する必要はない! •  今回は2つの状態遷移図に分けよう! 3
  4. 4. LEDGスライドの状態遷移図 4 000 001 010 101 100 011 Reset LEDG <= 11110 _00000; is_right_shift <= 1; NONE LEDG <= 01111 _00000; is_right_shift <= 1; is_right_shift == 1; LEDG <= 00111 _10000; is_right_shift == 1; LEDG <= 00011_11000; is_right_shift == 1; LEDG <= 00001_11100; 110 is_right_shift == 1; LEDG <= 00000_11110; is_right_shift == 1; LEDG <= 00000_01111; NONE LEDG <= 00000_11110; is_right_shift == 0; is_right_shift == 0; LEDG <= 00001_11100; is_right_shift == 0; LEDG <= 00011_11000; is_right_shift == 1; LEDG <= 00111 _10000; is_right_shift == 0; LEDG <= 01111_00000; is_right_shift == 0; LEDG <= 11110_00000;
  5. 5. カウントアップの状態遷移図 5 000 001 010 011 111 110 101 100 Reset HEX_D <= 1000000; HEX_DP <= 0; NONE HEX_D <= 1111001; HEX_DP <= 1; NONE HEX_D <= 0100100; HEX_DP <= 0; NONE HEX_D <= 0110000; HEX_DP <= 1; NONE HEX_D <= 0011001; HEX_DP <= 0; NONE HEX_D <= 0010010; HEX_DP <= 1; NONE HEX_D <= 0000010; HEX_DP <= 0; NONE HEX_D <= 1111000; HEX_DP <= 1; NONE HEX_D <= 1000000; HEX_DP <= 0;
  6. 6. どうやって実装するか? •  並列動作する回路なので独立に設計 •  各回路の設計後、1つにまとめる 6
  7. 7. まずはLEDGスライド回路を 設計してFPGA上で動作させる 7
  8. 8. 8 •  ピン配置が面倒くさいので、デフォルト のプロジェクトを読み込みましょう! (DE0に限った事ではないが、Terasic製品はサンプルCD-ROMの プロジェクトを改変するのが楽でお勧め) DE0付属のCD-ROM Demonstrations 内の "DE0_Top"フォルダの ファイル全てを C:¥verilog¥DE0_tutorial_9_LEDG_Slide¥ 内にコピー
  9. 9. DE0_TOP.qpfをダブルクリック してQuartus IIを起動 9 Pin Plannerを開いてみると ピン配置が終わっている!
  10. 10. Verilog-HDLを入力 10 ダブルクリック Verilog-HDLの テンプレートが 表示されるので コードを入力 コード入力したら保存を忘れずに!
  11. 11. そろそろモジュール階層を 意識して記述しましょう •  最後に各回路をマージするので、サブ・ モジュールにLEDGスライド回路を記述する •  サブ・モジュールは別のVerilog-HDLファイルに 記述する ‒  可読性を上げるため •  トップモジュールにべた書きは読みにくい!! •  トップモジュールはFPGA外部の信号線定義のみに留める ‒  次の設計のときに読み込んで再利用可能 •  FPGAボードが変ってもインスタンス化して接続し直すだけで 再利用可能 11
  12. 12. Verilog-HDL ファイルの 新規追加 12 新規作成をクリック Verilog HDL Fileを 選択し「OK」
  13. 13. タイミングの生成 •  50MHz (DE0ボードのクロック)から25Hz をどうやって生成? 13 25 Hz ということは, 1周期= 1 / 25 = 0.04 [sec] 25Hz ということは, 0.04 / 2 = 0.02 [sec] 毎にHigh と Low を切り替えればよい 50MHz 50 MHz ということは, 1周期= 1 / 50x106 = 0.02x10-6 [sec] つまり, 0.02 / (0.02 x 10-6) = 100,000 クロック毎に High と Lowを切り替えればよい
  14. 14. 入力するVerilog-HDL (LEDG_Slide.v) 14
  15. 15. 入力するVerilog-HDL (LEDG_Slide.v) 15
  16. 16. 16 入力する Verilog-HDL (LEDG_Slide.v)
  17. 17. LEDG_Slide.vを入力したら保存 17 保存ボタンをクリック ファイル名「LEDG_Slide.v」として「保存」
  18. 18. 保存するとタブの表示が変ります 18
  19. 19. 入力するVerilog-HDL (DE0_TOP.v) •  単にLEDG_Slideをインスタンス化するだけ 19 リセット信号は押しボタン[0]とした. 負論理であることに注意!
  20. 20. コンパイルを行うとプロジェクトに 認識されます 20
  21. 21. シミュレーションの設定 21 Project Navigatorで 「DE0_TOP」を右クリックし 「Settings」を選択 Simulation を選択 Tool name は「ModelSim-Altera」 Format は 「Verilog-HDL」 Time scale は「1 ns」
  22. 22. テストベンチ・テンプレート生成 22 Processing -> Startメニューから Start Test Bench Template Writer を選択
  23. 23. テストベンチ 読み込み設定 23 Project Navigatorで 「DE0_TOP」を右クリックし 「Settings」を選択 Compile test benchを選択し, Test Benches... をクリック New... をクリック
  24. 24. テストベンチ設定 24 Test bench name は「DE0_TOP」 Top level module in test bench は「DE0_TOP_vlg_tst」 テストベンチファイルを追加
  25. 25. テストベンチファイル読み込み 25 プロジェクトを置いているフォルダに 「simulation」フォルダができているので、 「modelsim」フォルダをクリック。 すると、テンプレート「DE0_TOP.vt」が あるはず。 テストベンチ「DE0_TOP.vt」を選択
  26. 26. 確認を行う 26
  27. 27. シミュレーションの設定確認 27
  28. 28. ModelSim起動 28
  29. 29. 29 テストベンチ を編集 1. Library タブをクリック 2. rtl_work を展開 3. DE0_TOP_vlg_tst を右クリックし 「Edit」を選択
  30. 30. 30 タイム スケールを 確認
  31. 31. 入力するテストベンチ 31
  32. 32. 32 ReCompile を実行し シミュレーションの準備を行います DE0_TOP_vlg_tst を右クリックし 「ReCompile」を選択
  33. 33. 波形をWaveウインドウに追加 33
  34. 34. LEDG_Slideの信号を追加 34
  35. 35. Gen_CLK25Hzの信号を追加 35
  36. 36. 表示を見やすくするため, Divider を追加しましょう 36 右クリックして「Add」を選択し 「New Divider」を選択
  37. 37. コマンドラインに run 50ms を入力 37 Add Cursor をクリックしカーソルを追加 25Hz間隔になっているか チェックしてみよう
  38. 38. FPGA上で動作を確認 38 25 Hzのクロックに同期して 4ビット毎に左右にスライド
  39. 39. 次はカウントアップ回路を 設計してFPGA上で動作させる 39
  40. 40. 40 •  ピン配置が面倒くさいので、デフォルト のプロジェクトを読み込みましょう! (DE0に限った事ではないが、Terasic製品はサンプルCD-ROMの プロジェクトを改変するのが楽でお勧め) DE0付属のCD-ROM Demonstrations 内の "DE0_Top"フォルダの ファイル全てを C:¥verilog¥DE0_tutorial_9_CountUp_7SEG¥ 内にコピー
  41. 41. DE0_TOP.qpfをダブルクリック してQuartus IIを起動 41 Pin Plannerを開いてみると ピン配置が終わっている!
  42. 42. Verilog-HDLを入力 42 ダブルクリック Verilog-HDLの テンプレートが 表示されるので コードを入力 コード入力したら保存を忘れずに!
  43. 43. Verilog-HDL ファイルの 新規追加 43 新規作成をクリック Verilog HDL Fileを 選択し「OK」
  44. 44. タイミングの生成 •  50MHz (DE0ボードのクロック)から3Hzを どうやって生成? 44 3Hz ということは, 1周期= 1 /3 = 0.04 [sec] 3Hz ということは, 0.04 / 2 = 0.02 [sec] 毎にHigh と Low を切り替えればよい 50MHz 50 MHz ということは, 1周期= 1 / 50x106 = 0.02x10-6 [sec] つまり, 0.02 / (0.02 x 10-6) = 100,000 クロック毎に High と Lowを切り替えればよい 自分で考えてみよう
  45. 45. 入力するVerilog-HDL (CountUp_7SEG.v) 45
  46. 46. 入力するVerilog-HDL (CountUp_7SEG.v) 46
  47. 47. 47 入力するVerilog-HDL (CountUp_7SEG.v)
  48. 48. CountUp_7SEG.vを保存 48 保存ボタンをクリック ファイル名「CountUp_7SEG.v」として「保存」
  49. 49. 入力する Verilog-HDL (DE0_TOP.v) 49
  50. 50. 入力するテストベンチ 50
  51. 51. シミュレーションで動作を確認 51
  52. 52. FPGA上で動作を確認 52 3Hzのクロック に同期して 4桁同時に カウントアップ
  53. 53. 最後に設計した各回路を 読み込んで1つの回路にする 53
  54. 54. 54 •  ピン配置が面倒くさいので、デフォルト のプロジェクトを読み込みましょう! (DE0に限った事ではないが、Terasic製品はサンプルCD-ROMの プロジェクトを改変するのが楽でお勧め) DE0付属のCD-ROM Demonstrations 内の "DE0_Top"フォルダの ファイル全てを C:¥verilog¥DE0_tutorial_9_DE0_Default¥ 内にコピー
  55. 55. DE0_TOP.qpfをダブルクリック してQuartus IIを起動 55 Pin Plannerを開いてみると ピン配置が終わっている!
  56. 56. 【準備】先程設計したVerilog- HDLファイルをコピーしておく 2個のファイル「LEDG_Slide.v」「CountUp_7SEG.v」を C:verilogDE0_tutorial_9_DE0_Defaultにコピー 56
  57. 57. Verilog-HDLを入力 57 ダブルクリック Verilog-HDLの テンプレートが 表示されるので コードを入力 コード入力したら保存を忘れずに!
  58. 58. 先程設計したVerilog-HDL ファイルを読み込みましょう 58 右クリックして 「Settings ...」を 選択 「Files」を選択 「...」を選択
  59. 59. Verilog-HDLファイルの選択 59 先程コピーしたファイル 「CountUp_7SEG.v」 「LEDG_Slide.v」 を選択して「開く」を クリック
  60. 60. 60 【Tips】他のファイルをインスタンシェー ション(呼出し)する場合は, コピペすると楽! Verilog-HDLの記述 (DE0_Top.v) 「LEDG_Slide」をテキストエディタで 開いて, モジュール宣言部をコピペ
  61. 61. あとは信号を記述しましょう 61
  62. 62. 同様にコピペ… 62 「CountUp_7SEG」を テキストエディタで 開いて, モジュール宣言部をコピペ
  63. 63. 記述するVerilog-HDL (DE0_TOP.v) 63
  64. 64. 今回設計した回路 64 DE0_Top LED_Slide_inst CountUp_7SEG_inst CLOCK_50 RESET_N LEDG CLOCK_50 RESET_N HEX_D HEX_DP CLOCK_50 BUTTON[0] LEDG HEX0_D HEX0_DP HEX1_D HEX1_DP HEX2_D HEX2_DP HEX3_D HEX3_DP
  65. 65. 【別ファイルで設計するメリット】 FPGAボードを変更しても使い回しできる! 65 Spartan III FPGA Boardに変更!! (インスタンシエーションの信号名を付け替えるだけでOK) LED_Slide_inst CountUp_7SEG_inst CLOCK_50 RESET_N LEDG CLOCK_50 RESET_N HEX_D HEX_DP CLK50 PUSH[0] LED_GREEN HEX0_D HEX0_DP HEX1_D HEX1_DP HEX2_D HEX2_DP 7セグが減っても増えてもOK
  66. 66. 別ファイルで設計するメリット はたくさんある! •  FPGAボードが変わっても、インスタンシエーョ ン時に信号線名を変えるだけでOK •  回路を分割設計するので, 設計対象が小さくな る. ‒ 設計がしやすくなる ‒ ミスも減る ‒ バグ検出も容易 •  設計毎に過去の資産として使い回しできる 66
  67. 67. コンパイルを行う 67 「保存アイコン」を クリックして保存 「コンパイルアイコン」を クリックして コンパイルを行う コンパイル後、このウインドウが 表示されればOK
  68. 68. コンパイル後, 読み込んだファイルが Project Navigator に表示されます 68
  69. 69. FPGA上で動作を確認 69 3Hzのクロック に同期して 4桁同時に カウントアップ 25 Hzのクロックに同期して 4ビット毎に左右にスライド
  70. 70. まとめ •  複雑な回路は並列化して状態遷移図をわける ‒ 設計が楽になるので、是非わけましょう! ‒ Verilog-HDLファイルを読み込む方法を学習 ‒ 状態遷移図間の通信は次回で •  所望のクロックを生成する方法を学習 ‒ 入力周波数から所定の周波数を 生成できるようになった •  ただし、誤差あり •  入力周波数以上の周波数は生成できない…  (実はFPGA内のある回路を使うとできます) 70
  71. 71. 課題 •  下記のLEDGを指定した周波数で点滅する 回路を作成し, FPGA上で動作を確認 ‒ LEDG[0]: 2 Hz ‒ LEDG[1]: 1 Hz ‒ LEDG[2]: 0.333 Hz ‒ LEDG[3]: 0.5 Hz •  各LED表示回路毎にプロジェクトを作成し て, 全てが完成したら1つのプロジェクト に読み込むように設計しよう 71

×