Realization of an HDL Training Environment using Educational
by user
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 マイコンボード回路図