JPH04148424A - 論理シミュレーション演算回路 - Google Patents

論理シミュレーション演算回路

Info

Publication number
JPH04148424A
JPH04148424A JP2273645A JP27364590A JPH04148424A JP H04148424 A JPH04148424 A JP H04148424A JP 2273645 A JP2273645 A JP 2273645A JP 27364590 A JP27364590 A JP 27364590A JP H04148424 A JPH04148424 A JP H04148424A
Authority
JP
Japan
Prior art keywords
register
stack
circuit
registers
bit width
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2273645A
Other languages
English (en)
Inventor
Kuniharu Hashimoto
訓治 橋本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2273645A priority Critical patent/JPH04148424A/ja
Publication of JPH04148424A publication Critical patent/JPH04148424A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 口産業上の利用分野〕 本発明は演算回路、特に、ヒツト幅の異なる論理やヒツ
ト幅の大きな論理や複合した論理を、ハードウェア的に
ソミュレーンヨンするための論理シミュレーション演算
回路に関する。
〔従来の技術〕
従来、この種のハードウェア論理シミュレーション回路
は、複合した論理やビット幅の異なる論理データやヒツ
ト幅の大きな論理データを、ハードウェアのバス幅に合
わせた複数の論理データに分割して、単純な論理に変換
し、ノ・−ドウエアでシミュレーションを行い、再びそ
の結果を合成するという手段で行っていた。
〔発明が解決しようとする課題〕
上記した従来のハードウェア論理シミュレーション回路
は、次のような問題が生じる。
■ ソフトウェアの開発負担が大きい。
■ 論理データが分割されるため、データ通信が増大す
る。
■ データの合成等を行うため、ンミュレーンヨン速度
が落ちる。
C課題を解決するための手段〕 本発明の論理シミュレーション演算回路は、被演算子を
保持するスタック構造を有し、演算命令によってスタッ
ク上の被演算子を用いた演算を行い、その結果を再びス
タックに格納するスタック型演算回路を用いた論理デー
タを演算する論理データ演算回路および論理データのビ
ット幅を演算するビット幅演算回路と、 命令のフェッチと実行をコントロールするコノトロール
回路とを有し、 各演算回路はコントロール回路によって制御され、また
、ビット幅演算回路の出力によってコントロール回路と
論理データ演算回路の出力が制御される。
〔実施例〕
第1図に本発明の論理シミュレ=7.ン演算回路の構成
の一実施例を示す。
10はクロック発生回路−1外部から入力されたシステ
ムクロックから、内部クロックを発生し各回路に供給す
る。
20はコントロール回路、命令のフェッチを行い、命令
を解釈して各演算回路に実行を指令する。
また、実行が2サイクル以上かかる場合は、外部にスト
ール信号を出力する。このとき、命令によってはビット
幅演算回路30からの情報を用いて実行を制御する。
30はビット幅演算回路で、コントロール回路20から
の信号によってコントロールされ、論理データのヒツト
幅を計算する。計算結果は論理データ演算回路40に送
られ、論理データ演算回路40の演算結果の有効ヒツト
幅を与える。また、コントロール回路20はビット幅演
算回路30に保持されてし・るヒツト幅によって実行サ
イクル数を決定する。
40は論理データ演算回路で、コントロール回路2Qか
らの信号によってコントロールされ論理データの演算を
行う。演算結果の有効ヒント幅はビット幅演算回路30
から与えられる。
第2〜1図から第2−6図は、第1図の論理ノミュレー
ンヨン演算回路の各要素の構成例である。
この例では、外部バス、およびスタック10?ゝデータ
バスのヒツト幅を16ヒント、レジスタ101とレジス
タ102のヒツト幅を80ヒツトとしである。
第2−1図は論理データ演算回路40の詳細例である。
第2−1図において、レジスタ101は、スタック10
5にプッシュされた論理データの最新の値を保持し、レ
ジスタ102はレジスタ101の1つ前の値を保持する
。スタック105はレジスタ102より古いデータを保
持している。スタックポインタ104はスタック105
に与えるポインタを発生する。
106は演算回路、103はシフトレジスタである。シ
フトレジスタ103は外部バスやスタック105へ出力
するデータを一時保持する。107゜108.109,
110および111はセレクタであり、コントロール信
号によって入力信号を選択する。112,113は3ス
テートの出力バッファで、外部への出力信号を制御する
第2−2図はビット幅演算回路30の詳細例である。本
ビット幅演算回路は、第2図の論理データ演算回路と相
似形をしている。
第2−2図において、レジスタ12はレジスタ101の
保持する論理データのビット幅を保持し、レジスタ12
2はレジスタ102の保持する論理データのビット幅を
保持する。スタック124はスタック105の保持する
論理データのビット幅を保持する。スタックポインタ1
23はスタック124に与えるポインタを発生する。
125は演算回路で、各演算命令に応じてビット幅の計
算を行う。126,127はセレク通?それぞれコント
ロール信号によってレジスタ121゜122への入力を
選択する。128は3ステートの出力バッファであり、
フッシュ命令の時にスタック124ヘレジスタ122の
値を出力する。
129はコントロール回路からの入力端子で、プッシュ
命令の時にレジスタ101にプッシュされる論理データ
のビット幅が入力される。
第2−3図は、第2−1図と第2−2図に示したスタッ
クポインタ104,123の詳細例であり、104と1
23で共通である。
第2−3図の131は、スタックポインタの本体となる
デクリメントカウンタ、132はデクリメントカウンタ
131の値に1を加える加算器、133はセレクタであ
る。プッシュ命令の時に加算器132の出力値を、それ
以外の時にデクリメントカウンタ131の値を、出力端
子134に出“力する。デクリメントカウンタ131は
、クロックの立ち上がりで変化し、プッシュ命令の時に
は加算器132の出力をロードし、ポツプ命令の時には
デクリメントカウンタ131が保持している値をデクリ
メントする。
第2−4図は、第2−1図に示したレジスタ101の詳
細例である。レジスタ101は、5つツブ命令の時はレ
ジスタ102からの入力に、演算命令の時は演算回路1
06からの入力に、プッシュ命令の時は外部バスからの
入力に切り替わる。
第2−5図は、第2−1図に示したレジスタ102の詳
細例である。レジスタ102は、5つの16ビツトのレ
ジスタ150〜154からなる。
各レジスタ150〜154の入力は、セレクタ155〜
159で選択され、プッシュ命令の時はレジスタ101
からの入力に、二項演算命令とポツプ命令の時はスタッ
ク105からの入力およびレジスタ105〜154から
の入力に切り替わる。
第2−6図は、第2−1図に示したシフトレジスタ10
3の詳細例である。シフトレジスタ103は、4つの1
6ヒツトのレジスタ160〜163からなる。各レジス
タ160〜163の入力は、−1=レクタ164〜16
7で選択され、プッシュ命令・ポツプ命令の第1サイク
ルの時に入力端子206からの入力に、第2サイクル以
降はレジスタ160〜163からの入力に切り替わる。
次に、この論理シミュレーション演算回路の動作につい
て説明する。この回路の動作は、プツシ−、ボッフ、二
項演算、単項演算の4つに分類できる。
°プッシュ プッシュ命令の実行サイクル数は、プッシュ命令で指定
された論理データのビット幅とレジスタ122の保持す
るビット幅を比較し、大きい方のビット幅をバス幅で割
った値になる。端数が出たときは、切り上げる。
(1)ビット幅演算 第1サイクルでは以下の動作を行う。
レジスタ121にプッシュ命令で指定された論理データ
のビット幅が入力される。レジスタ121の内容はレジ
スタ122へ、レジスタ122の内容はスタック124
へそれぞれ入力される。また、スタックポインタ123
には、その内容に1を加えたものが入力され、スタック
124へ与えるポインタの値も、スタックポインタ12
3の内容に1を加えたものになる。第1サイクルのクロ
ックの立ち上がりで、各レジスタは、入力された値をセ
ットする。ヒツト幅演算は、第1サイクルで終了する。
(2)論理データ演算 第1サイクルでは以下の動作を行う。動作するデータパ
スを1−1図に示す。
外部バス70から入力された論理データが、し7スタ1
01の最下位のレジスタ140に入力される。レジスタ
101が保持しているデータは、レジスタ102に入力
さ九る。レジスタ102の論理データは、最下位のレジ
スタ150が保持しているデータが、直接スタック10
5に入力されシフトレジスタ103のレジスタ160〜
163に入力される。また、スタックーナ轡す105に
は、その内容に1を加えたものが入力され輸スタック1
05へ与えるポインタの値も、スタックポインタ104
の内容+1になる。
第1ザイクルのクロックの立ち上かりて、各レジスタは
、入力された値をセットする。また、この時レジスタ1
01のレジスタ140〜144はリセットされる。
第2サイクル以降は以下の動作になる。動作するデータ
パス3−2図に示す。
外部バス70から入力されたデータは、第2゜3.4.
5ザイクルの時にレジスタ140〜144に入力される
。入力のないレジスタの値は保持される。予定されたヒ
ツト幅の入力が終わると、それ以降の転送動作は行われ
ない。
また、シフトレジスタ103にセットされた値は、各サ
イクル毎にレジスタ160の値がスタック105−\出
力される。レジスタ161,162゜163の値は、各
々レゾZり160,261゜162−・入力され、クロ
ックの立ち上かりててットされる。スタック105の動
作は、第1ザイクルと同じである。これによって、フッ
ンユ命令の実行前にレジスタ102に保持されていたデ
ータか、順番にスタック105に格納される。この動作
も、レジスタ122か保持していたヒツト幅の転送か終
了した時点で、それ以上の転送は行われない。
・ポノフ ボ、プ命令の実行サイクル数は、レジスタ12]の保持
するビット幅と、スタック124の保持するヒラhlを
比較し、大きい方のヒツト幅をハス幅で割った値になる
。端数が出たときは、切り上げる。
(1)  ヒツト幅演算 第1サイクルでは以下の動作を行う。
レジスタ122の内容カレシスタ121へ、レンエスタ
121の内容がレジスタ122へそれぞれ入力される。
スタック124へ与えるポインタの値は、スタックポイ
ンタ123の内容になる。第1サイクルのクロックの立
ち上かりて、レジスタ121.122は、入力された値
をセットする。
また、スタックポインタ123はその値をデクリメント
スる。ヒツト幅演算は、第1ザイクルで終了する。
(2)論理データ演算 第1サイクルでは、以下の動作を行う。動作するデータ
パスを3−3図に示す。
し/スタ101の保持する論理データのうち、最下位の
レジスタレジスタ140の論理データが直接外部ハスに
出力される。レジスタ141゜142.143,144
のデータは、シフトレジスタ103のレジスタ760,
161,162゜163に入力される。レジスタ202
が保持しているデータは、レジスタ101に入力される
。スタック105の論理データは、レジスタ102の最
下位レジスタレジスタ150に入力される。このとき、
スタック105へ与えるポインタの値は、スタックポイ
ンタ104の値である。
第1サイクルのクロックの立ち上がりで、各レジスタは
、入力された値をセットする。スタックポインタ104
は、その値をデクリメントする。
また、この時レジスタ102のレジスタ151〜154
はリセットされる。
第2サイクル以降は以下の動作になる。動作するデータ
バスを3−4図に示す。
ジスタ161,162,163の値は、各々レジスタ1
60,161,162へ入力される。各レジスタはり四
ツクの立ち上がりでセットされる。
スタックポインタ104の動作は、第1サイクルと同じ
である。これによって、ポツプ命令の実行前にレジスタ
101に保持されていたデータが、順番に外部バスに出
力される。この動作は、レジスタ121が保持していた
ビット幅の転送が終了した時点で終わり、それ以上の動
作は行われない。
また、レジスタ102では、スタック105からのデー
タが、レジスタ150に入力され、レジスタ151,1
52,153,154にはレジスタ150,151,1
52,153の値が入力される。各レジスタはクロック
の立ち上がりでセットされ、これによってスタック10
5に保持されていたデータが回復する。スタックポイン
タ104の動作は、第1サイクルと同じである。この動
作も、スタック124が保持していたビット幅の転送が
終了した時点で終わり、それ以上の動作は行われない。
二項演算 二項演算では、演算そのものは1サイクルで終了する。
従って、二項演算の実行サイクル数は、スタック124
の保持するピッ)+[をバス幅で割った値になる。端数
が出たときは、切り上げる。
(1)  ビット幅演算 第1サイクルでは以下の動作を行う。
各演算命令に応じて、レジスタ122とレジスタ121
の値から演算結果のビット幅を算出し、レジスタ121
へ入力する。レジスタ122には、スタック124の値
が入力される。スタック124へ与えるポインタの値は
、スタックポインタ123の内容になる。第1サイクル
のクロックの立ち上がりで、レジスタ121,122は
、入力された値をセットする。また、スタックポインタ
123はその値をデクリメントする。ビット幅演算は、
第1サイクルで終了する。
(2)論理データ演算 第1サイクルでは以下の動作を行う。動作するデータバ
スを3−5図に示す。
各演算命令に応じて、レジスタ102と101の値を演
算し、その結果をレジスタ121へ入力する。レジスタ
102.スタック105.スタックポインタ104の動
作は、ポツプ命令と同様である。スタック105の論理
データは、レジスタ102の最下位レジスタ150に入
力される。このとき、スタック105へ与えるポインタ
の値は、スタックポインタ104の値である。第1サイ
クルのクロックの立ち上がりで、各レジスタは、入力さ
れた値をセットする。スタックポインタ104は、その
値をデクリメントする。また、この時レジスタ102の
レジスタ151,152,153゜154はリセットさ
れる。
第2サイクル以降の動作も、ポツプ命令と同様である。
レジスタ102には、スタック105からのデータが、
レジスタ150に入力され、レジスタ151,152,
153,154にはレジスタ150,151,152,
153の値が入力される。各レジスタはりOツクの立ち
上がりでセットされ、これによってスタック105に保
持されていたデータが回復する。スタックポインタ10
4の動作は、第1サイクルと同じである。
・単項演算 単項演算の実行サイクル数は1サイクルである。
(1)ビット幅演算 各演算命令に応じて、レジスタ121から演算結果のビ
ット幅を算出し、レジスタ121へ入力する。クロック
の立ち上がりで、レジスタ121は入力された値をセッ
トする。
(2)論理データ演算 動作するデータバスを3−6図に示す。
各演算命令に応じて、レジスタ101の値を演算し、そ
の結果をレジスタ101に入力する。クロックの立ち上
がりで、レジスタ101は入力された値をセットする。
以上が、本論理シミュレーション演算回路の動作である
次に、本論理シミュレーション演算回路を用いたシミュ
レーションエンジンの一例を第4図に示す。
401は論理シミュレーション演算回路である。
MPU403は、このニンジンのシーケンス制御とメモ
!1404のアドレス計算を行う。制御記憶402は、
MPU403からアクセスされ、MPU403と演算回
路401に命令を与える。メモリ404は、論理データ
を格納する。メモリアドレスレジスタ405は、任意の
値をロートできるアッフカウンタで、メモリの7クセス
アトレスを与える。ストール信号406は、演算回路4
01かMPU403に命令の実行中であることを知らせ
る。信号線407は、メモリアドレスレジスタ405の
インクリメント信号を搬送する。
このシミュレーションエンジンは、命令のフェッチと実
行がパイプラインで行われる。命令のフェッチは各サイ
クルの終わりで行うが、ストール信号406か入力され
ているときには実行しない。命令の実行は、論理データ
の演算は演算回路401が、その他の演算や制御はMP
U403が行う。
第5図は、第4図のシミュレーションエンジンの動作を
、タイムチャートで表したものである。
Tl〜T22が、各サイクル名である。この例では、T
1の実行時点で既にレジスタ101には72ヒツトのデ
ータC(0ニア2)が、レジスタ102には32ビツト
のデータD(0:32)がプッンユされている。第5図
でシミュレートしているケートは、次の式で示される。
X(0°1)=(A(0:64) 、AND、 (B(
0:64)、NOT、))、ROR,:この式で、 A
ND、は主項と左項の論理積、。
NOT は主項の論理否定1.ROR,は主項の全ヒツ
トの論理和を示す。また、A (0: 64)、 B(
0: 64)は、それぞれ64ヒツトの論理データであ
る。次に、第5図にそって実際の動作を説明する。
T1でアドレス命令をフェッチする。T2てMPU40
3がアドレス命令を実行し、メモリアドレスレジスタ4
05に論理データA(0:64)のアドレスAをセット
する。
T3て演算回路401がプッシュ命令を実行し、レジス
タ122の値(32)とプッンユ命令で取り込むヒツト
@(64)を比較して、大きい方の値(64)からサイ
クル数(4)が決定し、ストール信号406かセットさ
れる。メモリ404から、アドレスAの論理データ(A
O)か出力され、e夕405は、その値Aをインクリメ
が取り込む。レジスタ102〜 104は、Oにリセットされる。また、レジスタ121
には、し7・〕スツタ10が取り込むべきヒラ)幅(6
4)をセットする。現在のレジスタ121の値(72)
はレジスタ122へ、レジスタ122の値(32)はス
タック124へ移動し、スタックポインタ123の値(
N)はインクリメントされる。
マタ、レジスタ101の値(C)はレジスタ102へ移
動し、レジスタ102の値(D)は、レジスタ140の
値(DO)がスタック105へ、レジスタ151〜15
4の値がノフトレシスタ103に移動する。スタックポ
インタ104の値(M)は、インクリメントされる。
T4は、プッシュ命令の続きである。レジスタ101の
レジスタ141が、メモリ404から出力されるアドレ
スA+1の値(A1)を取り込む。
メモリアドレスレジスタ405はインクリメントされる
。また、スタ、り105にはンフトレジスタ103のレ
ジスタ160から出力された値(DI)が取り込まれ、
スタックポインタ104はインクリメントさ九る。レジ
スタ161,162゜163の値は、それぞれレジスタ
160,161゜162ヘシフトされる。
T5は、プッシュ命令の続きである。レジスタ101の
レジスタ142が、メモリ404から出力されるアドレ
スA+2の値(A2)を取り込む。
メモリアドレスレジスタ405はインクリメントされる
。スタック105への転送は、前サイクルで終了してい
るので実行されない。
T6は、プッシュ命令の続きである。レジスタ101の
レジスタ143が、メモリ404から出力されるアドレ
スA+3の値(A3)を取り込む。
メモリアドレスレジスタ405はインクリメントされる
。このサイクルでストール信号406が解除され、次の
命令がフェッチされる。
T7は、アドレス命令を実行する。メモリアドレスレジ
スタ405に論理データB(0:64)のアドレスBを
セットする。
T8は、プッシュ命令を実行する。T3と同様、レジス
タ122の値(72)とプッシュ命令のビット幅(64
)を比較して、大きい方の値(72)からサイクル数(
5)が決定し、ストール信号406がセットされる。メ
モリ404から、アドレスBの論理デ゛−タ(BO)が
出力される。メモリアドレスレジスタ405は、その値
Bをインクリメントする。
出力されたデータ(BO)は、レジスタ101のレジス
タ140が取り込む。T3と同様、レジスタ141〜1
44はOにリセットされる。また、レジスタ121は、
レジスタ101が取り込むべきビット幅(64)をセッ
トする。現在のレジスタ121の値(64)はレジスタ
122へ、レジスタ122の値(72)はスタック12
4へ移動し、スタックポインタ123の値(N+1)は
インクリメントされる。またレジスタ101の値(A)
はレジスタ102へ移動し、レジスタ102は、レジス
タ150の値(CO)がスタック105へ、レジスタ1
51〜154の値がシフトレジスタ103に移動する。
スタックポインタ104の値(M+2)は、インクリメ
ントされる。
T9は、プッシュ命令の続きである。レジスタ101の
レジスタ141が、メモリ404から出力される値(B
l)を取り込む。メモリアドレスレジスタ405はイン
クリメントされる。また、スタック105にはシフトレ
ジスタ103のレジスタ160から出力された値(C1
)が取り込まれ、スタックポインタ104はインクリメ
ントされる。
TIOは2ブツシユ命令の続きである。レジスタ101
のレジスタ142が、メモリ404から出力される値(
B2)を取り込む。メモリアドレスレジスタ405はイ
ンクリメントされる。また、スタック105にはシフト
レジスタ103のレジスタ160から出力された値(C
2)が取り込まれ、スタックポインタ104はインクリ
メントされる。レジスタ161,162,163値は、
それぞれレジスタ160,161,162ヘシフトされ
る。
Tllは、プッシュ命令の続きである。レジスタ101
のレジスタ143が、メモリ404から出力される値(
B3)を取り込む。メモリアドレスレジスタ405はイ
ンクリメントされる。また、スタック105にはシフト
レジスタ103のレジスタ160から出力された値(C
3)が取り込まれ、スタックポインタ104はインクリ
メントされる。レジスタ161,162,163値は、
それぞれレジスタ160,161,162ヘシフトされ
る。
T12は、プッシュ命令の続きである。前サイクルでレ
ジスタ101へのプッシュは終了するので、このサイク
ルではレジスタ101とメモリアドレスレジスタ405
は変化しない。しかし、スタック105への転送は行わ
れ、スタック105にはシフトレジスタ103のレジス
タ160から出力された値(C4)が取り込まれる。ス
タックポインタ104はインクリメントされる。レジス
タ161,162.163の値は、それぞれレジスタ1
60,161,162ヘシフトされる。このサイクルで
ストール信号406が解除され、次の命令がフェッチさ
れる。
T13は、NOT命令を実行する。サイクル数は、単項
命令なので(1)である。レジスタ101の値(B)が
演算回路106に送られ、演算回路106はNOT演算
を行い、結果の値(B′)をレジスタ101に返還する
。また、レジスタ121の値(64)も演算回路125
に送られ、演算回路125はNOT演算の時のビット演
算を行い、結果(64)をレジスタ121に返還する。
T14は、AND命令を実行する。スタック124の値
(72)から、サイクル数(5)が決定し、ストール信
号406がセットされる。レジスタ101の値とレジス
タ102の値が演算回路106に送られ、演算回路10
6はAND演算を行い、結果(E)をレジスタ101に
返還する。また、レジスタ121の値(64)とレジス
タ122の値(64)が演算回路125に送られ、演算
回路125はAND演算の時のヒツト演算を行い、結果
(64)をレジスタ121に返還する。
また、スタック124の値(72)がレジスタ122に
送られ、スタックポインタ123の値(N+2)はチク
リメントされる。スタック105の値(C4)が、レジ
スタ102のレジスタ140にセットされ、スタックポ
インタ104の値(N+7)はデクリメントされる。レ
ジスタ151゜152.153,154はOにリセット
される。
T15は、AND命令の続きである。スタック1050
i (C3)かレジスタ102のレジスタ150にセッ
トされる。レジスタ150,151゜152.153の
値は、レジスタ151,152゜153 154にシフ
トされる。スタックポインタ104はデクリメントされ
る。
T16は、AND命令の続きである。スタック105の
値(C2)が、レジスタ102のレジスタ150にセッ
トされる。レジスタ150,151゜152.153の
値は、レジスタ151.152153 154にシフト
される。スタックポインタ104はチクリメントされる
T17は、AND命令の続きである。スタック105の
値(C1)が、レジスタ102のレジスタ150にセッ
トされる。レジスタ150,151゜152.153の
値は、レジスタ151,152゜153.154にシフ
トされる。スタックポインタ104はデクリメントされ
る。
T18は、AND命令の続きである。スタック105の
値(CO)が、レジスタ102のレジスタ150にセッ
トされる。レジスタ150,151゜152.153の
値は、レジスタ251,152゜153.154にシフ
トされる。スタックポインタ104はチクリメントされ
る。このサイクルでストール信号406が解除され、次
の命令かフェッチされる。
T19は、ROR命令を実行する。サイクル数は、単項
命令なので(1)である。レジスタ101の値が演算回
路106に送られ、演算回路106はROR演算を行い
、結果(F)をレジスタ101に返還する。また、レジ
スタ121の値(64)も演算回路125に送られ、演
算回路125はR○R演算の時のヒフ、ト演算を行い、
結果(1)をレジスタ121に返還する。
T20は、アドレス命令を実行する。メモリアドレスレ
ジスタ405に論理テークX (0: 1)のアドレス
Xをセットする。
T21は、ポツプ命令を実行する。レジスタ101の値
(1)とスタ、7り124の値(32)を比較して、大
きい方の値(32)からサイクル数(2)か決定し、ス
トール信号406がセットされる。
レジスタI21のレジスタ14 oカラ、 外部ハスに
論理テーク(F)が出力され、メモリのアドレスXにセ
ットされる。レジスタ141,142゜143 144
のテークは、シフトレジスタ103のし/スタ160,
161,162,163に七れそれ送られる。メモリア
ドレスレジスタ405のm (C)はインクリメントさ
れる。レジスタ122の値(72)がレジスタ121へ
、スタック124の値(32)がレジスタ122へ送ら
れ、スタックポインタ123の値(N+1)はデクリメ
ントされる。また、レジスタ102の値はレジスタ10
1に送られ、レジスタ102のレジスタ150にはスタ
ック105の値(Dl)が送られる。レジスタ151,
152,153,154はOにリセットされ、スタック
ポインタ104の値(N+2)はデクリメントされる。
T22は、ポツプ命令の続きである。メモリへの転送は
前サイクルで終了して−・るので、行われない。スタッ
クからは、スタック105の値(DO)がレジスタ10
2のレジスタ150にセットされる。レジスタ150,
151,152,153の値は、レジスタ151,15
2,153,154にシフトされる。スタック105は
デクリメントされる。
このサイクンクトール信号406が解除され、次の命令
がフェッチされる。
ここで、このシミュレーションエンジンの実行サイクル
数を従来の固定長の演算回路と比較してみよう。
第5図でシミュレートした演算を、従来の固定長の演算
回路でシミュレートした場合について考える。この場合
、式〈1〉は、固定長シミュレーンヨン演算回路でシミ
ュレートするための最適化を行うと式<2〉になる。
X(0:1)=(A(0:64)、AND、 (B(0
:64))、NOT、))、ROR・・・・・〈l〉 X(0: 1)=((A(0:16) 、 AND、 
(B(0:16) 、NOT、) 、ROR,) 、0
R((A(16:16)、AND、(B(16:16)
、NOT、)、ROR,)OR。
((A(32:16)、AND、(B(32:16)、
NOT、)、ROR,)OR。
((A(48:16)、AND、(B(48:16)、
NOT、)、ROR,);・・・・・〈2〉 この式〈2〉をシミュレートすると、33サイクル必要
とする。その内訳は、16ビツトのデータプッシュがア
ドレス命令とプッシュ命令の2サイクル必要で、それが
8回あり、AND命令が4回NOT命令が4回、ROR
命令が4回、OR命令が3回、アドレス命令とポツプ命
令で2サイクルの合計33サイクルである。
方、第5図の例ではこのシミュレーションエンジンは実
行に21サイクルかかっているが、これは前提条件とし
てレジスタ101,102にそれぞれ75ビツト、32
ビツトのデータを設定していたためである。仮に、各レ
ジスタが空の場合を考ると、実行サイクル数は15サイ
クルになる。
また、各レジスタに最大ビット幅の80ビツトのデータ
が設定されていた場合でも、このエンジンの実行サイク
ル数は25サイクルである。
従って、このシミュレーションエンジンは従来のものに
比較して、1.3〜2.2倍の速度を持つ。
〔発明の効果〕
以上で説明したように、本発明は論理シミュレーション
回路において、論理データのビット幅を演算する回路と
、論理データの演算回路の2つを用いることで、ビット
幅の異なる論理データが複合した論理回路のシミュレー
ションを可能した。
また、ワード単位のシフトを行うレジスタとビット幅を
保持するスタックを用いることで、ヒツト幅の大きな論
理データを外部バスのバス幅の制限を受けずに扱うこと
を可能にした。
更に、複合した論理データをハードウェアが自動的に判
断することにより、ソフトウェアの負担を少なくするこ
とができ、なおかつ高速動作を可能にした。
【図面の簡単な説明】
第1図は本発明の論理シミュレーション演算回路の構成
図、第2−1図は論理データ演算回路の構成図、第2−
2図はビット幅演算回路の構成図、第2−3図はスタッ
クポインタの構造図、第2−4図はレジスタ101の構
造図、第2−5図はレジスタ102の構造図、第2−6
図はシフトレジスタ103の構造図、第3−1図はプッ
シュ命令の時のデータパス(第1サイクル)を示す図、
第3−2図はプッシュ命令の時のデータバス(第2−サ
イクル以降)を示す図、第3−3図はポツプ命令の時の
データパス(第1サイクル)を示す図、第3−4図はポ
ツプ命令の時のデータバス(第2サイクル以降)を示す
図、第3−5図は二項演算命令の時のデータバス(第1
サイクル)を示す図、第3−6図は単項演算命令の時の
データパスヲ示ス図、第4図はシミュレーションエンジ
ンの構成例を示す図、第5図はシミュレーションエンジ
ンの動作例のタイムチャートである。 10・・・・・・クロック発生回路、20・・・・・・
コントロール回路、30・・・・・・ビット幅演算回路
、40・・・・・・論理データ演算回路、50・・・・
・・システムクロック、60・・・・・・命令、70・
・・・・・外部バス、101,102゜121.122
,140,141,142,143゜144.150,
151,152,153,154゜160.161,1
62,163・・・・・・レジスタ、103・・・・・
・シフトレジスタ、104,123・・・・・・スタッ
クポインタ、105,124・・・・・・スタック10
6,125・・・・・演算回路、107,108゜10
9.110,111,126,127,133゜145
.146,147,148,149゜155.158,
157,158,159,164゜165.166.1
67・・・・・・セレクタ、112゜113.128・
・・・・出力バッファ、114・・・・・・外部データ
入出力端子、129,201,202゜203.204
,205,206,207・・・・・入力fi子、13
1・・・・・チクリメントカウンタ、132・・・・・
・加算器、134,207・・・・出力端子、401・
・・・・・論理シミュレーション演算回路、402・・
・・・制御記憶、403・・・・・MPU、404・・
・・・メモリ、405・・・・・・メモリアドレスレジ
スタ。 代理人 弁理士  内 原   晋 り41ハ゛人 ■2−乙図

Claims (1)

  1. 【特許請求の範囲】 1、被演算子を保持するスタック構造を有し、演算命令
    によってスタック上の被演算子を用いた演算を行い、そ
    の結果を再びスタックに格納するスタック型演算回路を
    用いた論理データを演算する論理データ演算回路および
    論理データのビット幅を演算するビット幅演算回路と、 命令のフェッチと実行をコントロールするコントロール
    回路とを有し、 各演算回路はコントロール回路によって制御され、また
    、ビット幅演算回路の出力によってコントロール回路と
    論理データ演算回路の出力が制御される論理シミュレー
    ション演算回路。 2、論理データ演算回路は、被演算子を保持する2組の
    レジスタ群と、スタックと、スタックポインタと、シフ
    トレジスタと、演算器で構成され、 1組のレジスタ群はスタック型演算回路に プッシュされた最新の値を保持しており、他の1組のレ
    ジスタ群は前記のレジスタ群の一つ前の値を保持してお
    り、それより前の被演算子はスタックが保持しており、 スタックはスタックポインタで制御され、 レジスタ群はそれぞれの出力が相手のレジスタ群の入力
    セレクタと演算器の入力に接続され、演算器の出力が前
    者のレジスタ群の入力セレクタに接続され、 また、シフトレジスタには2つのレジスタ群の出力が接
    続され、その出力は外部のデータバスとスタックへの入
    力に接続され、また外部データバスは前者のレジスタ群
    の入力セレクタに接続され、スタックの出力は後者のレ
    ジスタ群の入力セレクタに接続されており、また、演算
    器の出力結果がビット幅演算回路の結果に影響される構
    造を有することを特徴とする請求項1記載の論理シミュ
    レーション演算回路。 3、ビット幅演算回路は、前記論理データ演算回路とは
    、シフトレジスタを持たないことを除いて、相似形の構
    造を持つが、レジスタの入力セレクタは外部バスには接
    続されておらず、その入力はコントロール回路からの出
    力と接続され、また、演算器の出力は論理データ演算回
    路の影響は受けないことを特徴とする請求項1記載の論
    理シミュレーション演算回路。
JP2273645A 1990-10-12 1990-10-12 論理シミュレーション演算回路 Pending JPH04148424A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2273645A JPH04148424A (ja) 1990-10-12 1990-10-12 論理シミュレーション演算回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2273645A JPH04148424A (ja) 1990-10-12 1990-10-12 論理シミュレーション演算回路

Publications (1)

Publication Number Publication Date
JPH04148424A true JPH04148424A (ja) 1992-05-21

Family

ID=17530575

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2273645A Pending JPH04148424A (ja) 1990-10-12 1990-10-12 論理シミュレーション演算回路

Country Status (1)

Country Link
JP (1) JPH04148424A (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57209554A (en) * 1981-06-19 1982-12-22 Oki Electric Ind Co Ltd Data processor
JPS6334644A (ja) * 1986-07-29 1988-02-15 Nec Corp 機能レベルシミユレ−タ
JPH02227743A (ja) * 1989-02-28 1990-09-10 Nec Corp 論理シミュレータ

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57209554A (en) * 1981-06-19 1982-12-22 Oki Electric Ind Co Ltd Data processor
JPS6334644A (ja) * 1986-07-29 1988-02-15 Nec Corp 機能レベルシミユレ−タ
JPH02227743A (ja) * 1989-02-28 1990-09-10 Nec Corp 論理シミュレータ

Similar Documents

Publication Publication Date Title
US5319757A (en) FORTH specific language microprocessor
US4984151A (en) Flexible, next-address generation microprogram sequencer
EP0149213A2 (en) Vector processor
US4539635A (en) Pipelined digital processor arranged for conditional operation
US4298936A (en) Array Processor
US4541045A (en) Microprocessor architecture employing efficient operand and instruction addressing
JPS6312029A (ja) 情報処理装置
US4757444A (en) Vector processor capable of performing iterative processing
JPH0412503B2 (ja)
US6049839A (en) Data processor with multiple register queues
US4598358A (en) Pipelined digital signal processor using a common data and control bus
US5590359A (en) Method and apparatus for generating a status word in a pipelined processor
JPS6381567A (ja) 論理シミユレ−シヨン処理装置
JP2518293B2 (ja) デ−タフロ−プロセツサ
US5276822A (en) System with enhanced execution of address-conflicting instructions using immediate data latch for holding immediate data of a preceding instruction
US4924377A (en) Pipelined instruction processor capable of reading dependent operands in parallel
US5586337A (en) Programmable controller with timing control
JPH04148424A (ja) 論理シミュレーション演算回路
JP3098409B2 (ja) 命令をリアル・タイムで処理する装置または方法
David et al. Self-timed architecture of a reduced instruction set computer
JPS60178580A (ja) 命令制御方式
GB2069733A (en) Conditional instruction execution in a pipelined processor
JP3534737B2 (ja) ディジタル信号処理装置およびその制御方法
US5018092A (en) Stack-type arithmetic circuit
US5062036A (en) Instruction prefetcher