...

Realization of an HDL Training Environment using Educational

by user

on
Category: Documents
3

views

Report

Comments

Transcript

Realization of an HDL Training Environment using Educational
社団法人 情報処理学会 研究報告
IPSJ SIG Technical Report
2005−CE−78 (7)
2005/2/18
教育用マイコンボードを用いた
重村 哲至
守川 和夫
力 規晃
HDL 演習環境の実現
新田 貴之
原田 耕治
山田 健仁
徳山工業高等専門学校 情報電子工学科
要 旨
高専の計算機系学科で低学年の機械語教育用に使用するマイクロコンピュータを開
発した。このマイコンは、FPGA に教育用のオリジナル CPU やメモリ,入出力回路
を集積し,ワンボードマイコンとして組み立てたものである.高学年では同じマイコ
ンボードの FPGA を書き換えることで HDL の教育に使用できる.
本稿では,マイコンボードを使用した HDL 演習環境の概要,実験科目での使用例
と使用した結果について述べる.
Realization of an HDL Training Environment using
Educational Microcomputer
Tetsuji SHIGEMURA
Takayuki NITTA
Kazuo MORIKAWA
Noriaki CHIKARA
Koji HARADA
Takehito YAMADA
Dept. of Computer Science and Electronic Engineering, Tokuyama College of Technology
Abstract
We developed a board computer named TeC5 for computer education at the
lower-grade of technical college. TeC5 provides an original CPU for education, a
memory and I/O interface, those are implement on an FPGA(Field Programmable
Gate Array). For the upper-grade, TeC5 can be used for education of HDL(Hardware
Description Language) design by reconguring FPGA.
In the paper, we present an HDL training environment and examples of experiment using TeC5.
{1{
−43−
1
はじめに
計算機系学科における計算機初期教育で学生に
計算機の原理を理解させることを目的に,学習が容
易な命令セットアーキテクチャを持ち,かつ,ラン
プやスイッチの ON/OFF で2進数を表現するコン
ソール・パネルと,最小限の入出力装置を装備した
教育用のマイクロコンピュータ (以下マイコン) を
開発した [1] .
このマイコンは,VHS ビデオカセットケースに
収まるコンパクトなもので,かつ安価なものである.
学生が個人で所有し持ち運ぶことにより,学校でも
自宅でも機械語の演習が可能である.開発当初は,
本マイコンを高専の学生が入学時に購入し,1年次
から2年次にかけて機械語学習のために使用するこ
とを想定した.
しかし,3年次以降,使用する機会がないのでは
全員に購入させるメリットを生かし切ることがで
きない.全員が同じハードウェアを所有しているメ
リットを生かし,3年次以降も一人1台の演習環境
写真1 マイコンボード外観
として有効利用することが望ましい.そこで,この
マイコンに予め FPGA の学習ボードとしての機能
を組み込んだ.すなわち,CPU や周辺回路を実装
し,本マイコンボードの核となる FPGA の設計デー
タを書き換えることを可能とした.このことにより
学生は,低学年で機械語の学習に使用したマイコン
ボードを,高学年では FPGA の学習ボードとして
使用できる.
本稿では,このマイコンボードを用いた HDL 演
習環境と,これを用いた本校の実験科目での使用例
と使用結果について報告する.
(1) FPGA
プリント基板の中央やや左下に実装された正方形
の IC チップが Xilinx 社 Spartan-2(XC2S30) FPGA
チップである.マイコンとして使用するときは,ボー
ド上のシリアル PROM から設計データをダウンロー
ドし,マイコンの
CPU,RAM,ROM,入出力イ
ンタフェース回路がこの内部に実現される.
ボード上のジャンパーを引き抜くことにより,設計
データを JTAG コネクタから FPGA にダウンロー
ドする状態となり,本ボードが FPGA 学習ボード
2 HDL 演習環境
として使用できる.
今回実現した HDL 演習環境は,マイコンボードと
(2) JTAG コネクタ
FPGA 設計環境をインストールした Windows PC
から構成される.使用できる記述言語は VHDL で
習ボードとして使用するとき,開発システムから設
ある.
計データをダウンロードするための
プリント基板下部の左側コネクタは,FPGA 学
タである.市販の Xilinx 対応
JTAG ダウンロード
ケーブルを用い,PC と接続する.
2.1 マイコンボード
マイコンボードの外観を写真1に,回路図を付録
1に示す.構成は以下の通りであり,FPGA 学習
ボードとしても使用可能である.
JTAG コネク
(2) 発振回路
FPGA チップの左側に 2.4576MHz の水晶発振
IC が実装されている.この IC の出力は FPGA の
クロック入力用ピンに接続されており,FPGA 内部
{2{
−44−
に作成した回路のクロックとして使用できる.
(3) リセット回路
ボード左側上に電源監視 IC が実装されており,こ
れが FPGA のリセット回路になっている.リセッ
ト手段はパワーオンリセットのみで,手動で FPGA
をリセットする方法は用意されていない.
(4) 電源回路
ボード左側上に
FPGA のコア用 2.5V,I/O 用
3.3V 安定化電源回路が実装されている.電源電圧
の制約,既にボード上に実装されて接続されてい
る周辺回路の制約により,FPGA の入出力ピンは
写真2
TTL 互換モードのみで使用することができる.
7 セグメント LED 基板
ランシーバ IC を介して接続されている.FPGA の
(5) コンソールパネル
プリント基板の右半分にマイコンのコンソールパ
ネルが実装されている.コンソールパネルは2進数
でマイコンの CPU レジスタやメモリの値を表示し
たり書き換えたりするためのものであり,ランプ 25
個,押しボタンスイッチ 9 個,トグルスイッチ
10
個から構成される.
マイコンのアーキテクチャが 8 ビットアドレス,
8 ビットデータであるので,それに合わせて 8 桁の
アドレスランプ,データランプ,データスイッチ (ト
グルスイッチ) が実装されている.その他に,CPU
やコンソールパネル自体の状態を示すランプや,パ
ネルの機能に対応した押しボタンスイッチが実装さ
れている.
ランプやスイッチのほとんどは FPGA の入出力ピ
内部にシリアル・パラレル変換回路を作成すること
によりパソコンとの通信が可能になる.
(7) スピーカ
プリント基板中央上部の円形の部品は圧電スピー
カである.これも,回路構成上は FPGA の入出力
ピンがドライバ IC を介して接続されただけのもの
であり,FPGA の内部に音源回路を作成することに
より音を鳴らすことができる.
(8) 拡張コネクタ
プリント基板下部の右側コネクタは拡張コネクタ
である.回路構成上は,電源・グランドと FPGA の
入出力ピン 16 本が直接接続されたものであり,様々
ンに直接接続されている (付録1参照) ので,FPGA
な用途に利用可能である.
学習ボードとして使用する場合は全てのスイッチや
す7セグメント LED 基板を接続して使用した.
ランプを自由に使用できる.しかし,スイッチに接
続されたピンを間違って出力に設定すると
FPGA
チップが破壊される恐れがある.
押しボタンスイッチの
今回の実験科目では,このコネクタに写真2に示
FPGA への接続方法が,
2.2 FPGA 設計環境
写真3に FPGA の開発システムの様子を示す.パ
チャタリング防止対応等により数種類あり,教材と
RESET ス
ソコン教室の 50 台の PC にダウンロード用のケー
イッチも回路構成上はコンソールパネルの一部であ
ブルを増設し,マイコンボードと接続できるように
る.
した.
して役に立つ.なお,ボード左下隅の
これに,Xilinx 社の WebPACK ISE をインストー
(6) シリアル入出力インタフェース
プリント基板左上の D-SUB コネクタは,RS-232C
に準拠したシリアル入出力インタフェースのコネク
タである.コネクタには FPGA の入出力ピンがト
ルした.WebPACK は,Xilinx 社のホームページ
からダウンロードし,無償で使用できる Windows
上で動作する FPGA 設計用統合環境である.この
設計環境で,VHDL 入力,論理合成,配置配線,ダ
{3{
−45−
表1 実験項目
実験項目
週
1 ガイダンス
2 FPGA と VHDL による回路設計の概要
3 VHDL の記述方法の基礎
4 FPGA 設計環境の使用方法
5 デコーダ,エンコーダ,マルチプレクサの
設計
写真3
6 フリップフロップとシフトレジスタの設計
7 7 セグメントデコーダの設計
8 カウンタ (バイナリ,ジョンソン,10進)
FPGA 設計環境
の設計
9 ALU の設計
10 ステートマシンの設計
11 自由課題 (1)
12 自由課題 (2)
13 自由課題 (3)
14 課題発表の資料作成
15 課題発表
ウンロードまでを行うことができる.
3
実験科目での授業例
上記のマイコンボードと設計環境を1クラス分
(50 セット) 準備し,徳山高専情報電子工学科4年
生の実験科目「コンピュータシステム実験」で使用
した.
3.2 実験内容
実験項目の一覧を表1に示す.
実験は半期で一つの目標を達成する大実験に近い
3.1 科目設計の背景
ものである.しかし,学生に FPGA,VHDL につい
従来,論理回路を扱う実験テーマではハードウェ
ての予備知識がないため,前半 10 回をこれらの学習
アの制限により非常に限られた規模の回路を扱うこ
を目的としたトレーニング的な内容とした.この間
としかできず,数ビットのカウンター設計等をテー
は毎回「教員による設計課題と関連する VHDL 文
マとしてきた.そのため,論理回路の設計をマスター
法の説明」「
,学生による課題の VHDL 記述と FPGA
させることは難しかった.一方で,企業等の現場で
への実装」,
「教員による動作確認」を行った.学生
は HDL を用いた設計が主流になりつつあり,学校
はグループではなく個人で課題を解決する.
の授業や実験でもこれを取り入れる例が多くなって
後半 5 回の自由課題は,3∼4人の班を作り,班
きている.そこで,本学科の実験科目でも HDL を
の学生で協力して行った.それまでに習得した技術
用いた本格的な論理回路設計テーマの新設が望まれ
を利用し,マイコンボードで実現可能なシステムを
ていた.
提案し実現する.最後に班毎のプレゼンテーション
今回,FPGA 学習環境の整備が可能になったこと
を行う.
で,HDL を用いた論理回路設計を実験テーマとし
て取り入れることが可能になった.このテーマを取
り入れた科目は新設の「コンピュータシステム実験」
3.3 実験結果
である.この実験科目は,コンピュータシステムに
自由課題は夏休みをはさんだため,多くの学生が
関するソフトウェアとハードウェアを融合したテー
夏休みも学校に出てきて予想外に大がかりなシス
マを扱うために平成 16 年度より新設された.この
テムを作成した.作成したシステムの多くは簡単な
前期 15 週 (90 分 2 コマ/週) を VHDL 学習テーマ
とした.
ゲームを実装したものが多かった.例を挙げると,
「神経衰弱ゲーム」,
「スロットマシン」,
「相性占い」
{4{
−46−
半年の間には恐らく設定ミスは何度も発生したはず
等である.
「神経衰弱ゲーム」は,LED の表示により二十
数枚のカードの場所を表現し,場所を指定しカード
である.しかし,短時間のうちにミスに気づく等し
て破壊に至らなかったものと考えられる.
この程度の使用なら,本格的な FPGA 学習ボー
をめくることができるものである.教員側の感覚か
らすると,VHDL で記述する気の起こらないよう
ドを使用しなくてもこのボードで十分実用に耐える.
なものであるが完成させ動かすことに成功した.
むしろ,ボードの小ささやシンプルさ,クラスの人
「スロットマシン」は,与えた 7 セグメント LED
2 桁のものであったので,マイコン2台を RS232C のクロスケーブルで接続し,必要な桁数を確
数分の台数が揃うこと等からこのマイコンボードを
が
使用するメリットの方が大きい.
保したものである.
4
このように VHDL に慣れ,かなり複雑なシステ
ムも記述できるようになった.実験を行った学生は,
1年次からC言語のプログラミング教育を長く受
け,プログラミングが得意な者が多い.そのため,
ある程度複雑なシステムを組み立てることに慣れて
おり,予想以上に大きなシステムを記述できたと考
えられる.
おわりに
本稿では,教育用に開発したマイコンボードを
FPGA 学習ボードとして使用した HDL 演習環境
と,この演習環境を使用した実験科目の例を紹介し
た.マイコンボードを含む演習環境の機能は十分で
あったが,実験科目の内容は改良の余地があるもの
となった.
VHDL が記述できるようにはなったが,記述し
しかし,実験中に学生から受けた相談の多くは
VHDL 記述を回路記述ではなくアルゴリズム記述
と考えたために陥ったバグに関するものであった.
また,不適切な記述により無駄なフリップフロップ
が多数できたため,FPGA のゲートを使い尽くして
ているものを回路として認識することが不十分であ
る.そのため,コンピュータのプログラムを記述す
ることとの差が十分に理解できない学生が少なくな
いようである.
しまう例もあった.
「VHDL で記述したプログラムが並列に動く」の
ような発言をする学生が少なくない.相当大きな回
今後の課題は,今回よりも論理回路設計をしてい
る実感を学生に感じさせることである.回路図入力
の併用等が有効であると予想される.
路を記述したにもかかわらず,プログラミングと混
同している可能性があり,真の意味で論理回路設計
をすることができるようになったのか疑問も残る.
今回のように論理回路設計に慣れさせる目的の
場合は,HDL を使用するのではなく回路図入力で
しっかり「回路を作る」という感覚を教えた方が良
いと感じる.回路図が書けるようになった後に,効
率良く記述する方法として HDL を導入するべきで
5
謝辞
実験科目の運営にあたり,PC 教室の整備,7セ
グメント LED ボードの開発等に積極的に協力をし
て頂いた,本校の山本孝子技術室長,寺西 信技術
職員に感謝の意を表する.
あった.
参考文献
3.4 マイコンボードの使用結果
[1]
半年にわたり,40 名以上の学生が自由にマイコン
ボードを使用して FPGA の設計ができる環境を提
供した.マイコンボードは FPGA 学習ボード専用
ではないため,入出力ピンの設定ミス等によりチッ
プを破壊する等のトラブルも予想されたが1台の故
障もなく実験を終わることができた.
初めてボードを使用する週に,破損する可能性が
あるので設定ミスに十分注意するよう説明したが,
{5{
−47−
重村哲至,山田健仁,新田貴之,力 規晃,原田 徳
彦,三木 幸:コンソールパネルを持つビデオカセッ
トサイズの教育用マイコンの開発,情報処理学会研
究報告,2004-CE-74,pp.25-32(2004)
0.1u
C17
5V
TDI
TMS
TCK
TDO
2
CN4
6
9
4
6
8
10
3
5
7
9
1
2
3
4
1
5
3
2
4
6
8
10
12
14
16
18
20
1
3
5
7
9
11
13
15
17
19
CN3
8
7
6
5
C16
D0
D1
D2
D3
D4
D5
D6
D7
RS232C
9ピンオス
C14
1u
+
C13 +
1u
C12 +
1u
1u
1
2
3
4
5
6
7
8
R3
390
C2VS-
C1+
VS+
C1C2+
U6
VCC
GND
16
15
14
13
12
11
10
9
RA2
5V
2.5V
5V
3.3V
XRESET 97
XBRK 98
99
100
76
77
78
79
A0 80
A1 81
A2 82
A3 83
XIOW 84
85
XIOR 86
XINT0 87
LEFT 88
89
90
CLK 91
92
XINT3 93
94
TDr 95
TDx 96
C6
C18
0.1u
R2
240 + C4 + C5
1u
100u 0.1u
MAX232N
+ C15
5V
0.1u
1
2
1
2.5V
5V
R5
240
C9
0.1u
R4
240 + C7 + C8
1u
100u
COM
5V
RA3
I/O,VREF
I/O
TCK
VCCO
VCCO
TDO
GND
TDI
I/O(CS)
I/O(WRITE)
IO,VREF
I/O
I/O
VCCINT
I/O,VREF
I/O
IO(GCK2)
GND
VCCO
GCK3
VCCINT
I/O,VREF
VCCINT
I/O
I/O
3
U3
3
LM317LZ
2
3.3V
COM
U2
ON
LM317LZ
C3
外部バス
コネクタ
(ピンソケット)
A0
A1
A2
A3
XIOW
XIOR
XINT0
XINT3
5V
U5
X1
DATA VCC
CLK
VCC
OE/XRESET
CE
GND
Serial PROM
XC17S30APD8C 3.3V
AT17LV256-10PC
JXO-5S
2.4576MHz
1
2
1
CN2 3.3V
RA1
3.3V
0.1u
+ C1 + C2
1u
100u
ダウンロードコネクタ
(ピンフレーム)
R1
200
COM
BREAK
STEP
CN1
NO
NC
RUN
COM
STOP
5V
+ C10
10u
3.3V
プッシュスイッチ
RESET
CCLK 75
I/O,(DOUT,BUSY) 74 BUZ
I/O,(DIN,D0) 73
I/O,VREF 72 RLED
I/O 71 CLED
I/O,(D1) 70 SLED
I/O,(D2) 69 ZLED
I/O 68 ALED7
I/O,VREF 67 ALED6
66 ALED5
4
2
3
1
XC2S30-6VQ100C
U1
5V
RA4
Vs
SNS
C11
0.1u
5
7
6
8
RA5
5V
R6
10k
29
28
27
26
XDSW4
XDSW5
XDSW6
XDSW3
XDSW1
XDSW2
RIGHT
LEFT
C30
C22
5V
2
3
R7
10k
3.3V
U10
2
14 33 35 35 35 35 35 35
U1
5
6
7
8
ADDRESS
9
4
6
7
DATA
5
8
9
4
D5
D4
5
D3
6
D-Latch
7
D2
8
D1
9
D0
C37
0.1u
C29
0.1u
3
4
U9
10
1
19
U7
10
U10
10
20
200 RA9
5V
OE
20
U8
10
200 RA6
5V
19
20
200 RA7
5V
19
20
200 RA8
5V
Date:Mar,8,2003
Ver. 1.0
T.Shigemura
TeC5 Main Board
0.1u
C20
5V
0.1u
C19
5V
0.1u
C20
5V
0.1u
C21
5V
Tokuyam Technical College
9
8
7
6
5
18 17 16 15 14 13 12 11
1
SN74ALS540N
3
D6
G
D7
U7 11
4
19 18 17 16 15 14 13 12
SN74ALS540N
U8
3
18 17 16 15 14 13 12 11
1
2
18 17 16 15 14 13 12 11
U9 1
SN74ALS540N
SN74ALS563BN 2
R11
100
R9
10k
圧電
スピーカ
12 26 37 50 63 76 90 100
C44
0.01u
2.5V
3.3V
R10
100
R8
10k
D3
D2
D1
D0
XDSW0
5V
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
32
31
30
C4
0.01u
VCCO
DONE
GND
I/O
I/O
IO,VREF
I/O
I/O
VCCINT
IO,VREF
I/O
IO(GCK0)
GND
VCCO
GCK1
VCCINT
IO,VREF
VCCINT
I/O
I/O
IO,VREF
NC
NC
M2
VCCO
5V 5V
U4
Ct
RESET
GND RESET
REF
RESIN
Supply Voltage
Supervisor
TL7705ACPA
Spartan-II FPGA
XINCA_S
1 GND
2 TMS
3 I/O
4 I/O,VREF
5 I/O
6 I/O
7 I/O
8 I/O,VREF
9 I/O
XSTEP
XRUN_R
XRUN_S
STOP
SETA
XINCA_R
SETA
65 ALED4
64
63
I/O,(D3)
I/O,IRDY
GND
VCCO
INCA
14 VCCINT
XWRITE_R 15 I/O
XWRITE_S 16 I/O,VREF
WRITE
NO
DSW7
NC
DSW6
XDECA_R 10 I/O,IRDY
11 GND
12 VCCO
XDECA_S 13 I/O,TRDY
DECA
D7
I/O,TRDY 62 ALED3
VCCINT 61
2.5V
I/O,(D4) 60 ALED2
I/O,VREF 59 ALED1
I/O 58 ALED0
I/O,(D5) 57 DLD
G0 17 I/O
G1 18 I/O
SP 19 I/O
PC 20 I/O,VREF
MM 21 I/O
XDSW7 22 I/O
DSW5
ALED7
未使用
DSW4
ALED6
D6
D5
D4
I/O,(D6) 56
I/O 55
I/O,VREF 54
I/O,(D7) 53
I/O,(INIT) 52
PROGRAM 51
23 M1
24 GND
25 M0
DSW3
ALED5
トグルスイッチ
DSW2
BUZ
ALED4
G0
G0
ON
DSW1
RLED
ALED3
G1
G1
BOTTOM VIEW
DSW0
D7
D6
D5
D4
D3
D2
D1
D0
CLED
ALED2
SP
SP
1 3 2
J1
SLED
ALED1
PC
PC
RIGHT
close:PROM
open :JTAG
RUN
C
S
Z
ZLED
ALED0
MM
{6{
−48−
MM
LM317LZ(TO-92)
付録1 マイコンボード回路図
Fly UP