UART 受信器 FSM 設計
© 渡部謹二 , 小川清

2013/03/04

(c)watabe kinji, kaizen@wh.commufa.jp

1
演習目的


簡単な実習を通して FSM 設計を体験す
る



2013/03/04

UART 通信を題材とする
自ら設計、検証、実装を行う

(c)watabe kinji, kaizen@wh.commufa.jp

2
概要
PC から RS232C シリア
ル通信で
ASCII データ
を送信する

FPGA 内
① シリアル
→ パラレル変換回路
② パラレル ASCII
データ→ LED 点灯パ
ターン変換

今回は固定
した ASCII
コードを入
力...
例題 (sample) 動作確認



例題 (sample) を動作させて確認する
道具 (tool) の使用方法は、操作説明資
料“ Xilinx 設計統合環境操作の覚え ISE 12.4
を題材として ver3.0” を参照してくださ...
配線 例動作確認


配線






2013/03/04

RS232C ストレー
トケーブル(通
信)
パラレルケーブル
(プログラムダウ
ンロード用)
AC アダプタ(電
源)

(c)watabe kinji, kaizen@...
プログラム例題動作確認






2013/03/04

プロジェクト作成
Verilog 記述
コンパイル
ダウンロード
操作説明資料“ Xilinx 設計統合環境操作
の覚え ISE 12.4 を題材として
ver3.0” を参...
通信ソフトウェアの起動
例題動作確認



スタート -> すべての
プログラム -> アクセ
サリ -> 通信 -> ハイ
パーターミナル を
起動




2013/03/04

通信設定 38400, 8, な
し ,1, なし(左...
例題動作確認




PC から UART で送る ASCII データ
( 0~9 )を取り込み、表示する
次のデータを受け取るまで同じ表示を続
ける
確認できましたか?

2013/03/04

(c)watabe kinji, kaiz...
例題の全体構成


2013/03/04

プログラムの全体構成を把握する

(c)watabe kinji, kaizen@wh.commufa.jp

9
例題の全体構成
パラレル信号
シリアル信号

LED 点灯パターン
reciever

ascii_decoder
x16 clk

クロック


eight_divider

reciever:




DCM

シリアル信号を受信して...
ファイル構成例題の全体構成


top_rec.sch








(開発対象)データ受信モ
ジュール







クロック 8 分周モジュール

シミュレーション用
receive.v のテストベンチ
シリアルデータが...
題材


2013/03/04

題材となる UART 通信について

(c)watabe kinji, kaizen@wh.commufa.jp

12
UART(Universal Asynchronous Reciever
and Transmitter) とは?題材 :UART 通信


1

データフォーマット
1








2013/03/04

St D0 D1 D...
通信の詳細 題材: UART 通信


8 ビットデータ、パリティ無
し、 38400bps 、ストップビット 1
余裕のある人はボーレートが変わって
も対応できるようコード記述を工夫す
る
約 16 倍の周波数でデータサンプリングす
る
...
ASCII ( American Standard Code for
Information Interchange )コード 題材 :UART
通信  
16 進数

30

0

31

1

32

2

33

3

34

4

35...
データフロー設計 題材 :UART
通信

UART データ受信
モジュール
recieve

7 セグメント
LED へ
データデコーダ
ascii_decode

8 ビット ASCII
8 ビット ASCII デー
データが 1 ビット
...
receive の内部データフロー 
題材 :UART 通信
clk
rst
クロックはボー
レートの 16 倍速
度を入力するもの
とする
recieve

D0
D1
D2
D3
D4
D5
D6
D7
S1

a0
a1
a2
a3
a4...
receive のコントロールフローの
概要
初期化

データ取り込み

スタートビット待ち
出力データ更新
データ取り込み
位相あわせ

2013/03/04

(c)watabe kinji, kaizen@wh.commufa.jp

1...
実習1:デコーダの完成


問題









2013/03/04

acsii_decode.v を記述して数値 0~9 が表示される
ようにせよ
上記以外の ASCII コードが入力されたら
E ( Error の E )...
Function 文 (1)  実習1
module selector(din,sel,dout)
input [3:0] din;
input [1:0] sel;
out dout;



Function 文






func...
Function 文( 2 )定義 実習1
module selector(din,sel,dout)
input [3:0] din;
input [1:0] sel;
out dout;
function select ;
input[3:...
Function 文( 3 )呼び出し 
実習1

module selector(din,sel,dout)
input [3:0] din;
input [1:0] sel;
out dout;

継続的代入で用いる
宣言(入力はどう
か?...
Case 文の記述 実習1
module dec_inst(din, dout);
input [2:0] din;
output [6:0] dout;
assign dout = decoder(din);
function [6:0] d...
always 文 と function 文 実習1


組み合わせ回路を記述する場合は
function 文を用いる




2013/03/04

always 文で組み合わせ回路が記述できる。
しかし記憶素子を用いないにもかかわらず
...
回路図の読解 実習1





2013/03/04

ボード付属 DVDROM  
FPGASCH_EVSP
3E100_rev1p03.pdf
 が回路図
V3P3 は +3.3V
集合抵抗

(c)watabe kinji, kai...
回路図の読解 実習1
この間に電位
差が 0.7V ある
と



バイポーラトラン
ジスタの挙動




ここに電流
が流れる

2013/03/04

デジタル回路での基
本的な使い方
/DP1_OEN が  L
 のとき LED に...
回路図の読解( 1 ) 実習1


出力を多重化してい
る




2013/03/04

複数の桁数を表示す
るには時間的
に /DP1_OEN ~ /
DP4_OEN をずらさ
なければならない
7 セグ回路では一般
的

(c)wa...
回路図の読解(2) 実習1





DP_D1~DP_D8  と  LED セグメントとの
対応
正論理か負論理か?


2013/03/04

この場合は負論理

(c)watabe kinji, kaizen@wh.commufa....
ASCII コード⇒ LED 点灯パターン変
換表
実習1
ASCII コード

文字

7 セグメント点灯パターン

{ g,f,e,d,c,b,a}

(8 ビット、 16
進)
30

0

31

1

32

2

33

3

34...
実習2:
UART 受信モジュールの設計


receive.v を設計してみよう



データフロー設計
コントロールフロー設計





2013/03/04

ASM チャートか状態遷移図・表を記述する
レビュー&検証を行う
...
報告:実習2



実習終了後、報告を提出
書式は問わないが以下の項目を含むこ
と





2013/03/04

データフロー、コントロールフロー、検証
項目
実機動作確認
発生した問題点、反省点、改善点
(c)watabe ki...
追加実習


今回の回路に機能を追加





2013/03/04

7 セグ LED のダイナミック点灯(複数桁表
示)
送信機能
電卓の作成

(c)watabe kinji, kaizen@wh.commufa.jp

32
参考資料


DLL について






XAPP462 Spartan-3 FPGA におけるデジタル ク
ロックマネージャ (DCM) の使用
Spartan3E データシート

FSM のコーディングについて
「合成 / 検証デ...
付録:周辺回路


2013/03/04

周辺回路について解説する

(c)watabe kinji, kaizen@wh.commufa.jp

34
クロック設計


サンプリング周波数



38400bps の 16 倍であるので 614400Hz
100/3MH z X’tal (基盤に実装されている発信
素子)の約 56 分の 1



0.595MH z( 0.614MH...
注意!!
ゲーティッドクロックは避ける


クロック信号はクロックラインを用い
る






2013/03/04

データ遅延などを考慮してクロック、レジ
スタの分配を配置・配線ツールが行う
ゲートを使ってクロックの調整を行うと
ツ...
DLL ( Delay Lock Loop: 遅延ロック
ループ)とは?


クロック信号を一周期(ぐらい)遅らせて位相ロックす
る





分配したクロックの遅延を補償
位相遅れを加えることも出来、また周波数を逓倍することもでき
る...
内部非論理機能  DLL を使う


よく使う機能の専用ハードウェアを備えてい
る







内部非論理機能を HDL コード中に記述



2013/03/04

論理リソースの節約、消費電力の低減にも繋がる
DSP 、乗算...
DLL をつかう



新しいプロジェクト  clock_design
Create New Source ->IP (COREGen &
Architecture Wizard)-> ファイル名を入力し、
Next ボタンを押下


...
CLKDV に
チェック

入力周波数
33.3MH z
入出力の周波数
をチェックして
くれる

7
分周

2013/03/04

(c)watabe kinji, kaizen@wh.commufa.jp

40





2013/03/04

“Use Global Buffers
for all selected clock
outputs” を選択
Next ボタンを押下
次のダイアログボッ
クスで Finish を押下

(c)watab...
クロック設計(ゲーティッドク
ロック)




eight_divider.v の作
成
クロックを8分周す
る Verilog モジュー
ル


2013/03/04

4カウントごとに出
力を反転させる回路
を作ればよい

(c)wa...
トップモジュール構成


作成してきたサ
ブモジュールを
接続してトップ
モジュールを作
成する

Verilog-HDL でサ
ブモジュールを
呼び出すことも
可
 ECS 回路図入力
ツールを用いる
43
(c)watabe kinji...
トップモジュール構成
シリアル信号

パラレル信号

LED 点灯パターン

reciever

ascii_decoder

DCM

eight_divider

クロック
分周クロック

分周クロック

リセット信号はこの図で
は省略して...
トップモジュール構成


作成したモジュールの回
路シンボルの作成




2013/03/04

Sources ウインドウのモ
ジュールファイルをク
リックして選択する
その状態を維持したまま
、 Process ウインドウの
Des...
自作の回路をライブラリに登録
        
トップモジュール構成

② 作業フォルダのパスを追
加しているので選択
③ 設計したモジュールを追
加している(はず)

①Source ウイン
ドウの Symbol タ
ブをクリック
2013/...
回路図エディタで部品を配置する
トップモジュール構成

部品を配置
する

Symbol タ
ブを選択

ウインドウから
現在の作業パス
を選択する
2013/03/04

(c)watabe kinji, kaizen@wh.commufa....
回路図を作成する
トップモジュール構成
部品の配置を
変更する

Add Net Name:
配線に名前を付
ける

Add Wire : 配線ツール

Add IO Marker : 配
線を入出力とする

以上のようなツールを使って、回路図...
トップモジュール構成

2013/03/04

(c)watabe kinji, kaizen@wh.commufa.jp

49
ボード構成の確認


FPGA チップと外界の接続を確認






2013/03/04

LED への接続に関しては組み合わせ論理回
路の資料を参照
リセット回路
UART
クロック回路

(c)watabe kinji, kai...
リセット回路ボード構成の確認
シュミットイン
バータ



SW 1をリ
セットとして
使用




2013/03/04

(c)watabe kinji, kaizen@wh.commufa.jp

ボタン押した
ときに SWIN1
...
シリアルインターフェースボード構
成の確認




2013/03/04

Host TxD ( 送信ポート )  ⇒ 
DB9 3 ピン ⇒ RxD (受信ポー
ト)
FPGA の 79 ピンに接続
(c)watabe kinji, ka...
クロックソースボード構成の確認


2013/03/04

FPGA の 63 ピ
ンに接続

(c)watabe kinji, kaizen@wh.commufa.jp

53
7セグメントLEDボード構成の確
認














2013/03/04

(c)watabe kinji, kaizen@wh.commufa.jp

/DP1_OEN 86 ピン
/DP2_OEN 85...
Upcoming SlideShare
Loading in …5
×

Uart受信設計2013

931 views

Published on

FPGA, Verilog-HDLを用いてシリアル通信を演習する題材。

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
931
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • 設計者の技量とはリテラシ(読み書き能力)のことである。
    C言語、VHDL,VerilogHDL、デジタル・アナログ回路図、タイミングチャート、ステートチャート、日本語、英語、特許文書 etc
  • 1/7 の分袖
  • DLLはクロックソースにジッタがあるとうまくロックしない
  • Test Bench Waveforms are currently not supported for Architecture Wizard or Coregen sources.
  • こんな感じで作ってみました
  • リセットには論理リセットと電源リセットがある
  • Uart受信設計2013

    1. 1. UART 受信器 FSM 設計 © 渡部謹二 , 小川清 2013/03/04 (c)watabe kinji, kaizen@wh.commufa.jp 1
    2. 2. 演習目的  簡単な実習を通して FSM 設計を体験す る   2013/03/04 UART 通信を題材とする 自ら設計、検証、実装を行う (c)watabe kinji, kaizen@wh.commufa.jp 2
    3. 3. 概要 PC から RS232C シリア ル通信で ASCII データ を送信する FPGA 内 ① シリアル → パラレル変換回路 ② パラレル ASCII データ→ LED 点灯パ ターン変換 今回は固定 した ASCII コードを入 力して動作 確認する 2013/03/04 (c)watabe kinji, kaizen@wh.commufa.jp 3
    4. 4. 例題 (sample) 動作確認   例題 (sample) を動作させて確認する 道具 (tool) の使用方法は、操作説明資 料“ Xilinx 設計統合環境操作の覚え ISE 12.4 を題材として ver3.0” を参照してください 2013/03/04 (c)watabe kinji, kaizen@wh.commufa.jp 4
    5. 5. 配線 例動作確認  配線    2013/03/04 RS232C ストレー トケーブル(通 信) パラレルケーブル (プログラムダウ ンロード用) AC アダプタ(電 源) (c)watabe kinji, kaizen@wh.commufa.jp 5
    6. 6. プログラム例題動作確認      2013/03/04 プロジェクト作成 Verilog 記述 コンパイル ダウンロード 操作説明資料“ Xilinx 設計統合環境操作 の覚え ISE 12.4 を題材として ver3.0” を参照してください (c)watabe kinji, kaizen@wh.commufa.jp 6
    7. 7. 通信ソフトウェアの起動 例題動作確認  スタート -> すべての プログラム -> アクセ サリ -> 通信 -> ハイ パーターミナル を 起動   2013/03/04 通信設定 38400, 8, な し ,1, なし(左図) できれば TeraTerm Pro (フリー)を利 (c)watabe kinji, kaizen@wh.commufa.jp 7
    8. 8. 例題動作確認   PC から UART で送る ASCII データ ( 0~9 )を取り込み、表示する 次のデータを受け取るまで同じ表示を続 ける 確認できましたか? 2013/03/04 (c)watabe kinji, kaizen@wh.commufa.jp 8
    9. 9. 例題の全体構成  2013/03/04 プログラムの全体構成を把握する (c)watabe kinji, kaizen@wh.commufa.jp 9
    10. 10. 例題の全体構成 パラレル信号 シリアル信号 LED 点灯パターン reciever ascii_decoder x16 clk クロック  eight_divider reciever:   DCM シリアル信号を受信して 8bit パラレル信号に変換する ascii_decoder:  2013/03/04 受信信号に対応した LED 点灯パターンに変換する (c)watabe kinji, kaizen@wh.commufa.jp 10
    11. 11. ファイル構成例題の全体構成  top_rec.sch      (開発対象)データ受信モ ジュール    クロック 8 分周モジュール シミュレーション用 receive.v のテストベンチ シリアルデータが受信でき ているか確認する ascii.mem  DCM の設定ファイル eight_devider  2013/03/04   ピン割り当てファイル serial_dataflow.v dcm_first.xaw    ASCII コードを LED 点灯パ ターンに変換 receive.v   トップモジュール 回路図表示 top_rec.ucf  ascii_decode.v    シミュレーション用 メモリモデル、 receive.v ファイルでリードして使用 する シリアルデータの管理 eight_devider_tb.tbw シミュレーション用  eight_devider.v のテストベ ンチ 11 (c)watabe kinji, kaizen@wh.commufa.jp  8 分周できているか確認す 
    12. 12. 題材  2013/03/04 題材となる UART 通信について (c)watabe kinji, kaizen@wh.commufa.jp 12
    13. 13. UART(Universal Asynchronous Reciever and Transmitter) とは?題材 :UART 通信  1 データフォーマット 1      2013/03/04 St D0 D1 D2 D3 D4 D5 D6 D7 S1 1 1 1 経過時間 スタートビット  0 8 ビットデータ、 LSB ファースト パリティビット  なし ストップビット   1 x16 クロックでサンプリング、シリアル - パラレル変換  X16 サンプリング:スタートビット検出から 8 クロック 目に位相設定、以降 16 クロックごとにサンプリングす る (c)watabe kinji, kaizen@wh.commufa.jp 13
    14. 14. 通信の詳細 題材: UART 通信  8 ビットデータ、パリティ無 し、 38400bps 、ストップビット 1 余裕のある人はボーレートが変わって も対応できるようコード記述を工夫す る 約 16 倍の周波数でデータサンプリングす る    2013/03/04 16 倍サンプリングを慣習的に行っている (c)watabe kinji, kaizen@wh.commufa.jp 14
    15. 15. ASCII ( American Standard Code for Information Interchange )コード 題材 :UART 通信   16 進数 30 0 31 1 32 2 33 3 34 4 35 5 36 6 37 7 38 8 39 2013/03/04 文字 9 (c)watabe kinji, kaizen@wh.commufa.jp 15
    16. 16. データフロー設計 題材 :UART 通信 UART データ受信 モジュール recieve 7 セグメント LED へ データデコーダ ascii_decode 8 ビット ASCII 8 ビット ASCII デー データが 1 ビット タをパラレルに渡す 幅でシリアルに伝 データ受信中は出力 送 データを保つ •ascii_decode は内部に記憶を持たない 2013/03/04 (c)watabe kinji, kaizen@wh.commufa.jp 16
    17. 17. receive の内部データフロー  題材 :UART 通信 clk rst クロックはボー レートの 16 倍速 度を入力するもの とする recieve D0 D1 D2 D3 D4 D5 D6 D7 S1 a0 a1 a2 a3 a4 a5 a6 a7 •処理に必要なデータの流れを設計す る 2013/03/04 レジスタ ascii[7:0] レジスタ  receive_data (c)watabe kinji, kaizen@wh.commufa.jp 17
    18. 18. receive のコントロールフローの 概要 初期化 データ取り込み スタートビット待ち 出力データ更新 データ取り込み 位相あわせ 2013/03/04 (c)watabe kinji, kaizen@wh.commufa.jp 18
    19. 19. 実習1:デコーダの完成  問題      2013/03/04 acsii_decode.v を記述して数値 0~9 が表示される ようにせよ 上記以外の ASCII コードが入力されたら E ( Error の E )が表示されるようにせよ 実際に7セグ LED を点灯させて確認せよ 確認したら報告せよ 「入力: 8 ビット ASCII コード」の表を完成 させてからコーディングに移る (c)watabe kinji, kaizen@wh.commufa.jp 19
    20. 20. Function 文 (1)  実習1 module selector(din,sel,dout) input [3:0] din; input [1:0] sel; out dout;  Function 文    function select ; input[3:0] data_sel; input[1:0] data_sig; end function endmodule 2013/03/04 入力に対し値を返す (値を保持しない) モジュール内に記述  モジュールのすべての 信号が使用出来る 宣言したモジュール内 からのみ、その Function を使用する事 ができる Always 文でも組み合 わせ論理回路を実装 することができるが 、 Function を推奨20 (c)watabe kinji, kaizen@wh.commufa.jp 
    21. 21. Function 文( 2 )定義 実習1 module selector(din,sel,dout) input [3:0] din; input [1:0] sel; out dout; function select ; input[3:0] data_sel; input[1:0] data_sig; endfunction endmodule 2013/03/04 function < ビット幅 >  <名前> ; endfunction で終了 入力の宣言 続いて、 wire の宣言も 可 各種ステートメントを 記述する(実習) 今回は if 文で記述する (c)watabe kinji, kaizen@wh.commufa.jp 21
    22. 22. Function 文( 3 )呼び出し  実習1 module selector(din,sel,dout) input [3:0] din; input [1:0] sel; out dout; 継続的代入で用いる 宣言(入力はどう か?出力はどう か?)と比較 assign dout = select(din,sel); function select ; input[3:0] data_sig; input[1:0] data_sel; ( 省略 ) endfunction endmodule 2013/03/04 (c)watabe kinji, kaizen@wh.commufa.jp 22
    23. 23. Case 文の記述 実習1 module dec_inst(din, dout); input [2:0] din; output [6:0] dout; assign dout = decoder(din); function [6:0] decoder; input [2:0] data_in; case(data_in)  function 文のステー トメントに if 文、 case 文を記述 することができる ( 省略 ) endcase endfunction endmodule 2013/03/04 (c)watabe kinji, kaizen@wh.commufa.jp 23
    24. 24. always 文 と function 文 実習1  組み合わせ回路を記述する場合は function 文を用いる   2013/03/04 always 文で組み合わせ回路が記述できる。 しかし記憶素子を用いないにもかかわらず reg 宣言をしなければならないので避ける べき 記述する回路規模が大きくなり、設計を再 利用することが多くなる (c)watabe kinji, kaizen@wh.commufa.jp 24
    25. 25. 回路図の読解 実習1    2013/03/04 ボード付属 DVDROM   FPGASCH_EVSP 3E100_rev1p03.pdf  が回路図 V3P3 は +3.3V 集合抵抗 (c)watabe kinji, kaizen@wh.commufa.jp 25
    26. 26. 回路図の読解 実習1 この間に電位 差が 0.7V ある と  バイポーラトラン ジスタの挙動   ここに電流 が流れる 2013/03/04 デジタル回路での基 本的な使い方 /DP1_OEN が  L  のとき LED に通 電する (c)watabe kinji, kaizen@wh.commufa.jp 26
    27. 27. 回路図の読解( 1 ) 実習1  出力を多重化してい る   2013/03/04 複数の桁数を表示す るには時間的 に /DP1_OEN ~ / DP4_OEN をずらさ なければならない 7 セグ回路では一般 的 (c)watabe kinji, kaizen@wh.commufa.jp 27
    28. 28. 回路図の読解(2) 実習1   DP_D1~DP_D8  と  LED セグメントとの 対応 正論理か負論理か?  2013/03/04 この場合は負論理 (c)watabe kinji, kaizen@wh.commufa.jp 28
    29. 29. ASCII コード⇒ LED 点灯パターン変 換表 実習1 ASCII コード 文字 7 セグメント点灯パターン { g,f,e,d,c,b,a} (8 ビット、 16 進) 30 0 31 1 32 2 33 3 34 4 35 5 36 6 37 7 38 8 39 その他 2013/03/04 9 E 0100100 (c)watabe kinji, kaizen@wh.commufa.jp 29
    30. 30. 実習2: UART 受信モジュールの設計  receive.v を設計してみよう   データフロー設計 コントロールフロー設計    2013/03/04 ASM チャートか状態遷移図・表を記述する レビュー&検証を行う 実装、動作確認 (c)watabe kinji, kaizen@wh.commufa.jp 30
    31. 31. 報告:実習2   実習終了後、報告を提出 書式は問わないが以下の項目を含むこ と    2013/03/04 データフロー、コントロールフロー、検証 項目 実機動作確認 発生した問題点、反省点、改善点 (c)watabe kinji, kaizen@wh.commufa.jp 31
    32. 32. 追加実習  今回の回路に機能を追加    2013/03/04 7 セグ LED のダイナミック点灯(複数桁表 示) 送信機能 電卓の作成 (c)watabe kinji, kaizen@wh.commufa.jp 32
    33. 33. 参考資料  DLL について    XAPP462 Spartan-3 FPGA におけるデジタル ク ロックマネージャ (DCM) の使用 Spartan3E データシート FSM のコーディングについて 「合成 / 検証デザインガイド」  Spartan3E データシート 等をお読みください   参考  2013/03/04 「 FPGA によるシリアル・コントローラの設計事 例」 インターフェース 2005.6 (c)watabe kinji, kaizen@wh.commufa.jp 33
    34. 34. 付録:周辺回路  2013/03/04 周辺回路について解説する (c)watabe kinji, kaizen@wh.commufa.jp 34
    35. 35. クロック設計  サンプリング周波数   38400bps の 16 倍であるので 614400Hz 100/3MH z X’tal (基盤に実装されている発信 素子)の約 56 分の 1   0.595MH z( 0.614MHz の誤差約 3 %) 内部の DLL を使う  クロックの分周に LBS を使うにはロジックリソースの 消費 1/7 ( DLL) 2013/03/04 1/8(Logic ) (c)watabe kinji, kaizen@wh.commufa.jp 本当は使っ ちゃダメ 35
    36. 36. 注意!! ゲーティッドクロックは避ける  クロック信号はクロックラインを用い る    2013/03/04 データ遅延などを考慮してクロック、レジ スタの分配を配置・配線ツールが行う ゲートを使ってクロックの調整を行うと ツールは適正に分配できない 今回の実習例ではゲーティッドクロックを 用いています。実際の業務ではそのまま使 わないでください。変更してください。  通信用の発振器を外付けするなどで対応 (c)watabe kinji, kaizen@wh.commufa.jp 36
    37. 37. DLL ( Delay Lock Loop: 遅延ロック ループ)とは?  クロック信号を一周期(ぐらい)遅らせて位相ロックす る    分配したクロックの遅延を補償 位相遅れを加えることも出来、また周波数を逓倍することもでき る 注意!! DLL はクロック信号を遅らせて使っているので 入力クロックに乱れが入っていると、乱れを伝播する PLL(Phase Locked Loop) との比較  クロックのジッタなどで ロックが外れる  2013/03/04 (c)watabe kinji, kaizen@wh.commufa.jp 37
    38. 38. 内部非論理機能  DLL を使う  よく使う機能の専用ハードウェアを備えてい る     内部非論理機能を HDL コード中に記述   2013/03/04 論理リソースの節約、消費電力の低減にも繋がる DSP 、乗算器、イーサネット MAC 、ブロックメ モリ、メモリコントローラ、 CPU コア ,etc DLL もそのうちのひとつ CORE Generator によるインスタンシエーション 内部機能のいくつかはツールの自動推論により用 いることができ、インスタンシエーションの必要 38 なし (c)watabe kinji, kaizen@wh.commufa.jp
    39. 39. DLL をつかう   新しいプロジェクト  clock_design Create New Source ->IP (COREGen & Architecture Wizard)-> ファイル名を入力し、 Next ボタンを押下    2013/03/04 ファイル名  dcm_test とした ダイアログボックスで FPGA Features and Design ->Clocking ->Spartan-3E,Spartan-3A>Single DCM SP v9.1i を選択 General Setup for INST1 (c)watabe kinji, kaizen@wh.commufa.jp 39
    40. 40. CLKDV に チェック 入力周波数 33.3MH z 入出力の周波数 をチェックして くれる 7 分周 2013/03/04 (c)watabe kinji, kaizen@wh.commufa.jp 40
    41. 41.    2013/03/04 “Use Global Buffers for all selected clock outputs” を選択 Next ボタンを押下 次のダイアログボッ クスで Finish を押下 (c)watabe kinji, kaizen@wh.commufa.jp 41
    42. 42. クロック設計(ゲーティッドク ロック)   eight_divider.v の作 成 クロックを8分周す る Verilog モジュー ル  2013/03/04 4カウントごとに出 力を反転させる回路 を作ればよい (c)watabe kinji, kaizen@wh.commufa.jp 42
    43. 43. トップモジュール構成  作成してきたサ ブモジュールを 接続してトップ モジュールを作 成する Verilog-HDL でサ ブモジュールを 呼び出すことも 可  ECS 回路図入力 ツールを用いる 43 (c)watabe kinji, kaizen@wh.commufa.jp  2013/03/04
    44. 44. トップモジュール構成 シリアル信号 パラレル信号 LED 点灯パターン reciever ascii_decoder DCM eight_divider クロック 分周クロック 分周クロック リセット信号はこの図で は省略してある (c)watabe kinji, kaizen@wh.commufa.jp 2013/03/04 44
    45. 45. トップモジュール構成  作成したモジュールの回 路シンボルの作成   2013/03/04 Sources ウインドウのモ ジュールファイルをク リックして選択する その状態を維持したまま 、 Process ウインドウの Design Entry Utilities セク ションから Create Schematic Symbol をダブ ルクリックする (c)watabe kinji, kaizen@wh.commufa.jp 45
    46. 46. 自作の回路をライブラリに登録          トップモジュール構成 ② 作業フォルダのパスを追 加しているので選択 ③ 設計したモジュールを追 加している(はず) ①Source ウイン ドウの Symbol タ ブをクリック 2013/03/04 (c)watabe kinji, kaizen@wh.commufa.jp 46
    47. 47. 回路図エディタで部品を配置する トップモジュール構成 部品を配置 する Symbol タ ブを選択 ウインドウから 現在の作業パス を選択する 2013/03/04 (c)watabe kinji, kaizen@wh.commufa.jp 47
    48. 48. 回路図を作成する トップモジュール構成 部品の配置を 変更する Add Net Name: 配線に名前を付 ける Add Wire : 配線ツール Add IO Marker : 配 線を入出力とする 以上のようなツールを使って、回路図を作成 したら、ファイルを保存しエディタを終了 2013/03/04 (c)watabe kinji, kaizen@wh.commufa.jp 48
    49. 49. トップモジュール構成 2013/03/04 (c)watabe kinji, kaizen@wh.commufa.jp 49
    50. 50. ボード構成の確認  FPGA チップと外界の接続を確認     2013/03/04 LED への接続に関しては組み合わせ論理回 路の資料を参照 リセット回路 UART クロック回路 (c)watabe kinji, kaizen@wh.commufa.jp 50
    51. 51. リセット回路ボード構成の確認 シュミットイン バータ  SW 1をリ セットとして 使用   2013/03/04 (c)watabe kinji, kaizen@wh.commufa.jp ボタン押した ときに SWIN1 は H になる SWIN1 は FPGA の30 ピン 51
    52. 52. シリアルインターフェースボード構 成の確認   2013/03/04 Host TxD ( 送信ポート )  ⇒  DB9 3 ピン ⇒ RxD (受信ポー ト) FPGA の 79 ピンに接続 (c)watabe kinji, kaizen@wh.commufa.jp 52
    53. 53. クロックソースボード構成の確認  2013/03/04 FPGA の 63 ピ ンに接続 (c)watabe kinji, kaizen@wh.commufa.jp 53
    54. 54. 7セグメントLEDボード構成の確 認             2013/03/04 (c)watabe kinji, kaizen@wh.commufa.jp /DP1_OEN 86 ピン /DP2_OEN 85 ピン /DP3_OEN 3 ピン /DP4_OEN 2 ピン DP_D1 94 ピン DP_D2 92 ピン DP_D3 98 ピン DP_D4 71 ピン DP_D5 70 ピン DP_D6 90 ピン DP_D7 91 ピン DP_D8 95 ピン 54

    ×