...

ハードウェア記述言語による FPGA設計の基礎技術の修得

by user

on
Category: Documents
22

views

Report

Comments

Transcript

ハードウェア記述言語による FPGA設計の基礎技術の修得
ハー ドウェア記述言語による FPGA設計の基礎技術の修得
松山幸雄
第三技術室システム設計班
1 はじめに
ハードウェア記述言語 HDL
(
Hardwar
eD
e
s
c
r
i
p
t
i
o
n Language)の出現によりプログラムによっ
てハードウェア回路(論理回路)を設計できるようになった
また PLD (
Progra皿 mable1
ρ
g
'
c
Device) の出現により,プログラムにより容易にデジタル IC回路を専用のオリジナノレ 1Cに創る
ことができるようになり ,
民生品や特殊品などの組み込み機器で使用されている
本研修では, FP
G A上 で VH D L言語による回路作成方法を修得l.-,応用として 8 ピット C P Uソフトマクロ
PicoBlaze (KCPSM3) を使用して風速計を作成した
2. F PG Aについて
大規模な回路が 1つの PLD
PL_D (frogramm~bl_e _ L
o
g
i
cq ~v!ce)
内に作成できるものに CPLD
と FPGAがあり,その位置づ
けは図 1のようになっている
PLD.
.
~.. A
ND-OAアレイ構造
・
S
i
m
p
l
ePLD ・
・ ヒューズ (
P
A
L,
GAL'・
)
"
_
G
_
o
m
p
l
e
x_PJD (C ~LD ) ・
・
・ EEPROMセJレ .
.a
l
1
e
l
aネ
土
FPGA .
. SRAMペースの lUTによる基本論理ブロックのアレイ構造
SRAMセル フラフンユメモリ。アンチヒュ ズ
・
.
.
.
.x
i
l
i
n
x従
軍Z
裏切断跨プログラム消去ーコンフィグ ROMに.込み
I
[
図 Il C
P
L
Dと F
P
G
Aの位置づけ
FPGA(FieldProgrammable
GateArray)は SRAMベースの
LUT(LookUpT
a
b
l
e
)による基本給理プロックのアレイ構造セルになっており,例えば LUTに AND
ゲー トの真理値を書込むことによりセノレを ANDゲート化する
高機能,高集積、大規脱化するに
つれユーザの設計開発が長期化すため,その短縮手段として標準回路機能をコアと Lてベンダより
提供され,それにはプログラムによるソフトマクロ (
USB,小規模 CPU(PicoBlaze(
8
b
i
t)
. MicroB
l
a
z
e(
32biりなど)と FPGA内臓のハー ドマクロ (DCM(
D
i
g
i
t
a
lCl
o
ckModule),乗算器, DSP,大規
模 CPU(PowerPC(32凶)など)がある
3. V H D L言語について
H D Lでよく使われている言語には,記述能力は高くないが記述が簡単な V
e
r
i
l
o
gHDLと記述分
野が広く品刊、記述能力を持つ VH D L(
V
e
r
yHighSpeed
ICDHL)があり,また V H DLにはゲー ト記述を表すゲ
ートレベノレ,回路生成を表すレジスタトランスフアレベ
A
B
s
ノ
レ(
RTL
)
, 状態遷移を査すピへイピアレベル,システ
c
ム全体を表すアーキテクチャレベルの 4つの記述レベノレ
がある
研修では VH DLでロジック回路設計のために
l
図2
1 半加算器回路
R T L記述で行った
3- 1.VHDLプログラム記述
− 33 −
VHDL言語でのプログラム記述方法を
)を例として図 3に示す
半加算器回路(図 2
記述は基本的なデザインデータの集まりで
ユーザや IEEE標準のパッケージや算術演
算パッケージ等を呼出すためのライブラリ
宣言,データの方向,データ型やパス幅等
ーフイブラリ宣言
l
i
b
r
a
r
yIEEE;
useI
E
E
E
.
s
t
d
_
l
o
g
i
c
_
1
1
6
4
.
a
l
l
;
ーエンティティ宣言
・
・
・
外部とのイン告ーフェース部
e
n
t
i
t
yHallAdderi
s
po同(
A,
B:
i
ns
t
d
ーl
o
g
i
c
;
S,
C outstd_logic);
endHalfAdder;
目
外部との接続を表すエンティティ宣言,内
ーアーキテクチャ宣言・・・内部の動作
a
r
c
h
i
t
e
c
t
u
r
eH
a
l
lAd
der_body0
1HallAdderi
s
s
i
g
n
a
lD,
E:s
t
d
_
l
o
g
i
c
;
部処理,内部接続や階層間接続など内部動
begin
作を表すアーキテクチャ宣言より構成され
る.エンティティ宣言の port文で,入力信
号 A,
B と出力信号(和信号 S,桁上げ信号 C
)
;
D <= AorB
E<= AnandB
;
;
S<= D andE
C<= notE
;
der_body;
endH
a
I
IAd
[
図3
J Vト
m Lプログラム
の方向,型を指定する.アーキテクチャ宣
Eのデータ型,幅等を
言では,内部信号 D,
指定し, begin文では演算を行いその結果を出力 D,
E,
S,
C に代入する signal文は同時に処理される.
またこの半加算器回路をコンポーネント化し全加算器回路の階層下として使用できる .
4. 開発ツーノレ
F P G Aの設計の手順は,図 4に示した様に回路入力,論理合成やデザイン変換,マップ,配置
配線を行うインプリメンテーション,各種シミュレーションで検証しながら完成させる
これらを
・
n .
-kJ>鍋u dco
,
"
"
"
'
.
.
,
"
"
,
“
一
I
l
c
Y
<
no
,
5 :
__
‘<1.01 - "
'Ie ~ u. <.o 4
7 .
_ 山 一 一u
.8 }.
初出.勾=,
恒
一
四 回 目 出 江 川 中
“
一
・
町抱
A.
.
.
'
a
.
U
_
.n
.
“
パ
山
給量
一
町岡
田町
田田
町一山・.
"
23
J--"",,-..,~
"'"
.0U"""'" … 即 日 一 一 0 ' 0嶋
胤 日噛
回
ι
",
_
"
"
.
.
.
.
.
,
.
"
,,
鑑
定
..
・' c,
,
・
"
"
.
2e
H
.
.
.
.制
1
''
.
3
40<1..
1
1 u
t
,"",_L
DGIC
,
n'II.国 ICj
即 時z
" “ 世 田 山 山 山 明 日 剛 山u U
[
図
4
1
'
)
, ..~I P,
! ,n
:
P
.
一
回
'
"
" .
,
1
>
<.
.
楓
"山
T<
.‘, o
..
;,
37
E<
_ _ 8
開発手順
"
伺
行う開発ツールは, Xilinx社の統合
副
,
j
"
_
H
回
E
働巴 "
四 九 町
デ ザ イ ンウ インドウ一一一
IntegratedSoftware
開発環境 ISE(
Environment)を 使 用 し た こ れ に は
DHL(回路)入力,論理合成,シミュレ
ーション,デノ〈イスへの回路データ
書 込 等 の 機 能 が あ る 図 5は ISE画
[
図 5] 1SEウインドウ
面でデザインプログラム構成を示す
ソースウインドウ,開発手順を表すプロセスウインドウ,各種レポートやソースプログラム表示を
するデザインウインドウ,各種ログ表示するコンソー/
レウインドウから構成されている.
5
. KCPSM3
− 34 −
KCPSM3((
K)c
o
n
s
t
a
n
tCodedProgrammableS
t
a
t
eMachine}は,ソフトマクロ P
i
c
o
B
l
az
eの一
つで Xi
l
i
n
x祉の FPGA(Spartan,
V
e
r
t
ex2
)に適したシンプルな 8B
i
tMicroContro
l
1e
rでる
構成
KCPSM3A
r
c
h
i
t
e
c
t
u
r
e
再 開 _"
7
勾
"RaE
震乏1<>
π
'
S
T
I
也芸廷
掬
懇切
w匂
OUT
_FO
夜
刷"'"苛7
匂
-
四 回 出 回
8bitdat
却諭
・
圃
_
・
・
・
圃
旬
瞬
時
8 bi1: port~蜘閉樋
10b
旬甲田曲四
..OORESS{""
島6刊現K汀鷲,","湖
RESεT
ClJ(
[
図
61KCPSM3構 成 図
componentkcpsm3
P
o
r
t( address:o
u
ts
t
d
_
l
o
g
i
c
_
v
e
c
t
o
r
(
gdownto0
)
;
C
l7downto0
)
;
i
n
s
t
r
u
c
t
i
o
n:i
ns
t
d
_
l
o
g
i
c
_
v
e
c
t
o
r
porCid:o
u
ts
t
d
_
l
o
g
i
c
_
v
e
c
t
o
r
(
7downto0
);
w
r
i
t
c
_
s
t
r
o
b
e:o
u
ts
t
d
_
l
o
g
i
c
;
o
u
t
_
p
o
r
t:
outs
t
d_l
o
g
i
c
_v
e
c
t
o
r
(
7downto0
);
read
_
s
tr
o
b
e:o
u
ts
t
d
_
l
o
g
i
c
;
i
n
_p
o
r
t:i
ns
t
d
_
l
o
g
i
c
_
v
e
c
t
o
r
(
7downto0
)
;
i
n
t
e
r
r
u
p
t:i
ns
t
d
_l
ogi
c;
i
n
t
c
r
r
u
p
t
_ack:o
u
ts
t
d
_
l
o
g
i
c
;
r
e
s
e
t:i
ns
t
d
_
l
o
g
i
c
;
c
l
k:i
ns
t
d_l
o
g
i
c
};
en
t
;
endc
o皿 pon
[
図 7I KCPS闘のコンポーネント定義 (VHDL
)
は図 6のようになっており,命令
長
1
8
b
i
t
l
w
o
r
d,命令数
令,プログラムメモリ
レジスタ数
2 1命
1024wod,
16(
8
b
i
t
),入・出
カポー ト 数 各 256,スクラッチ・
ノぐッド・メモリ
域)
,
64b
y
t
e
(
変数領
1重'剖込み等の仕様で,ソ
フトウェア言語はアセンプラを使
用し, DOSでコンパイルする
KCPSM3マクロは VHDLソース
(kcpsm3,
vhd)で供給されており,
c
o皿 ponentc
o
n
t
r
o
l
Por
t( address:i
ns
t
d
_
l
o
g
i
c
_
v
e
c
t
o
r
(
gdownto0
)
;
i
n
s
t
r
u
c
t
i
o
n:
o
u
ts
t
d
_l
o
g
i
c
_
v
e
c
t
o
r
(
]
7downto0
)
;
p
r
o
c
_r
e
s
e
t:
o
u
ts
t
d
_
l
o
g
i
c
>
;
c
l
k:i
ns
t
d
_
l
o
g
iC
endc
omponent;
ユーザ VHDLソースには
KCPSM3のコンポーネントを定
義(
図りすれば良い
グラム RO
M のコンポーネント定
義である
[
図 81プログラム ROM のコンポーネント定義
− 35 −
図 8はプロ
5. 1 "'7イクロプログラムの書込み
プログラム
メモリへのマ
ROMf
O
n
l
l
.
v
h
d
f
四百主V
ROMo
P
o
r
tBIodl縦割nory
。
伊明閣前}
p
r
o
c
_
噂s
o
t
3
叩眠附
ー問
mmmm
印刷
I
N
S
T
R
u
c
no
村(
1
7:
0
)
K
C
P
S
M
3
刷Y
ORT
[
7
:
0
)
I
N
T
E
R
R
U
P
T
R
E
S
E
T
C
L
K
イクロプログ
。
υ
T
_
P
O
R7
T
(町
ラム書き込み
1
0
[
7:
0
)
R
E
A
DS
T
R
O
B
E
W
R
I
T
ES
T
R
O
B
E
I
N
T
E
R
R
U
P
TA
C
K
I
N
S
T
R
U
C
T
I
O
N
[
1
7:
0
1 A
O
O
R
E
S
S
I
9
:
0
1
同町一
は 1)論理合
成時での組込
み 2)プログ
AODREs
s
r
,
l
:
l
耳
ラムメモ リへ
CLK
の直接書き込
みの 2とおり
があり.1)
e>.
v
h
d
<p
r
o
g
n
a
m
l
U
1
l
e
>
.v
<p
r
o
g
n
<p
r
o
伊 国n
e
>.
p
盟 1
の場合,アセ
ンブ リコンパ
[
図 81 JTAGプログラムローダー
イル後作成さ
ー」
• kc
ps
m3吋 *.psm
.
.
.
.compile
*
*
.
s
v
f.
.
.
.s
e
r
i
a
lv
e
c
t
o
rf
ormat
• hex2svf付 官 hex*
2xsvf***.
s
v
f*
*
*.
x
s
v
f・
.
.x
i
l
i
n
xs
vf
• svf
•s
e
tModebscan
1
・s
etCable-pauto
• addDevi
c
e-posi
t
i
o
n1f
i
l
e会 * 合 xsvf ruSB
•p
lay
• qUlt
れる VHDL(orVerilogHDL)ファイノレ
を FPGAの論理合成時に組み込まれ
る 2)の場合,プログラムメモリ ROM
はデュアノレポー ト RAMを使用してい
るので,書込みポートから直接書き込
みことができる
凶 9はコンパイル,
直接書き 込むためのファイノレ変換,オ
[
図 91コンパイノレ,ファイノレ変換 US
B書込み
ンボー ドの US
Bインタフェースを使
用して JTAGを介して FPGAに書き込む ためのパッチファイノレで,論理合成する時間が省略される
6 風速計の製作
応用として風速計を製作した
これは平成 14年度専門研修で行った風速計で P ICを F P G A
.
FPGA:
S
p
a
r
t
a
n
3
EXC3S500E
.
CPLD:
CoolRunnerXC2C64A
.
ConfigPROM:
XCF04S
'64MbyteDDRSRAM
'
1
0
/
100E
t
h
e
r
n
e
t
.
PS/
2mouseo
rk
e
y
b
o
a
r
d
.
VGAd
i
s
p
l
a
ypo吋
•9
p
i
nRS-232p
o
r
t
s
-周波数 50MHz
-プログラムダウンロ ド USB
・
2行 x16文字 LCD
'
8LEDs
4スライドスイッチ
l
図1
0
) ス告一台キットボードの主な仕線
L
C
D
$W.
[
図 1
1
1Spartan3Eスタータキットボード
− 36 −
に置き換えて行った
使用 Lた評価ボードは X
i
l
i
n
x社 の Spartan3Eスタータキットボードで
FPGA(Spartan3EXC3S500E), CPLD(CoolRunnerXC2C64A)を核としたメモリ ,VGAポート,
RS232ポート, LCDなど図 1
0に示した仕 様のものが格載され演習, 実 験のみならず,簡易なパソ
コンを構築することもできるようになって い る
なおピットストリームファイノレは USBを とおし
て
, FPGA又はフラッシュメモリヘダウンロードする
ボードの概観を図 1
1に示す
,
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ーー
ー
ー
ー
一
一ーーーーーーーーー一一一一一一,
R
O圃
r
一
一
一
ー
一
一
一
F
P
G
AS
p
a
r
t
a
n
3X
C目 5
凹E
+5Y I
,
,
,
,
, 11..
・
3
.
3
‘
02
C
P
U
"時
側 ,~,
""
.抑制
i
o
!
l
山
1
耐
U
・
O
M
E
-360-2
M
C
A
,
.
,
.
.
.
・
"
例
,
.
,
.
"
.
.
,
"
"
・
除
"
一
一
一
一
一
一
一
一
一
一
一
一一
一
一
一
一
一
一
一
一
一
一
一
一
一
一
一
一
一
一
一
一
一
一
一
一
一
一
一
一
一
一
」
S
p
a
r
t
a
n
3
ES
t
a
r
t
e
rK
i
t
l
図
1
21 風 速 計 の構 成図
風速計の構成図は図 12のようになっており,風速計ロータのパルスをカウンタに入力 L,一 秒自主
に CPUに割り込みをかけ, CPUからカウンタの値を読込み, Anemometer製 品で更正した風速値
に換算し , カウンタ値1:共に LCDに出力した
また風速計ロータは大和科学教材研究所の理科教
材 で , そ れ に MEMICON社 の ロ ー タ リ エ ン コ ー ダ OME-360を装着し,ロータ出力をパルス出力す
るように改良した
エンコ ー ダ電源は 5V であるが, FPGA評 価 ボー ドの信号入力端子が LVTTL
のため,エンコーダのオープンコ
RL:丁目
レクタ 出 力 に は 3.3V を 抵 抗 で
プノレアップした
.-d<
評 価 ボー ドでは
風速ロータ出力信号にノイズが合
まれるとカウンタに誤差が生じる
ため
f
カウンタの前{図 12の
FILTER)に図 13のようなノイ
ズを除去するフィノレタ回路を設け
た
[
図 13J ノイズ除去回路
フィルタは 4ピ ットのシフ}
レジスタと ANDゲー ト
, SRレジ
スタより 構 成され,シフトレジス
− 37 −
タに 1
00kHzのクロックを入力することにより 40μsまでのノイズを除去した
風速計の概観は
下図のようになっており, 1秒間隔で風速値が認識できるように 8個 の LEDで左右 4個を交互(:[
秒毎)に点灯するようにした。
l
軍l
i
ま
百
十
7 まとめ
HDLの出現により論理回路がプログラムで記述できライブラリ,マクロ化されるようになってき
た
FPGAは高機能,大規模化され使用困難に見えたが高機能な開発ツールや IPマ ク ロ の 充 実
で 使 い 晶 く な っ た 今 回 の 研 修 で は VHDLや FPGAを十分使い切ることは不可能であったが,モ
れらを使用するための基礎技術は修得できた最後にこの研修の機会を与えてくださった情報メデ
ィア工学科森虞一 郎 先 生 に 深 く 感 謝 し ま す
{参考文献1
1)長谷川裕恭
2) 益田 A喜
改訂 rVHDLによるハードウェア設計入門 JCQ出版社
rFPGA活用チュートりアル J 2006/2007年 版
3) Sparlan'3E スタータキットボードユーザガイド
CQ出 版 社
X
i
l
i
n
xLtd
4) P
i
c
oB
la
z
eKCPSM3品 rS
b
i
tMicroC
o
n
t
r
o
l
1e
rf
o
rS
p
a
r
t
a
n
S,
V
i
r
t
e
x
'
2andV
i
r
t
e
x
'
2PRO
5) P
i
c
oB
la
z
eJTAGLoaderQuickUserGuide X
i
l
i
n
xLtd
− 38 −
Fly UP