• 検索結果がありません。

計算機設計言語LORANとその翻訳システムの開発 利用統計を見る

N/A
N/A
Protected

Academic year: 2021

シェア "計算機設計言語LORANとその翻訳システムの開発 利用統計を見る"

Copied!
6
0
0

読み込み中.... (全文を見る)

全文

(1)

計算機設計言語LORANとその翻訳システムの開発

水原登

伊藤誠

(昭和48年8月31日受理)

Development of a Computer Aided Design System

of Logical System

NoboruMIZUHARA MakotoITO

       Synopsis  Recently, the languages for a CAD(Computer Aided Design)of a computer are being developed. An automatic computer design system can decrease cost, design time and mistakes in designing. Moreover, CAD system may optimize a system design, and enable to develop a large scale system.  In this paper, we propose a design language named LORAN and its translation system This system consists of five blocks,1)compiler,2)control logic generater,3)10gic expression processer,4)module information converter,5)imprementation. We used FACOM 270/30 system in YAMANASHI UNIV. and programed this system mainly in FORTRAN.

1.はじめに

 近年論理システムの設計,製作のCAD(Computer Aided Design)化の研究が進むにつれ,システムの設 計言語が種々提案され,すでに一部は部分的に実用に 供されている。ここでは論理システムを記述する言語 (LORAN)を提案し,その言語の概要と,コンパイ ルから実装段階までの翻訳アルゴリズムを招介する。

 このLORAN言語は基本的にはFORTRAN型であ

るが,さらに並列処理,論理処理が可能となるように 拡張してあり,それによりあらゆる論理処理システム

の記述が可能となる。使用計算機は本学のFACOM

270/30システムで,コアメモリーの容量の関係上大規 模なシステム記述を行なっていないので,ここでは乗 算器を例にあげて報告をする。  実際にはシュミレーションプログラム,故障診断プ ログラム等も具備して完全なCADシステムとなるの であるが,現実には少人数でそれらの実現は不可能で あるので,ここでは記述言語とその変換プログラムの 域に留める。 2. システムの概要  システム全体は図一2−1に示すように5つに分かれて おり,それぞれの概要を以下に示す。  1) コソパイラ部

 論理装置記述言語LORANで記述されたプログラ

ムを解読・整理して,以下の2),3),4)各部への入力 データを生成する。  2) 制御論理生成部  コソパイラから与えられる制御表を論理式に変換す る。  3) 論理式の処理部

 本システムではゲートは3入力以下のNANDを用

いるので,ここで1),2)より得られた論理式を変形 し,NANDゲート, FF(フリップ・フロップ)を割 当てる。なおここでゲートの段数の最少化も行なう。  4) モジュール実装情報生成部  NAND, FF,カウンタその他さまざまのICの名 前,機能,ピン接続,ピン数等をファイルに登録して おき,実装を行なう際のデータとする。

(2)

実装情報 データ モジュール 実装情報作成 実装 情装

LORAN

による記述 制御論理 生成部      図一2−1システム全体のブロック図  5)実装部  このシステムの最終段階で,3)で得られたゲート, FF,その他カードから読み込まれるIC等,目的とす る装置に必要な素子すべてにICの番号,ピン番号等 を割付け結線表を得る。  本報告では3)までを詳しく述べ,4),5)は別稿で報 告する。  現在適用できるのはコア等の関係からパッケージ1 枚,ICにして約30個程度の論理装置の処理が限度で ある。  2) 簡便な記述が可能であること。  これは,たとえぽ同じ動作を繰り返して記述すると いったような冗長な記述を簡便な記述で可能にするこ とが目的である。  3)基本論理素子の変化に対応できること。  システムにより基本となる論理素子の種類,複雑さ が変化するが,それらの変化に対応できなけれぽなら ない。  4) コソパイラの作成が容易となること。  これは2)の条件と相反することが多い。  5)非同期,並列処理の記述が可能であること。  6) man・machine communicationが容易であるこ と。  7) バスラィンに関する記述が可能であること。  各レジスタ問のバスライソを共有するためには特殊 な記述が必要となる。  現在のシステムは,1)∼4)に留意して開発されてい るが,5)∼7)の点については,今後の問題点として残 されている。  3.2乗算のアルゴリズムと乗算器の設計  本報告では装置の設計例として乗算器を用いるの で,ここで用いる2進法の乗算のアルゴリズムを説明 する。2進法においても10進法と同様被乗数に乗数 の各桁を掛けて結果を加えてゆくが,2進法において はとるべき値が0か1のみであるので実際には乗数の 値が1の桁の場合のみ被乗数を加え結果をシフトし, 0の桁の場合はシフトのみを行なう。以上を乗数のビ ット数だけ繰り返す。以上のアルゴリズムを用いて8 ビット2進乗算器を設計する。図一3−2にその構成図を 示す。図一3−2において加算器は8ビット加算器,各レ ジスタは8ピットのシフトレジスタ(右シフト機能を もった記憶装置)で,A(Bレジスタに結果が, Mレジ スタに乗数が貯えられる。乗算を行なうにあたり,ま ず乗数,被乗数を2進数表現でそれぞれスイッチD, Rにセットする。乗算の手続きはつぎのようになる。 3. 論理装置記述言語LORAN  ここでは最初論理装置記述言語の持つべき性質を列 挙し,つぎにLORANの概要を述べる。  3.1 論理装置記述言語が持つべき性質  1) 順序処理装置(以後モジュールと呼ぶ)間の情 報交換が容易に記述できること。  これはシステムが大きくなる程多数のモジュールが 必要となり,それらのモジュールは互いに情報を交換 し,共同して1個のシステムを作り上げるからであ る。

 1101 (13)

〉〈1 0 0 1  (9)

    1101

  000.0

 0000

1101

1 1 1 1 0 1 0 1   (1ヱ7) 図一3−1 乗算例(13x9=117)

(3)

SIIIFユAB A】)1) J.()ADM

SHIFTM

   BEGIN CNT

 S1;[RESETコ  S2;[COUNT] /  [IF(M1)ADD]  S3;[SHIFTAB, SHIFTM] /   IF(CE)GO TO S2

 S4;END CNT

   (例3−1)乗算のフローの記述

COUNT

RESET

カウンタ C工・

sTART

M1

CE

制 御 川 路 図一3−2 ビット乗算器の構成図 CI三1 RES]・二T ADl)

COUNT

LOADM

S. IIIFTAB SIIIFTM

RESET

LOAD

COUNT

Ml

   SIIIFTAB

ADD

   SIIIFTM 図一3−3 乗算の手続き

END

 1) カウンタを0にする(以後RESETと略記,以 下同じ)。  レジスタMに乗数Dを記憶(LOADM)。  2) カウンタに1を加える(COUNT)。

 Mの最小桁M1が1ならぽAレジスタに被乗数Rを

加える。  3)M,(A,B)を1ビット右ヘシフトする (SHI FTM, SHIFTAB)。

 カウソタの値が8(4ビット目が1なら4)に進

み,そうでなけれぽ2)へもどる。  4)終了  この手続きを図示すると図一3−3となる。  3.3 記述言語  ここでは先に述べた条件を考慮した言語の第一歩と

して製作したLORAN言語を招介する。形式的には

FORTRANに類似しているが,並列処理を可能にし

たこと,記述される式が論理式のみであるといった違

いがある。なおLORANとはLOGIC TRANSLATOR

の略である。以下にその記述形式を乗算器を例にとり ながら示す。  (a)フロー(制御の流れ)の記述と制御表  論理処理は,一般的には時間的な順序をおって実行 される。例の場合はつぎのように記述する。 (1) (2) (3) (4) (5) (6) (7)  (2)∼(5)行の[コの中は,前節の記述に合わせたもの で,LORANによる正確な記述は後に行なう。  FORTRAN文法と,図一・3−3を参照すれぽ,この記

述の意味は自明であろう。FORTRANとLORANの

制御文が異なるのは,後者には並列処理の概念が生ず ることである。たとえば,(3),(4)行は,FORTRAN 流に解釈すれば,順序をつけて(異なるタイミング) で実行されるが,乗算器としては同時に実行できる。 (4),(6)行の第1コラムの“/”はこの同時指定を行な うものである(図一3−3は,(3),(4)および(5),(6)を同時 に行なっているのに注意)。この並列実行の概念を進 めて,LORANでは, FORK−JOIN型の並列処理がつ ぎのように記述できる。   S1;’GOTOS2, S3   S2; …・・・…   S3; ………   S6; …・・…・   S7;   S8;’JOIN S6, S7     (例3−2)FORK−JOIN型並列処理の例  この例ではS1からS2, S3へ同時に制御が移り, S6, S7の文が実行された後S8で制御が一本化され ることになる。その模様を図一3−4に示す。さらに, FORTRANの論理IF文に対応して,’IF節が,また, LORAN特有の機能として,’WAIT文がある。  (例3−3)tlF(CE)GO TO S2  括弧の中の論理式(CE)が論理値1なら, GO TO S2を実行,そうでないならつぎの文の実行に移る。  (例3−4)「WAIT(−BUSY) 一re 一

で㌍…一

図一3−4 FORK−JOIN型並列処理

(4)

 これは外部信号の待合わせを行なうのに用いる。 BUSYという信号が論理値0の問待合わせ,1になる とつぎの文の実行に移る。  (b)標準論理処理の記述  乗算器の例には現われないが,装置の端子間に論理 的演算が要求される場合は,その記述が必要となる。

FORTRANの算術代入文に相当するが,ここでは演

算子は十(OR),*(AND),一(NOT)が許される。 制御の流れには直接的な関係は無いが,そこにおける 動作を記述する。文の種類には’SET文と’LET文が ある。  (例3−4)S1;’SET A=B十C*D         ’LET A=B十E(F十G)  ’SET文はその論理式が,特定のタイミング(この 例ではS1)で実行され,右辺1の値がそのタイミソグ に左辺の論理変数に記憶されることを意味する。’LET 文は特定のタイミソグに依存せずに右辺の値を左辺の 論理変数に置き換えることを意味する。上記の例を回 路図に表わすと図一3−5となる。  論理処理の記述は,以上の論理式の他に制御変数の 概念がある。これは後に述べるモジュール文と組合わ さって一つの意味を持つ。  (例3−5)LO;’CNT VARI SHIFTAB, SHIFTM  例で,SHIFTAB, SHIFTMが制御変数である。こ の文は,ラベルLOに制御が移る(ラベルLOの文が 実行可能になる)と,SHIFTAB, SHIFTMの値を1 にし,つぎのタイミングで(つぎの文に制御が移るか ら)SHIFTAB, SHIFTMの値を0にすることを示す。 これだけではA,Bレジスタあるいは, Mレジスタの シフトを行なったことにはならないが,つぎのモジュ ール文と併用すると,「立派」にシフトを行なうこと になる。 C D G

F

 S1

(a)SET文の回路例 CL(同期パルス)      B−一・一 (b)LET文の回路例 図一3−5論理処理文の回路例

A

・A  (c)モジュール文  LORANで組込まれた標準の論理処理の記述は,以 上のものだけである。順序処理と任意の組合せ処理の 記述が可能であるから,これだけでも任意の論理処理 を記述することができる。   しかしながら,最近の集積技術の進歩により,カウ ンタ,デコーダ,シフトレジスタ,さらにはCPUま でも1つのICに組込むことが可能になっている。そ こでこれらのIC(MSI, LSI)を自由に記述(使用) できるようにしたのが,ここで述べるモジュール文で ある。モジュール文は,ソフトウェアの類似から考え れぽ,FORTRANの組込み関数と同じ機能であり, システムに実装情報が登録1)されたモジュール(論理 機能)を,LORANで定義なしに自由に使用すること ができる。  (例3−6)加算器   ’MD AD(A4, A3, A2, A1, R4, R3, R2,    R1, CI/AD4, AD3, AD2, AD1, CO)  これは,4ビットの加算器をモジ=一 Hル表現で記述 したものである。’MDが以下がモジュール表現であ ることを示すキーワードである。括弧の中がFORT RANのサブルーチンと同様に,加算される入出力変 数で,“/”の左が入力,右が出力である。このモジュ ール表現は   (CO, AD4, AD3, AD2, AD1)=(A4, A3, A2,   A1)十(R4, R3, R2, R1)十CI なる演算を示している。ただし,CI, COはそれぞれ 桁上りの入力および出力であり,+は算術加算であ る○  (例3−7)シフトレジスタ   ’MD SR(D1, D2, D3, D4, SHIN, MC, SHIFT,    LOAD/M4, M3, M2, M1)  これは,並列P一ド機能を持った右シフトレジスタ のモジュール表現である。並列ロードするときは,M C−1にし,LOADを1−>0とすると,   (M4, M3, M2, M1)く一(D4, D3, D2, D1) なるロードを行なう。シフトを行なうには,MC ・・O とし,SHIFTを1−>0とすると   (M4, M3, M2, M1)←(M3, M2, M1, SHIN) が行なわれる。  (例3−8)カウンタ   ’MD COUNT16(COUNT, C1, RESET/C4,   C3, C2, C1)

 これはカウソタであり,COUNT入力のnegative

edgeで(C4, C3, C2, C1)の値が1増加する。

(5)

RESETを1にすると,(C4, C3, C2, C1)−0とな る。16進カウンタを行なうとき,2番目の入力は, C1と一致させる必要がある。 その他,NAND, FFモジユールに関しては,文献(1) を参照されたい。  (d)乗算器の記述例

 つぎにLORANによる8ビット乗算器の全体の記

述例を図一3−6に示す。  記述の(1)∼(7)行が乗算の制御の流れを示す。また, (9)∼⑰までが使用するモジュールを示す。この2つ は,共通の変数名によって結合される。たとえば,(2)

行のRESETは,(9)行のカウンタのRESETと同じ

であり,S1のタイミソグでカウンタはリセットされ る。逆に,(9)行のCEにより,(6)行の条件,すなわ ち,8回の繰り返しが終了したか否かが判断される。 また,ao行,⑬行,04行, as)行のGNDは論理値0を 示す定数である。 4. 記述言語からモジュール文への変換  LORAN言語変換システムの全体は,   (1)記述言語の処理(コソパイル)   (2)制御論理の生成   (3)論理式からモジ=一ル文への変換   (4)モジュール実装情報作成   (5)実装 以上大きく5つに分けられる。ここでは(3)までについ て図一3−6の記述例を用いて説明することにし,(4)以下 については文献(1)を参照されたい。  4.1 記述言語の処理(コンパイル)  ここでは文字どおり,記述された各文に対して適当 な処理を行なうのであるが,その結果として必要なも のは,論理装置の時間的な順序を表わす制御表,文中 に記述された論理処理を行なう論理式,ならびにモジ ュール文を内部表現に変換したファイルである。  まず全体の記述例の処理結果の制御表を表一4−1に 示す。この表によって制御が,ASTML(旧状態)か ら,TCOND(推移条件)の下で, PSTML(新状態) へ移る時間的順序が示される。TCOND中1は定数で 無条件な推移を,CEは’IF文の条件である。具体的 には,制御はS1からS3まで無条件に移ってゆき,

S3で条件CEが論理値0,すなわち8桁の乗算が終

了していなけれぽ再びS2にもどり, CEが論理値1 ならばS4へゆき,乗算が終了する。  論理式はそのままファイルに貯えれぽよいのである が,一ヵ所だけ,つまり’SET文と’LET文の区別 をしなけれぽならないのでtSET文の場合は代入演算 子=を;に変え,’LET文の場合はそのまま貯える。 モジュール文は,その中に制御変数が含まれている場 合は,制御変数をそのタイミングを示すラベル変数に 置き換えてから,モジュール文を内部表現に変換して ファイルし,実装自動化システムの入力ωとする。  その他ここでは文法エラーの処理等が行なわれる。  4.2 制御論理の生成  4.1で作成された制御表は,装置の動作の時間的な 関係を表わしていたが,最終的にはそれはモジュール 表現に変換される。ここではその前の手続きとして, 制御表を論理式に変換する。表一4−1からわかるよう 表一4−1乗算器の制御表  普苔CONTT升鴻 AS丁ML、     TCOト就) $ 1     1 S 2     1 s3     −c E S 3     CE, PST岡L 5 2

s3

S 2 s 件 ノ ! Sl S2 S3 S4 :BGN Cf’sir :CNT VARI RESET,LOA[)1》ig図C朽 :CNT VARI COUN「 :lF(柄1) CNT VARI AI)DgトICA6 :CNT VARI S日IF「A●SHIF’IM、1”1(AB :IF(−CE) bO IO S2 :END (NT :BGN MD :M[〉 (OUN〕16((OUNTgC1,RESETノ⊂ヒ¶C3.C2も(二1) :MD SR(D1,D2’D3,D∠}¶M59M(二IVIgSHIFT沖,LOAD州!領4gM3⑱M2¶M1) :MD sR(D5,[)6,D7●D8’GND●MCPt,SHiFTN,LOADト4ノ凹8,M7¶M6gM5) :柄D sR(AD4CAi)3,A[)2gAL)1,Aう,MC∧【3.9SHIFrA、AD{)ノA49A3旬A2.A1) (1) (2) (3) (4) (5) (6) (7) (8) (9) ao) ⑪ a2) :MD SR(AD8gAi)7¶AD6勺Ai)I gGl、江)¶MCAB¶ミ〉}|IF1” A・ADD!A8gA7¶A6gA5) (13) :tvlD S)R(GトiD,GND●GNDgGNDgAIgGN〔),MCA6.SHlFTA!B8¶B7・B6,B5)  (14) :MD sR(GNDgGNDgGND勺(∼hD●巳1)命GNLS⑱ト4CAti●SrtiFrA1B4●B3、B2⑱B1)  (15) :MD AD(A8’A7gA6¶A5・Rδ¶R7,R6¶5⊃・C{::’t+/At)と‥Aじ7・AD6・AL)5⑱CO8) (16) :lvlD Ap(A4・A3iA2¶Al¶R4・R3,}寸2¶W19(≡…銭D/AD4,AD3.Aじ29AD1,CO4) (17) :}三ND 凹D      (18) 図一3−6乗算器の記述例

(6)

に,S2へ制御が移るのは, S1から無条件に移るか, あるいはS3から条件一CEで移るかの2通りであるか ら論理式(4−2−1)を生成する。同様にS3, S4へは それぞれ,無条件,あるいは条件CEでそれぞれS2, S3より制御が移るのであるから論理式(4−2−2), (4−2−3)が生成される。    S2;S1十S3*−CE (4−2−1)    S3;S2       (4−2−2)    S4;S3*CE     (4−2−3) ここで;は’SET文のコンパイル結果と同様,右辺の 値が左辺に記憶される。  以上のように,ここではコンパイラから送られてく る制御表のファイルから論理式を生成して,コンパイ ラの論理式ファイルに加えてゆく。  4.3 論理式からモジュール文への変換  ここでは以上の過程で得られた論理式を論理回路と して実現するために,論理式をNANDゲート, FF を用いたモジュール文へ変換する。モジ=一一一ル文につ いては,記述言語の項で示したように,機能名(入力リ スト/出力リスト)という形式をとる。論理式(4−2− 1)の変換は,つぎに示す手順を例に説明する。   S2;S1十S3*−CE (4−2−1)  (a)S3*−CEを新しい変i数で置き換える。      S2;S1十DOOl      DOOI == S3*−CE  (b)S1+DOO1を新しい変数で置き換える。      S2;TO44      (4−3−1)      DOO1=S3*−CE       (4−3−2)      TO44=S1十DOO1      (4−3−3)  (c)式(4−3−1),(4−3−2),(4−3−2)に対して,NA NDゲート, FFを割り付ける。そのモジュール文を 示す。    FF(TO44,−TO44, CL, PR, CR/S2,−S2)    NAND2(S3,−CE/−DOO1)    NAND2(−S1,一・ DOOI/TO44) ここで,TO44, DOO 1は実際の結果を引用したもの で,変換システムが自動的に生成したもので,特別の 意味は無い。FFにおいて, CL, PR, CRはそれぞ れ,クロック線,プリセット線,クリア線を表わす。  一般に論理式には,+,*が混在しているので,こ こではまず式を積和形に変換し,さらに現在のとこ

ろ,実装するモジュールとして3入力以下NANDを

用いているので,そのための入力数の調整も行なわれ る。なおその際,ゲートの段数の最小化,すなわち動 作時間の最短化も行なわれる。  以上で記述言語の内容が,すべてモジュール文に変 換されたことになる。 5. モジュール実装情報作成,ならびに実装  ここでは,全変換システムの最終段階として,今ま での変換で得られた各モジ=一ル文の入出力変数に, 実装情報を基にして,ICのピンを割り付け,回路図 に相当する結線表を得るのであるが,その詳略は参考 文献1)に譲る。 6. む す び

 以上計算機設計言語LORANと,その変換システ

ムについて述べた。プログラムは汎用性を持たせるた

め,大部分はFORTRANを用いており,全ステップ

数約4500,サブルーチン数75となっている。アセン ブラによるものは,磁気ドラム,マガジンファイルの 1/0用等に4ルーチンだけ使用している。  計算機のCAD化が押し進められる理由としては,   (1)設計時間の短縮   (2)設計コストの低減   (3)設計ミスの排除   (4)共同作業の容易性   (5)システム設計の最適化   (6)大規模なシステム開発の容易1生 等があげられる。  本システムにおいても,以上の大部分はカバーして いると思われるが,前にも述べたようにシュミレーシ ョンプログラムを製作していないために,誤設計の検 出は困難である。また使用計算機の記憶容量の問題か ら,現在はICの数で30程度,変数にして数百以内 のシステムの記述しか実現できない。今後2次記憶装 置(磁気ドラム,マガジンファイル)のより有効な利 用法を開発し,さらに大型システムにも適用可能な CADシステムに育てていきたい。  謝辞  日頃,多方向にわたり御指導いただく本学富塚剛教 授,志村栄一助手に,また本研究を進めるにあたり, プログラミングに協力された本講座学生石原敏夫,小 河原昇,川島徳義君に感謝いたします。

参考文献

1) 水原,伊藤:論理システム実装設計自動化プログラム   の開発,山梨大学工学部研究報告,Vol.24,1973.

参照

関連したドキュメント

日頃から製造室内で行っていることを一般衛生管理計画 ①~⑩と重点 管理計画

テューリングは、数学者が紙と鉛筆を用いて計算を行う過程を極限まで抽象化することに よりテューリング機械の定義に到達した。

共通点が多い 2 。そのようなことを考えあわせ ると、リードの因果論は結局、・ヒュームの因果

トリガーを 1%とする、デジタル・オプションの価格設定を算出している。具体的には、クー ポン 1.00%の固定利付債の価格 94 円 83.5 銭に合わせて、パー発行になるように、オプション

わかりやすい解説により、今言われているデジタル化の変革と

キャンパスの軸線とな るよう設計した。時計台 は永きにわたり図書館 として使 用され、学 生 の勉学の場となってい たが、9 7 年の新 大

Q7 

ぎり︑第三文の効力について疑問を唱えるものは見当たらないのは︑実質的には右のような理由によるものと思われ