ハー hウェア・シミュレーション・システム
HSL/1(1)
ハードウェアシステムの記述について
(昭和55年9月18日 原稿受付)
情報工学教室玉木明和
日本電気清原伸一
情報工学教室(大学院)水町 肇
松下電気福田博幸
情報工学教室 加 藤 清 史
Hardware Simulation System HSL/1(1)
Declaration of Hardware System
by Akikazu TAMAKI Shin−ichi KIYOHARA Hajime MIZUMACHI Hiroyuki FUKUDA Kiyoshi KATO
Ab8traet
Wh・n w・.d巴i即・・d p・・d・・t th・digit・1・y・t・m・, we u・ually・・tice th・1・gi・al err・f・i・th・・e・y,t。m,
after completlon of them. Therefore, we can remove the logical errors in use of su伍cient simulation of th・h・・dw・・e・y・t・m・wh・n w・d・・i即th・m,・nd th・n w・m・y b・gi・t・m・k・th・m. The c。mp。t。, m。kers hav・th・d・v・1・PPi・g・y・t・m f・・digit・1・y・t・m・B・t th・・y・t・m i…t・uit・b1・f・・th・・m・ll 1。b。,at,y.
The auth・・O m・kr th・d・v・1・PPi・g・y・t・m f・・digit・1・y・t・m・uit・bl・f・・th・・m・111・b・・at・y,・all・d Ha「dw竺・e Slm・1・t1・輌・guag・1(HSL/1)・This sy・t・m・・n・i・t・・f th・・y・t・m desc・ipti・n p・・t and th。
slm・1・t1・n p・坑・Thls p・per rep・・t・・n th・d・記・ipti・ity・f h・・dw・・e・y・t・m with th・・y,t,m d。、c,ipti。。
part of HSL/1. Refer the reference 10 about actual simulation.
1. はじめに をなくしてから製作にとりかかれば良い。実際,最も複
雑なディジタルシステムであるコンピューターを製作す
ディジタル システムを設計製作するにあたり,論理 るメーカーなどは,ディジタル・システム開発システム
設計時のミスの発見は非常に難しく・実際に製作した後 を備えている。しかし,そのシステムは,メーカーと立
に見つかることがほとんどである。この対策としては, 場が異なる研究室レベルでのディジタル・システム開発
論理設計時にシミュレーションを十分に行い,論理ミス 用としては不向きである。著者らは,研究室レベルでの
ディジタル.システム開発用システムHardware S㎞u・ される場合が多い。この様なことをなくすためには・論 lation Language I(HSL/1)を開発した。 HSL/1はシス 理設計段階で十分なチェヅクを必要とする。したがって,
テム記述部とシミュレーション部に分かれており,本報 実際にハードウェアを製作しなくても,論理設計段階で 告では,HSL/1のシステム記述部における,ハードウエ そのディジタル・システムが矛盾なく・設計通りに動作 アシステムの記述性について述べる。実際のシミュレー するかどうかを調べるものが必要となる。すなわち,研 ションについては文献10を参照のこと。 究室でのディジタル・システムの製作に都合の良い,シ ミュレーション・システムが必要となる。このシステム
2・ディジタルシステムの醗法 腰求されることは渓際の一一ドウエアの雛手1頂と
コンピュータ・メーカーなどがディジタルコンピュー 類似していること,ディジタル・システムの記述が容易 タを開発する場合,つぎに示す段階ごとに開発研究が行 であること,IC単位や基板単位でのモジュール化が可能
われる。 なこと,ゲートやブリ・プ・フ・・プなどのデ・レーが
1.素子の設計 扱えること,などが挙げられる。
トランジスタや,ダイナードの設計で,雑音に強い
3.HSL乃の概略 こと,低電力,高速性が要求される。
2.電子回路の設計 前述した要求を満たすハードウエアシミュレーション 段階1で開発したトランジスタやダイオードを使用 システムを作成したが,ハードウエア・システムの記述 して,プリヅプ・フロップや論理ゲートの開発を行う。 には,KARL1)をもとに改良を加え使い易いものとした。
3.論理設計 HSL/1はつぎに示すようにふたつに分類できる。
4.を 蜻ヒ一:]↑∵HSL/1{:∵:::1;∵
コンピュータの機械語や,コンピュータの内部構造
などの計算機方式(アーキテクチャー)の設計および システム部はハードウエア・システムの記述を行い,各 開発を行う。 論理素子の属性を示すディクレレーション部と各論理素子 5.言語設計 間の結合を示すステートメント部から構成される。きめ コンピュータを使用するための,高級言語や低級言 細かいハードウエアの記述ができるように,各論理素子 語の設計および開発を行う。 の伝播遅れの値や,クロヅク・パルスとしてその周期や また,コンピュータなどの複雑なシステムでは設計ミ パルス幅を記述できる。さらにフリップ フロップの性 スなどがあってはならないので,各段階ごとのチェック 質の違いを,at文, on文, if文などを使って区別するこ が必要である。これらのチェックを人間だけで行うのは とができる。
困難なので,コンピュータによるシミュレーションや コントロール部はシミュレーションに必要なパラメー CADなどの技術が使われている。さらに,コンピュータ タなどを記述する。シミュレーションの時間・どの時刻
に故障が起きた時に使用される故障診断プログラムの材 にデータを入力するか,あるいは,どの時刻にどの論理 料となる基礎データなども作成される。 素子の値をトレースのために出力するか,などを指定す 一方,研究室などでディジタルシステムを製作する場 る。また,各論理素子のディレーの値をコントロール部
合を考えてみると,上述した,段階1の素子の設計や段 で指定できるため,システム部で記述したディレーの値 階2の電子回路の設計などは行わずに,市販のICを利 を変更できる。したがって,同一のソース・プログラム 用した論理設計を行うのが普通である。ディジタルシス (システム部で記述したもの)で,ディレーの値を変化 テムの研究室での製作手順は,論理設計,ハンダ付など させて,数多くのシミュレーションが行える。
による製作,そして性能試験を行うのが一般的である。 ハードウエア・シミュレーションの方法は大きく分け
この手順によってディジタル・システムを製作する場合 て,コンパイル方式,テーブル・ドリブン方式,インター
も設計ミスなどを生じ,そのミスが性能試験段階で発見 注1文献1参照
プリタ方式があるが,本システムは,仮想マシンによる を示すtinu文で終わる。 unit文とtinu文の間はディク コンパイル・インタープリタ方式を用いた。図1にシス レレーション部とステートメント部からなり,前者は テムの概略を示す。システム部で記述されたソース・プ ハードウエアシステムで使用される論理素子の属性を記 ログラムをコンパイラによって,相対形式のプログラム 述し,後者はそれらの結合を記述する。これらは明確な に翻訳する。この相対形式のプログラムをエディターに . 区別があるのではなく,ディクレレーション部でその論 よって実行形式のプログラムに変換する。この実行形式 理素子の結合を記述することもできる。以下,ディクレ のプログラムをシミュレータがコントロール部のコマン レーション部とステートメント部について主要なものを
ドに従ってシミュレーションを行う。システム部では, 例を掲げて簡単に説明する。
ハー hウエアをICごと,あるいは基板などのモジュー 4.1ディクレレーション部 ルごとに記述でき,これをユニット(ソフトウエアのサ a. レジスタ宣言
ブルーチンに相当する。)と呼ぶ。よく使用するユニヅト 使用するレジスタを宣言する。多次元構造をもつも を前もって作り,サブルーチン・ライブラリーとしての のも記述可能である。(本システムでは5次元まで)
コ・ニット・パッケージを構成することができる。ユー 例 register、4CCσ(7:0).
ザーがconnect文を使用することにより,エディターは ・4㏄σという名前で8ビット(、4CCσ(7)から ユニット゜パッケージから必要なユニットを取出し結合 ・4CCσ(0)まで)のレジスタを宣言している。
する。以上のことによって階層的な記述が可能となる。
また,相対形式プログラム,実行形式プログラムは,
アイデンティファイヤー・テーブル, プログラム・エリ ア,データ・エリア,クロヅク・テープルから構成され ている。
角αカ{7:0)
ロヨじノエ
賠?囲PA貯 @ 図一一2 レジスタ宜言 c囎逗R b.サブ・レジスタ宣言
の みずロ
熊。・ すでに宣言したレジスタの一部を異なる名前で使用 ぷ畿、 蹴鯨 したい場合に,その一部をサブ・レジスタとして宣言す 駆脚丁㏄ ることが可能である。
PR◎G 例 reg輌ster A CCσ(7:0).
3鋤跳丁諏 HsL!x subregister∠4LO(7:4)=ACCσ(7:4).
ごむのむじ み
8エ㈹瑚、。. レジスタ・4㏄σの一部である∠4CCσ(7)〜、4CCσ(4)
眠σ埠 に,!1LOという名前を付け,新しく4ビット(ノ1LO(7)
〜ALO(4))のレジスタとして使用することを意味する。
のごハでゆ ド の ヤ
闇・璽:遅1コ竺一〔匡]i
て霊・1漂ξPご・蕊・〔OATAA鯨一〕1 ・
L _ _ _ _. _ _ ._ _ _ _ , 」
図一1 ハードウェア・シミュレーション・システ .
ムの概略 禽㎝口・的 、m(7.い
4. システム部 図一3 サブレジスタ宣言
システム部は始まりを示すunit文から始まり,終わり c.ヵスヶ一ド・レジスタ宣言
すでに,宣言してある複数のレジスタをまとめて, f.カスケード・ターミナル宣言
新しいレジスタとして使用したい場合に宣言する。サ ヵスヶ一ド・レジスタ宣言と同様である。
ブ.レジスタ宣言の逆となる。 例 terminaL4(3:0),β(3:0)・
例,egi,t,, A(3・0), B(3・0). ca・t・・minal C(7・0)−A(3・0)ほ(3・0)・
casregister C(7:0)=A(3:0):B(3:0)・ 9.コンスタント宣言
4、ビットのレジスタ.4とレジスタBを接続して新し ハードウエアで使用する論理1(Highレベル)論理 くCという名前をつけ8ビットのレジスタとして使用 0(Lowレベル)を宣言する。すなわち・固定したある することを意味する。 値をもつ(コンスタント)ターミナルであることを意味 する。
例canstant㎜T(3:0)ニ1001B.
c《7:0) ひπ7 という名前をもつターミナルが,論理1001の値 をもつコンスタント・ターミナルであることを意味す 0 7 る。
1NIT(0、 1↑」IT 1) INIT(2) 1「IIT(3)
A《380) 8(3tO)
図一4 カスケード・レジスタ宜言
d.ターミナル宣言
ゲートなどの組合せ回路の出力をターミナルと呼
び,それらの宣言をする。 図一6 コンスタント宣言
伊‖ register /1(7:0).
temlinal B(7:0). h.マルチ・プレクサ宣言
temlinal C(7:0)=・∠4(7:0)andβ(7:0), コントロール信号によって・複数の入力論子からひ レジスタ、4とタ_ミナルβが宣言してあり,さらに, とつを選び,出力するマルチ・プレクサであることを宣
これらのビットごとの論理積(アンド)を行ったものを 言する。
Cという名前を付けて,ターミナルとして使用すること 例 terminal S(3:0;15:0), M(1:0)・
を意味する。 mux D(15:0)=case SA(1:0)of 5(3:0;15:0)
4個の入力端子S(0;),5(1;),S(2;), S(3;)があ C(7;0) り,コントロール信号Mによって,それらの中から選 択してひとつを端子Dに出力する。
SA
00
A(7 :0) B{7 20) 01
10
図一5 ターミナル宣言 11 D S(0:)
S(1:)
S(2:)
S(3:)
e.サブ・ターミナル宣言
サブ・レジスタ宣言と同様である。
例terminal∠4(7:0).
subterminal/1L(7:4)=A(7:4).
理1でなけれぽならない。タグビットがある場合,同 D 1弓言o) 時にふたつ以上の端子が論理1になった時はタグビッ トが論理1にセットされる。
D《0)D(1)D{,)P{3,D{角)P(5)1阿6ハD(7)
n{o;) :: :) s《2}) .1 〕;) 薗ooα拍
図一7 マルチプレクサ宜言
i.デマルチ・プレクサ宣言
図一9 デコーダ宜言 コントロール信号によってひとつの入力を複数の出
力端子のひとつに出力するデマルチ・プレクサを宣言 例 terminal Q(7:0).
する。 encoder E(2:0, tag∧IE):=Q(7:0ト
例 termina15(15:0), D4(3:0). ターミナルQの論理1の場所によってEの値がセッ demux case D4(1:0)of D(1:0;15:0)esac= トされる。 Qが,複数個の論理1をもてば,タグビッ S(15:0). ト∧確が,論理1にセットされる。
4個の出力端子D(0;),D(1;),1)(2;), D(3;)があり,
慮 コントロール信号D4によって,それらの中から選択
匡《2:0》
して,ひとつに入力Sを出力する。
DA
{
q《2:0)
00 01 10 11
S ●㎝口 D(0:,)
D(1:)
D(2:)
D(3:) q(7‡°⊃
図一10 エンコーダ宜言
酬,。漁、_臼 ‥。。ク宣言
クロヅクを宣言する。クロックの周期を明示する場
倒1:0) @ 合としない場合がある。多相クロックも記述できる。
例 clock Tニ20 by ns
周期30n秒,パルス幅10n秒のクロックτを意味す る。
図一8 デマルチプレクサ宜言 櫛 1.デコーダ宣言
デコーダを宣言する。 U
10 卸 30 杷 50 60 70
例register Q(2:0) d
d㏄oder D(7:0):=Q(2:0).. 図一11 クロック宣言
レジスタQの値によって出力Dの対応する1ビット m.アウト・バス宣言
が論理1となる。 単方向性の出力バスを宣言する。接続形態としては k・エンコーダ宣言 トライステート,アンド,オアの三種類がある。
エンコーダを宣言する。入力端子はひとつだけが論 例 register・4,8.
temlinaLA T,βT, C. 値が書込まれ, MOで示された番地から読出される。
outbus trist 1), p.スイッチ宣言
if C then、4τ:ニ∠4. 外部からのデータの入力ポートを宣言する。
else/1 T:=@)且oa.丘. ・ {列 switch 1{EX(3:0).
if not C thenβT:=β. 亙Eκは4ビットの外部入力端子を意味し,シミュ else Bτ:=⑧且oa.仕 レーションの実行時に値をセットすることができる。
1):=∠4τ.
D、=βr 一
アウトパスDが,トライステート接続であることを意 ◆9澱も.
㌫1蒜二㌶蒜1二∵:ニ …協 鷲鷲蕊
をそれぞれ・47 ,βTとして,そのコントロール信号と
してCを用いる.③6。aはフ。一テ,〃状態を示 図一14スイッチ
す。
q.ライト宣言
t・tD 外部へのデータの出力ポートを宣言する。
例1ight HEκ(3:0).
班江の値によって点滅する4個のライトを意味す
e・mt酌1 c る。
禽 D_守 8 D」牟 ) 闊α{2》 耀江(3)
図一12 アウトバス宣言 剖
n.パイ・パス宣言
双方向性のパスを宣言する。接続形態はトライス 国)
テートである。
o.メモリー宣言
レジスタ・アレイである記憶素子をメモリーとして 図一15ライト宜言 宣言する。
例memory〃(〃0(3:0),15:0)=〃(15:0;15:0) r.コネクト宣言
=1〜(M(3:0),15:0). ユニヅトの呼出しを宣言し,呼出し側とユニヅトの 15ビット×15ビットのレジスタ・アレイの記憶素子 素子の対応を示す。
として〃を宣言している。Mに示された番地にRの 例 unit・4(main).
connectβ(X 1, X2 ;X3).
◎,。) c・nnect C(y1;γ2;y3)・
tinu.
unit 13(β1,β2; β3).
甑《3gω
tinu.
図一13 メモリ宜言 unit C(C1;C2;C3).
i b.at文
tinu. レジスタのデータを取込むタイミングがクロック・
メインニュットの中にニュヅトβとCがあることを パルスのエッジであることを示す。
示し,X1, X2, X3と別,β2,β3カミ対応し,γ1, 例register・4.
y2, y3とC1, C 2, C3が対応していることを示す。 terminalβ.
clock C.
at Cdo /1:=β.ta.
UNIT A タ_ミナルβの値が,クロックCの立上がりでレジス
タ・4に取込まれることを意味する。
図一16 コネクト宜言
A
C DQ B
図一18 エッジトリガD−FF 動 作 表
クロック D Q
↑
H H
↑
L L
↓