View
248
Download
1
Category
Preview:
Citation preview
1
Verilog-HDL 講習会DE0編(6) 順序回路記述(1)
~カウンタを例題として~
12, June, 2013 鹿児島大学 中原 啓貴
2
• ピン配置が面倒くさいので、デフォルトのプロジェクトを読み込みましょう! (DE0に限った事ではないが、Terasic製品はサンプルCD-ROMの プロジェクトを改変するのが楽でお勧め)
DE0付属のCD-ROM ”Demonstrations”内の "DE0_Top"フォルダの ファイル全てを C:¥verilog¥DE0_tutorial_5¥ 内にコピー
DE0_TOP.qpfをダブルクリックしてQuartus IIを起動
3
Pin Plannerを開いてみると ピン配置が終わっている!
Verilog-HDLを入力
4
ダブルクリック Verilog-HDLの テンプレートが 表示されるので コードを入力
コード入力したら保存を忘れずに!
5
いよいよ順序回路編です • ほぼ全ての実用的な回路は順序回路です • 順序回路の記述法をマスターすることが、FPGAを使いこなせるかどうかのポイント
• 頑張って理解しましょう! ‒ とはいえ、言語ですから 「たくさん書いて慣れろ」
6
順序回路とは? • 組合せ回路の出力:現在の入力 • 順序回路の出力: ‒ 現在の入力+現在の状態 (現在の状態=過去の入力)
• つまり、順序回路は現在と過去の 入力に応じて出力する回路といえる • 過去の入力を記憶 状態を記憶
• 状態を記憶する記述!?
組合せ 回路
組合せ 回路
記憶 素子
外部 入力
外部 出力
外部 入力
外部 出力
状態 出力
状態 入力
組合せ回路
順序回路
7
例題:4ビットカウンタ • クロックに同期するカウンタ
4ビット 加算器
4ビット レジスタ
クロック
0010 0001 0000
リセット信号
8
カウンタの記述
9
解説 4ビット 加算器
4ビット レジスタ
レジスタ宣言 レジスタを宣言します
クロック信号の 立ち上がり
リセット信号の 立ち下がり or
(または) に always@ 以下の 処理が行われる
10
解説(続き) always@( クロック信号 or リセット信号) begin
if( クロック信号 )begin (レジスタ初期化); end else begin (順序回路の処理); end
end
always@() は定型文で記述
レジスタに代入するときは 「 <= 」を使う!(ノンブロッキング代入)
左辺はレジスタ値にする
11
リセット信号 初期化を記述
クロックを記述
シミュレーションで動作を確認
12
シミュレーション結果の確認
リセットがかかるまで 値が決まらないので 出力は不定
リセット中は 初期値が出る
リセット後は クロックの立ち上がりで カウントする
LEDG[3:0]を COUNT_VALUEに纏めた
13
FPGAボード上に実装してみる
全部点灯する??
14
原因の考察 • 基準クロック 50MHz に同期 • LEDの点滅が早すぎる!
4ビット 加算器
4ビット レジスタ
クロック (50MHz)
考えてみよう: 50MHz のとき 点滅の間隔は ____[nsec]である.
リセット信号
15
タイミングを調整 タイミング調整用の値を 保持するレジスタ宣言
レジスタ初期化
50MHz カウントしたら LEDを1つインクリメント
16
FPGAに再度書き込み
LEDがゆっくり カウント アップすると 成功
17
右から左に流れるLED • 以下の動作をする回路を記述せよ ‒ ただし、LEDが切替るのは1秒間隔とする
?
4ビット レジスタ
クロック (50MHz)
どこを書き換えればよいか? リセット信号
18
答え • 初期値を与え左シフタを記述するだけ!
加算はコメントアウト
左シフタ
初期値を変更
19
FPGA上に実現
LEDが右から左へ 点灯すると成功
20
課題1 ただしLEDの点灯間隔は全て1秒とする 1. LEDを点滅させよ 2. スライドスイッチがOFF: ダウンカウンタ スライドスイッチがON: アップカウンタ となる回路を作成せよ
3. スライドスイッチがOFF: LEDが右→左 スライドスイッチがON: LEDが左→右 となる回路を作成せよ
21
課題2 ただしLEDの点灯間隔は全て1秒とする 1. 7セグメントLEDがカウントアップする回路を作成し, DE0ボード上に実現せよ. ただし, 0から7までのカウントでよい.
2. 1.で作った回路を スライドスイッチがOFF: ダウンカウンタ スライドスイッチがON: アップカウンタ となるように改造せよ
Recommended