論文集「高専教育」 第 34 号

2011.3

ハードウェア記述言語を用いてディジタル回路を立案から設計・製作まで実習させるプロジェクト型教育システムの実践
鈴木 達夫*１

The Educational Practice of Project-Based Learningthat Students Themselves design Digital Circuits
from Planning to Production using Hardware Description Language
Tatsuo SUZUKI

I carried out project-based learning that students themselves design digital circuits from planning toproduction using hardware description language. This project-based learning produced good results in comparison
with lectures in the classroom.
KEYWORDS：project-based learning (PBL), hardware description language, digital circuit, FPGA
7 年間で，どのように実践されてきたのかについて詳しく報告する。

１．はじめに
本論文では，東京都立航空工業高等専門学校(以下，航空高専)電子工学科 5 年後期選択科目(1 単位)の「ハードウェア構成法」という科目における教育実践について報告する。この科目では，学生が数名でチームを作り，学生自らが自分たちで作りたいディジタル回路を立案し，それをハードウ
ェア記述言語 (Verilog HDL) を用いて設計・製作するというプロジェクト型の授業形態をとった。
学生自らが，自分の頭で考え，自らの手で作るという教育実践は，教室での単なる講義と比較して，極めて高い教育的効果を上げることができた。この教育実践がどのような特徴を持ち，これまでの２．教育実践の時代背景
筆者は 1998 年 4 月に航空高専へ赴任し，主にディジタル回路の論理回路設計と半導体工学の授業を担当することとなった。赴任後まもなく，2001 年度から実施されるカリキュラムの改訂作業に取り組むこととなった。当時は，ディジタル回路の論理回路設計手法に大きな技術革新がおきていた。それまで回路図を用いて行われていた論理回路の設計手法が，新しく台頭してきた「ハードウェア記述言語」と呼ばれるプログラミング言語を用いて設計する手法に切り替わろうとしてい*1 東京都立産業技術高等専門学校ものづくり工学科 (Tokyo Metropolitan College of Industrial Technology)〒116-8523 東京都荒川区南千住 8-17-1

E-mail: tatsuo@acp.metro-cit.ac.jp

293た。集積回路が大規模化し回路図を用いた設計手法に限界が生じてきたことが大きな要因であるが，1995 年 12 月に IEEE が Verilog HDL というハードウェア記述言語の文法を正式に制定したことや，FPGA (Field Programmable Gate Array)と呼ばれるプログラム可能な論理デバイスの大容量化が急速に進んできたこと，パソコンの性能向上により高額なワークステーションを使わなくても論理合成・配置配線ツールを利用することが可能になってきたことなどの複数の時代的な要因が重なり，論理回路設計手法においてパラダイム転換と呼んでよいほどの急速な技術革新がおきていた。
そこで，新しいカリキュラムでは，この論理回路設計手法における技術革新を積極的に教育に取り入れることを提案した。最先端の技術革新を意欲的に教育に取り込んでいかないと，時代遅れの陳腐化した教育を行う学校に零落し，卒業生の就職等に大きな影響が出てきてしまうと考えたからである。

３．授業形態の検討
1997 年頃に，東京大学理学部情報科学科では「CPU 実験」という授業を行っていることを知った。
「CPU 実験」では，学生は数人のチームに分かれて，FPGA を用いてチームごとに独自のCPU を設計・製作し，その CPU 上で動作するコンパイラも開発して，チーム同士で CPU の性能を競い合うという授業形態を取っていた。これは講義を中心とした従来までの標準的な授業形態とは大きく異なり，とても魅力的な授業であると感じた。機会があれば，いつか，筆者もこのような魅力的な授業を実施してみたいと考えていた。
航空高専で，カリキュラムを改訂する作業をしたときに，国内外の様々な教育機関で，どのように論理回路設計の教育を行っているかを調べたが，やはり東京大学の「CPU 実験」は魅力的であった。
できれば，そっくり真似をしたいと思ったが，授業時間数や学年，及び学生の能力の違いなどから，そっくり真似をするのは無理であった。しかし，学生がチームを組んで，自分たちで作りたい回路を立案し，それを自分たちで設計・製作するという「CPU 実験」の持つ最も魅力的な部分を，新しいカリキュラムには取り入れてみようと考えた。

294

表１ 新カリキュラム
科目名
授業内容
4 年前期必修科目 AND, OR, NOT などの基本「デジタル回路」 的な論理回路から始まり，カ(1 単位)ウンタなどの順序回路までを学ぶ。
4 年後期必修科目 コンピュータの内部構成を「計算機工学」
学び，ハードウェア記述言語(1 単位)(Verilog HDL) の文法を学ぶ。ちなみに，文法の学習では筆者が独自に作成したテキストを用いる。
5 年前期必修科目 ハードウェア記述言語を用「計算機工学」
いて CPU を設計する手法に(1 単位)ついて学ぶ。
5 年後期選択科目 学生たちがチームに分かれ「ハードウェア構 て，自分たちで好きな回路を成法」(1 単位)立案して，設計・製作する。

４．新しいカリキュラムについて
新しいカリキュラムは，表１のように決まった。
５年前期までの必修科目に続いて，５年後期に選択科目として，新しく「ハードウェア構成法」という科目が開講され，学生たちがチームに分かれて，自分たちで好きな回路を立案して，設計・製作する授業が行われることとなった。

５．この教育実践の特徴
この「ハードウェア構成法」の授業では，東京大学の「CPU 実験」とは異なる特徴を持たせることにした。現在のコンピュータは，フォン・ノイマンが提案したプログラム内蔵方式が採用されているが，学生たちは，低学年からプログラミングについて学んでいるためか，コンピュータとはプログラムを書かなければ動作しないものであると誤解しがちであることに気づいた。そこで，新しい時代を切り拓く柔軟な考えを持ったハードウ
ェア設計技術者を育成するためには，フォン・ノイマンのプログラム内蔵方式の呪縛から解き放って，複雑な動作をするコンピュータを「ハードウェアだけで」作らせてみようと考えた。

６．教育実践で利用する実習装置

論文集「高専教育」 第 34 号

FPGA 実習ボードとしては，CQ 出版社製のSpartan-ⅡE300 評価キット(図１)を利用している。Xilinx 社の 30 万システム・ゲートの FPGA「XC2S300E」が搭載されており，データ入力用として 4 個のプッシュスイッチが，状態表示用として 4 個の 7 セグメント LED と 8 個の単体 LEDが実装されている。
論理合成・配置配線ツールは，
Xilinx 社製の「ISE WebPACK」を利用している。
このツールは Windows パソコンで動作し無償である。これらの FPGA 評価キットとノートパソコンの組み合わせが 5 セット用意されている。設計に用いるハードウェア記述言語は，Verilog HDLである。

７．授業スケジュール「ハードウェア構成法」は，週１回２時間の授業が 15 週で行われる。電子工学科は 2 クラスあり，学年の定員は 80 名であるが，この科目は選択科目なので履修する学生の人数は年度によって変わる。
教員は毎年，筆者が一人で担当している。
授業は，表２のようなスケジュールで行われる。
第 1 週では，この授業の概要を説明し，その後，6名程度のチームに分かれてもらう。
第2週では，大規模な論理回路設計を行うにあたり注意すべき点を説明し，その後，各チームに分かれて，どのような回路を作成するかを相談してもらう。このときに，動きのある面白い回路を作ること，回路が易しくなりすぎたり難しくなりすぎたりしないようにすること，また，完成したときに達成感を感じられるような回路にすることなど，学生に色々とアドバイスを与えている。第 3 週では，各チームでの回路仕様を決定してもらい，それらを，全員の前で発表をしてもらう。このことで，他のチームがどのような課題に取り組もうとしているかを，全員が把握することができる。
第 4 週では，
FPGA 実習ボードを利用した論理回路設計手法

2011.3

表２ 「ハードウェア構成法」の授業スケジュール
週
内容
第１週
授業の概要説明，班分け
第２週
設計方法の説明，各班で仕様の相談
第３週各班の仕様決定，仕様発表会
第４週
実習ボードを利用した論理回路設計手法の講義
第５～
詳細な仕様決定，各自の分担を決定
６週
中間試験 仕様書の提出，設計手法の確認
第７～
各自がプログラム作成，各プログラム
１０週 の FPGA 実習ボードへの焼き込み
第１１～ 班全体でのプログラム統合，全体のバ
１４週 グ取り，成果発表会準備
第１５週 成果発表会についての講義を行う。プッシュスイッチを押して単体 LED の点灯を左右に移動させるなどの極めて簡単な動作をさせるサンプルプログラム(124 行) を示して，具体的なプログラミング手法を解説する。第 5～6 週では，各チームで詳細な仕様を決定してもらう。ホワイトボードを利用して，学生同士で活発に議論を重ねて (図２参照)，状態遷移図や状態遷移表を作成してもらい，レジスタ (D フリップフロップ)として保存すべき変数は何かを決めてもらう。また，誰がどの部分を分担するのかも決めてもらう。全ての学生が，必ずどこかの回路のプログラムを書くように指導している。中間試験では，チーム全体としてどのような回路を作成しようとしているかという仕様と，それに対する各個人の分担部分について答えてもらうようにしている。また，それまでの進捗状況も報告してもらうことにしている。第 7～10 週では，各自が自分の分担することになった回路のプログラムを，ハードウェア記述言語で書いてもらう。プログラムの作成は全学共用のプログラミン
グ演習室を利用している(図３参照)。さらに，設計したプログラムを FPGA 実習ボードに焼き込み，正常に動作するかを確かめてもらう (図４参照)。プログラムの作成途中で発生する様々なエラーについては，すばやく解決の糸口を見つけられるように，適切なアドバイスを与えるように心がけている。第 11～14 週では，各自が作ったプログラムを，一つに統合する作業が行われる。この作業ではトラブルが頻発するが，トラブルを解決

図１ 実習で用いた Spartan-ⅡE300 評価キット295

図２ 詳細な仕様を検討している学生たち

図５ 成果発表会で設計・製作した回路の技術仕様を説明している学生
用いて全員の前で発表してもらう(図５参照)。発
表会場には，FPGA 実習ボードとノートパソコンも持ち込まれ，その場で実際に動作確認が行われる。

８．設計・製作された回路について

図３ ハードウェア記述言語を用いて回路設計のプログラムを書いている学生たち

図４ FPGA 実習ボードに設計したプログラムを焼き込み，デバッグをしている学生たち

この 7 年間で，学生が作ってきた回路のタイトルを表３に示す。これらの回路がどのようなものであるかの説明は省略するが，回路の規模を類推するための参考として，表３にはソースコード(Verilog HDL) の行数も記した。7 年間で 38 のチームが実習を行ってきたが，そのうち 3 つのチームは仕様書通りに回路を完成させることができなかった。しかし，完成させることができた回路はそれぞれ極めてレベルの高いもので，高専生がハードウェア記述言語を用いて，これほどの回路を設計できるのかと驚くようなものばかりである。
完成した回路の動作を見てもらえば，この授業が極めて高い教育的効果を上げたことを確信していただけると思う。

９．実施当初からの改善点するために，チームのメンバー全員が集結して原因追及のための議論が行われ，無我夢中になって動作確認が行われる。自分たちが立案し，設計した回路であるため，何が何でも完成させたいと，学生たちは放課後も残ったり，冬休みにも登校してきたりして，プログラムの完成を目指して努力を重ねる。
第 15 週目には成果報告会が行われる。
どのような回路を立案し，完成に向けて，どのように工夫したかといった点を，パワーポイントを296

2007 年度に，仕様の相談時にチームの秩序を乱し続け，挙げ句の果てに，授業期間も半ばを過ぎた頃に，「自分は卒業単位は足りているからこの授業の履修はとりやめる」という学生が現れた。他の学生たちもうんざりして履修をやめてしまい，結局，このチームの学生は二人だけになってしまった。残された二人の学生は一所懸命に頑張って回路を完成させたが，プロジェクト型の授業の難しさを痛感させられた。
講義形式の授業であれば，

論文集「高専教育」 第 34 号

ある学生が怠けたとしても他の学生にはあまり影
響はないが，プロジェクト型授業では，真面目に表３ 学生が設計・製作した回路のタイトル，完成したプログラムのソースコード(Verilog HDL)の行数，及びチームの人数
年度 タイトル
行数 人数
2003

2004

2005

2006

2007

2008

2009

HAnAI GAME
THE もぐら叩き
スロットゲーム！
YASU を回し
ばってぃんぐゲーム
HIT & DRAW
真・ワニワニパニック
魚雷
Mania beat 東京
H-7A
だるまさんが転んだ
スネークハント
釣りゲーム
ブラックジャック
チンペイ奪取２桁加減算電卓
レースゲームボクシングゲーム
記憶力ゲームたつおバスター2006
GT5
LED ON
ザ・スロットマシン
だるま落としFLASH 暗算
電卓
フラッシュザウルス
TAKUMI
逆間違い探しSlot The NAMERAKA
DEATH RACE
Number Frontier X
電卓
すうれつの森
すうじ脳トレ
木村の拳
ラトソヌ
マトリックス

311285275421
472
473360523628498279252
850
481
786
442554
未完
未完
559
917
418
971
未完
908
818482
697
1119
768
656
1767809
1468
1456
534
539
383

66666678878877677557777775255567466666

2011.3

取り組んでいる学生に皺寄せがくることがわかった。
この問題を解決する方法として，班分けに着目した。それまで，班分けは好きな者同士が集まるという学生の自主性を尊重するやり方をとってきた。しかし，好きな学生同士でチームを組ませると，優秀な学生のチームと，やる気のない学生のチームに分かれてしまい，チーム間の実力差が顕著になってしまう。また，好きな者同士ということで，チーム内で他のメンバーに依存するような甘えた関係ができやすいということにも気づいた。
2008 年 10 月 2 日に産業技術高専で，横山征次氏の「社会人基礎力の育成と学校教育」に関する講演会が行われ，その際に，この問題について質問をしたところ，「社会で働くようになれば，好きな者同士だけで仕事を行うということはありえない。
だから，班分けは教員が強制的に決めて良い。
」というお答えをいただいた。なるほどと納得し，さっそく 2008 年度からは 5 年前期必修科目「計算機工学」の成績をもとに，機械的に学生の班分けを行うことにした。その後も，履修をやめる学生はでたが，授業は以前よりも順調に進めることができるようになった。

１０．学生の成績評価について
航空高専の成績は，優，良，可，不可という形式で評価される。まず，仕様通りに回路を完成させられないとチームの全員を不可にすることにしいる。
実習風景をよく観察し，毎週の実習に真剣に取り組んでいるかどうかで，優，良，可の評価を付けている。この評価は，多分に教員の主観によるものであるが，低学年の時から授業で教えてきている学生たちであり，学生の顔と名前が一致しているから可能なのではないかと思う。
最後の成果発表会では，各学生に自分はチームの中でどの程度の貢献をしたのかを口頭で自己評価してもらうことにしている。他の学生もいるた
めか，学生の自己評価は，教員による評価とほとんど一致する。
教員の評価と一致しない場合には，教員側に何か見落としがあったのかもしれないと考えて，学生の主張を聞いて評価を再検討し，最終的な評価を確定することにしている。

１１．学生による授業評価297

航空高専では 2009 年度の学年末に全学をあげて全ての教科について，学生による授業評価アンケートが実施された。このアンケートの設問を表４に示す。この設問は全学の全ての教科に対して共通である。図６に「ハードウェア構成法」の授業のアンケート結果を示す。このグラフからわかるように，「ハードウェア構成法」の授業に関する学生の評価は高いことがわかる。⑥の「総合的にこの授業に満足できた」という質問に対しては，56％の学生が「あてはまる」と答え，33％の学生が「ややあてはまる」と答えており，合わせて 89％の学生が授業に満足したことが読み取れる。これだけ多くの学生がこの授業に満足してくれていることからも，この授業が高い教育的効果を上げたと言えるであろう。

表４ 学生による授業評価アンケートの設問①授業の予習復習をするように努めた。
②授業中，質問をしやすい雰囲気があった。
③講義の仕方が明瞭であった。
④板書や掲示資料は見やすかった。
⑤授業内容や評価方法はシラバス通りに適切であった。
⑥総合的にこの授業には満足できた。
⑦教科書・プリントは役に立つ教材であった。
⑧レポートの課題など他人の助けを借りずにできた。
⑨教員は学生の方に視線を向けて話していた。
⑩この授業によってその教科に興味や必要性を感じることができた。

１２．教育的効果について「ハードウェア構成法」の授業を実施する前までは，授業は教室での講義が中心であった。もちろん実験の時間はあったが，マイクロプロセッサ(Z80)のアセンブラプログラミングの実習に重点が置かれ，論理回路の設計としては，フリップフ
ロップを組み合わせて，カウンタを組み立てる実
験までしか行っていなかった。講義で論理回路の設計手法を教えても，実験を行っていないので，学生たちは，自分が論理回路を設計できるようになったという自信を持つことは難しいようであった。
「ハードウェア構成法」の授業では，自分たちで作りたい回路を立案することから始まるため，最終的な回路を実現するためには何が必要とされるのかという課題を，学生たちは主体的に発見し，深く思考する力が必要とされる。実際の設計においては，自分たちの手を使ってプログラムを作成し，プログラミングの過程で発生するエラーなども自分たちで解決していかなければならない。学生たちは主体的に考え行動することで，従来の講義形式の授業の時とは比べものにならない，非常に複雑な回路を自分たちの力だけで設計・製作出来る実力を身につけた。このことからプロジェク
ト型の授業は極めて高い教育的効果を上げることがわかった。
企業からの求人も，ハードウェア記述言語を使えることが条件として示される時代に変わった。
ハードウェア記述言語を用いた設計手法を時代に先駆けて授業に取り入れたことで，社会のニーズ

298

図６ 学生による授業評価アンケートの集計結果にも応えることができた。
この教育実践には７年の実績があり，この授業を履修した卒業生の中には，企業でハードウェア記述言語を用いて論理回路設計の仕事に従事している者もいる。これらの卒業生が，この授業が役に立ったと言ってくれていることからも，この授業が高い教育的効果を上げたと結論づけてよいであろう。

１３．まとめ
学生が数名でチームを作り，学生自らが自分たちで作りたいディジタル回路を立案し，それをハードウェア記述言語を用いて設計・製作するというプロジェクト型の授業は，教室で単に講義を受けるだけの授業とは比べものにならない極めて高い教育的効果を上げることがわかった。