Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Verilog-HDL Tutorial (13)

817 views

Published on

Verilog-HDL Tutorial Using DE0 FPGA Board

Published in: Education
  • D0WNL0AD FULL ▶ ▶ ▶ ▶ http://1url.pw/zoehE ◀ ◀ ◀ ◀
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • D0WNL0AD FULL ▶ ▶ ▶ ▶ http://1url.pw/zoehE ◀ ◀ ◀ ◀
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

Verilog-HDL Tutorial (13)

  1. 1. 1 Verilog-HDL 講習会DE0編(13) RS232C送信(Tx) 1, August, 2013 鹿児島大学 中原 啓貴
  2. 2. RS232C信号を送信 (今回も9600 bpsとする) 2 スタートビット (1ビットの0) データ(8ビット) LSB(最下位ビット)から送信 ストップビット (1ビットの1) D0 D1 D2 D3 D7 9600 bps = 9600 bit per second つまり, 1秒間に(スタートビットや ストップビットも含めて) 9600bit送信するという意味
  3. 3. 送信は結構簡単 •  9600bps -> 9600Hzに同期してデータを送信するだけ 3 スタートビット (1ビットの0) データ(8ビット) LSB(最下位ビット)から送信 ストップビット (1ビットの1) D0 D1 D2 D3 D7
  4. 4. タイミングの生成 •  50MHz (DE0ボードのクロック)から 9600Hzをどうやって生成? 4 9600Hz ということは, 1周期= 1 /9600 = 0.04 [sec] 9600Hz ということは, 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を切り替えればよい 自分で考えてみよう
  5. 5. 仕様 •  8個のスライドスイッチ(8ビット)をPCに送信 ‒  ボーレート: 9600bps, ストップビット:1 , パリティ: なし •  押しボタン (BUTTON[2])を押すと, 1データ送信 5 USBシリアルケーブル (BUFFALO社製) BSUSRC0605BS を使用 (amazonで¥2011) 送信データ設定 (8ビット) 送信開始ボタン (負論理)
  6. 6. RS232C送信回路の状態遷移図 6 0000 0001 0010 0011 0100 0101 1011 1010 1001 1000 0111 0110 Reset UART_TXD <= 1'b1; BUTTON[2] == 1'b0 NONE BUTTON[2] != 1'b0 NONE BUTTON[2] != 1'b1 NONE BUTTON[2] == 1'b1 NONE NONE UART_TXD <= 1'b1; NONE UART_TXD <= SW[0]; NONE UART_TXD <= SW[1]; NONE UART_TXD <= SW[2]; NONE UART_TXD <= SW[3]; NONE UART_TXD <= SW[4]; NONE UART_TXD <= SW[5]; NONE UART_TXD <= SW[6]; NONE UART_TXD <= SW[7]; NONE UART_TXD <= 1'b1;
  7. 7. 7 •  ピン配置が面倒くさいので、デフォルト のプロジェクトを読み込みましょう! (DE0に限った事ではないが、Terasic製品はサンプルCD-ROMの プロジェクトを改変するのが楽でお勧め) DE0付属のCD-ROM Demonstrations 内の "DE0_Top"フォルダの ファイル全てを C:¥verilog¥DE0_tutorial_9_LEDG_Slide¥ 内にコピー
  8. 8. DE0_TOP.qpfをダブルクリック してQuartus IIを起動 8 Pin Plannerを開いてみると ピン配置が終わっている!
  9. 9. Verilog-HDLを入力 9 ダブルクリック Verilog-HDLの テンプレートが 表示されるので コードを入力 コード入力したら保存を忘れずに!
  10. 10. 9600Hz生成回路の追加 10
  11. 11. 入力するVerilog-HDL 11
  12. 12. Verilog-HDLを保存する 12 Gen_CLK9600Hz.v として保存
  13. 13. RS232C送信回路の追加 13
  14. 14. 入力する Verilog-HDL (1) 14
  15. 15. 入力する Verilog-HDL (2) 15
  16. 16. 入力する Verilog-HDL (3) 16
  17. 17. Verilog-HDLを保存する 17 RS232C_TX.v として保存
  18. 18. DE0_Top.vの記述 18
  19. 19. コンパイルを行う 19 「保存アイコン」を クリックして保存 「コンパイルアイコン」を クリックして コンパイルを行う コンパイル後、このウインドウが 表示されればOK
  20. 20. FPGAとPCを接続する前に… •  COMポート(RS232C)の番号を確認 •  マイコンピュータを右クリックして「プロパティ」を選択 (Windowx XP) 20 このPCではCOM7ポート
  21. 21. FPGAをプログラム 21
  22. 22. RS232Cテストツールを起動 •  VECTOR (http://www.vector.co.jp/soft/winnt/ hardware/se411276.html)からダウンロードしてインス トールしてください 22 ポート名 ↓ 各PC毎に 異なる ボーレート: 9600, バイトサイズ: 8, パリティ: なし ストップビット: 1
  23. 23. PCとFPGAを RS232Cケーブルで接続 23
  24. 24. RS232C経由で データ送信 24 1. RS232Cテストツールを起動し 設定を行う(前回を参考に) 2. 接続をクリック 3. スライドスイッチを設定 (ここでは11000101, つまり16進数で0xC5 ) 4. 送信ボタンを押すと スライドスイッチの値が RS232Cテストツールに 表示される
  25. 25. まとめ •  RS232Cデータ送信回路を設計 •  課題: ‒  他のボーレートに対応する送信回路を設計せよ (115200bps, 14400bps) ‒  パリティを計算する回路を付加した送信回路を設計せよ ‒  【難】スライドスイッチでボーレートを切り替えること ができる送信回路を設計せよ ‒  【難】9600bpsのRS232C通信で, 受信したデータをその ままPCへ送信する回路(エコー回路)を設計せよ 25

×