2. 組み合わせ回路入門
2.2. 実習 Verilog-HDL記述
Open-It FPGAトレーニングコース(初級編) 第9版
デジタル回路の構成要素
全てのデジタル回路は
この
4つの要素(回路)のみ
で構成されている
4要素のHDL記述を知っていれば最低限の知識としては十分
O=A&B;
O=A|B;
O=~I;
2 Open-It FPGAトレーニングコース(初級)INV
HDL:
Hardware Description Language
テキストファイルで回路表現する為の言語
ソフトウエア・プログラムの様に書ける
最近は
HDLが主流ですが何故でしょう?
代表的な言語はVerilog-HDLとVHDL
ちなみに、FPGA実装時に回路図入力もできます
3 Open-It FPGAトレーニングコース(初級)回路表現方法
回路図
Hardware
Description
Language (HDL)
Verilog-HDL, VHDL, SystemCなど
部品とその配線情報が回路情報
主な表現方法
FPGA回路はHDLで書く事が多い
4要素の接続で決まるので、その接続を表現できれば良い
4 Open-It FPGAトレーニングコース(初級)何故
HDLを使うのか?
作業効率が悪い
基本的に
1信号を1本の線で表現
入力ミスが多くなる
大規模回路では読みにくい
回路図が複数枚になると信号の接続先を調べる
だけでも大変
回路図入力には幾つかの問題がある
5 Open-It FPGAトレーニングコース(初級)HDLの魅力
設計作業を効率よく行うために誕生
効率良く入力できる事で
入力ミスを少なく
大規模回路が扱えるようになった
読みやすい
他には、
コードを仕様書に近づける
回路動作の理解は回路図の方が優れています。
ブロック図、回路図なども組み合わせて設計を進めてください
6 Open-It FPGAトレーニングコース(初級)HDLの注意
魔法の言語ではありません
HDLを使えばハードを知らなくてもハード設計が
できると思っている人がいますが・・・
作業効率を上げる為の手法です
それ以上の期待をしてはいけません
回路図の接続をテキストファイルで表現しただけ
です
回路を理解しなければ設計はできません
7 Open-It FPGAトレーニングコース(初級)Verilog HDL
テキストファイルとして書きます
テキストエディタを使って書きます
各自好きなエディタを使ってください
通常拡張子は
.v
文法がC言語に
似ている
しかし、
動作はまったく異なる
ので注意!!
回路図から
HDLへ書き直すと理解しやすい
8 Open-It FPGAトレーニングコース(初級)最初に衝撃的な事実!
HDL文法的に
正しくても
動かない回路
が生成される事がある!
回路を考え、その回路を
HDLで記述して下さい。
回路を考えずにコーディングしてはいけません。
この様な事が起きるのでハードウエア設計が難解だと思う人が少なくないようです
9 Open-It FPGAトレーニングコース(初級)何故、その様な事が起きるのか?
シミュレーション用の記述も含まれている
シミュレーションのみで使用する時は
PC上の動作
に限定されるので回路化する必要が無い
回路を言語で記述するために設計されている
言語で回路を記述、生成するためではない
10 Open-It FPGAトレーニングコース(初級)どの様に対応するのか?
文を記述することで設計しない
回路を考えた後で言語を用いて回路を記述す
る
11 Open-It FPGAトレーニングコース(初級)Open-It FPGAトレーニングコース(初級) 12
Open-It FPGAトレーニングコース(初級) 13
詳細は付録「
Verilog-HDL入門」
または参考文献を参照してください
トレーニングコースで使用する文法のみ解説します
ここで紹介する書き方の他に様々な書き方があります。
書籍に色々な書き方が紹介されていますので
気に入った、凝った書き方や美しい書き方を見つけてください。
最初の目標
LED0
R
SW_A
SW_B
ANDをVerilog HDLで記述してみましょう
14 Open-It FPGAトレーニングコース(初級)FPGA
ある回路の集まりを回路ブロックと呼ぶ
Verilog-HDLではモジュールと呼びます
テキストファイルについて
Verilog-HDLコードはテキストファイルとして作成する
拡張子は
”.V”
通常
1ファイルで1回路(モジュール)
数字から始まるモジュール名は使用しない
文法では決まっていないが問題を起きにくくするために奨励
大文字、小文字は区別される
コメントは
/*から*/、または//から行末まで
基本的に
1文は;で終わる
15 Open-It FPGAトレーニングコース(初級)演算子
Open-It FPGAトレーニングコース(初級) 16O=A&B;
O=A|B;
O=~I;
O
I
O
A
B
A
B
O
A
O
B
O=A^B;
Assign文
assign文をつかう
明示的に組み合わせ回路である事を示す
例)
AND回路
Assign O = A &B;
17 Open-It FPGAトレーニングコース(初級)ANDゲート回路
LED0
SW_A
SW_B
18 Open-It FPGAトレーニングコース(初級)TSET.V
モジュール名:
TEST
ファイル名:TEST.V
入力信号:
SW_A, SWB
出力信号:
LED0
このモジュールを
Verilog-HDLで書くと・・・・・
ANDゲートのHDLコード
Open-It FPGAトレーニングコース(初級) 19moduleで始まり
endmoduleで終わる
Module名 回路の名前
区別できる好きな名前をつけてよい、ファイ ル名と同じにした方が良い()の中に入出力信号線リストを書く
• 信号名+入出力の属性定義
• input, output, inoutの3種類
回路はassignを使用して書く、右辺が入力、左辺が出力
コメント
コメント
文の最後は;で終わる
ポートリストの最後は
,が無いので注意
ここから実習です
20 Open-It FPGAトレーニングコース(初級)
ISE
ISEはXilinx社のFPGA開発統合環境
様々なツールを
ISE画面から操作できる
ISEを使って回路入力やFPGAデータ生成を
行います。
Open-It FPGAトレーニングコース(初級) 21プロジェクト作成
作業ディレクトリの作成
ISEプロジェクトの作成
作業ディレクトリの指定
使用デバイスの指定
22作業内容
作業をするめに必要な環境を設定します
Open-It FPGAトレーニングコース(初級)プロジェクトは一つのFPGAで一つ作ります
ISEのプロジェクトについて
一つの
FPGAで一つ作ります
異なる複数の回路を一つのプロジェクトに入れて
はいけません
回路が異なればプロジェクトも分けます。
新しいプロジェクトを作るときは新しいフォルダ
を作り、その中に作ります
一つの作業ディレクト内に複数プロジェクトを作っ
てはいけません
Open-It FPGAトレーニングコース(初級) 23作業ディレクトリの作成
以下を
ISE作業ディレクトリとします
C:¥Temp¥FPGA_Seminarを作成して下さい
この資料では上を作業ディレクトリして使用しますが、他のフォルダでも構いません。
フォルダ名に日本語やスペースがあるディレクトリはやめておいた方がよいです
24 Open-It FPGAトレーニングコース(初級)ISEを起動しましょう!
ISE Project navigatorを立ち上げて下さい
アイコンをダブルクリック!
または、
全てのプロブラム→ Xilinx Design Tools→
Xilinx ISE Design Suite 14.5→ ISE Design Tools→
Project Navigator
ISEプロジェクトの作成
Open-It FPGAトレーニングコース(初級) 26
プロジェクトファイルの作成
プロジェクト名と作業ホルダの指定
①
②
HDLで記述するのでこのまま
C:¥Temp¥FPGA_Seminarまで選択
TESTはNameを入れると自動で付加される
③
Open-It FPGAトレーニングコース(初級)Location
27ファイル選択画面から
ディレクトリを選択
TESTと入力
プロジェクトファイルの作成
デバイスの指定
使用するデバイスを選択する
Open-It FPGAトレーニングコース(初級) 28
確認画面
Open-It FPGAトレーニングコース(初級) 29
設定内容が正しい事を確認
プロジェクト作成終了
30 Open-It FPGAトレーニングコース(初級)
Verilog-HDLモジュール作成
AND回路をHDLで記述します。
ファイル名:
TEST.v
モジュール名:
TEST
31 Open-It FPGAトレーニングコース(初級)新しいモジュールの追加
32①
xc3s50an-4tqg144
の上で右クリック
②New Source…をクリック
Open-It FPGAトレーニングコース(初級)ソースファイル名の指定
33②ファイル名 TEST.vを入力
①
Verilog Moduleをクリック
③チェックマークを確認
④クリック
Open-It FPGAトレーニングコース(初級)ポート名の指定
34①モジュール名
TESTを入力
②ダブルクリックして信号を入力
③信号の方向を設定
Open-It FPGAトレーニングコース(初級)④クリック
モジュール確認
35
①正しいか確認
Open-It FPGAトレーニングコース(初級)
作成されたひな型
36
ここにAND回路のコードを書く
Open-It FPGAトレーニングコース(初級)
AND回路の再確認
LED0
R
SW_A
SW_B
37この部分のひな型が出来た
TEST
ANDを記述して下さい
Open-It FPGAトレーニングコース(初級)TEST.vにAND回路を追加
38書き加えるのはこの1行
outputはwireと同じ意味なのでwire宣言は要らない
組み合わせ回路はassign文で書きます
Open-It FPGAトレーニングコース(初級)書き終わったらセーブ
39 Open-It FPGAトレーニングコース(初級)