明 細 書 発明の名称 半導体集積回路 技術分野
本発明は、 任意の論理をプログラム可能とする複数のメモリブ ロックにより構成された半導体集積回路に関するものである。 技術背景
I Cの製造完成後にフィ一ルドでユーザが I C内部の回路を電 気的にプログラム (書き込み) することにより、 様々な論理構成 を実現することのできる汎用のロジック I Cとして F P GA (Fi eld Programmable Gate Array ) が知られている。
第 2 5図 (A) に示すように F P GA 1 0 0は、 任意の論理を 構成可能とされた複数の可変論理プロック C L B 1 0 1 と、 各論 理ブロック C L B 1 0 1 を結ぶ配線群の接続状態をプログラマブ ルに切り換えるスィツチ回路 1 0 2 とによって構成されている。 可変論理プロック C L B 1 0 1は、 第 2 5図 (B) に示すように 、 組み合わせ論理回路を表現するブロックである L UT (Look U p Table ) 1 0 1 aと、 論理情報を一時的に記憶 · 保持するフリ ップフロップ ( F F ) 1 0 1 bとからなる。 L U T 1 0 1 aには 、 一般的に微小な S RAM (Static Random Access Memory ) が 用いられる。
また、 スィッチ回路 1 0 2は、 第 2 5図 (C) に示すように M O Sスィッチ 1 0 2 aのゲート電極に 1 ビッ トの情報が記憶され た S RAM 1 0 2 bが接続されてなる。 MO Sスィッチ 1 0 2 a のオン Zォブは、 S R A M 1 0 2 bに記憶された情報 ( " 0 " ま
たは " 1 " ) によって制御される。 このように構成された F P G A 1 0 0は 「 S RAMベースの F P GA」 と呼ばれる。 F P GA 1 0 0は、 C L B 1 0 1 とスィッチ回路 1 0 2を構成要素として プログラマブルに論理を構成することのできるロジック I Cであ る。
この F P GA 1 0 0のユーザは、 まず実現しようとする所望の 論理機能を HD L (Hardware Description Language ) で記述し 、 この記述を論値合成ツールと呼ばれるプログラムにより L UT 1 0 1 aの論理値やスィッチ回路 1 0 2のオン Zオフ情報を表わ す論理ゲートレベルの設計データに変換する。 そして、 この設計 データをフィールドで F P GA 1 0 0に書き込むことによって、 当該論理機能が F P G A 1 0 0上に構成される。
本発明者らは、 上記の F P G Aとは異なる技術として、 S RA Mや D RAM (Dynamic Random Access Memory) などの汎用メモ リに類似した構成を有するメモリブロック (メモリ回路) を利用 し、 このメモリブロックのアドレス入力とデ一夕出力との関係が 所望する論理回路の入力と出力との関係に対応するように、 メモ リブロックに論理データを格納することを可能とし、 ユーザがフ ィールドで論理をプログラムすることのできるデバィスに関する 技術を提案しており、 これは例えば、 国際公開 WO/ 5 2 7 3 5 号公報または特開 2 0 0 3— 1 4 9 3 0 0号公報に開示されてい る。 この技術によると、 デバイスの構成が単純であり、 メモリブ ロックに所望の論理機能を実現するための論理データを書き込む ことで、 所望の論理機能を有する回路が容易に得られるので、 設 計工数および開発期間が大幅に短縮される。
しかしながら、 上記の先願発明は、 F P GA 1 0 0の論理プロ ック C L B 1 0 1 をメモリプロックによって構成したものであり
、 少なくとも各メモリブロック間を任意に接続するために配線群 の接続状態を切り換えるスィッチ回路が要される。 そのため、 回 路が大規模になるにしたがい、 スィッチ回路に含まれオン/オフ 情報を記憶するための記憶回路の記憶容量およびその占有面積が 増大する。 また、 組み合わせ論理を記憶させる領域と、 それらの 組み合わせ論理の接続状態を記憶する領域とが別々に構成される ため、 論理データを効率よく格納することができない。 発明の開示
本発明は、 論理ブロックとスィッチ回路との区別をなく したフ レキシブルな可変論理セルにより構成された半導体集積回路を提 供するものである。
上記目的を達成するために、 本発明の半導体集積回路は、 複数 の辺で囲まれた領域毎に形成された複数のメモリブロックと、 前 記辺毎に設けられた複数のァドレス入力端子およびデータ入出力 端子と、 前記複数のメモリブロックのうち第 1のメモリブロック の第 1の辺に隣接する第 2のメモリブロックとの間で、 前記第 1 の辺の少なく とも 1つのアドレス入力端子を、 前記第 2のメモリ ブロックの対向する辺のデータ入出力端子に接続し、 前記第 1の 辺の少なく とも 1つのデータ入出力端子を、 前記第 2のメモリブ ロックの対向する辺のァドレス入力端子に接続する接続手段と、 から論理回路を構成することを特徴とするものである。
前記メモリブロックは、 外部装置により予め書き込まれたデー 夕によって、 前記アドレス入力端子に入力される内部ァドレス信 号と前記データ入出力端子から出力される内部デ一夕信号との関 係を論理変換することを特徴とするものである。
前記メモリブロックは、 スィツチ回路として動作することを特
徵とするものである。
前記メモリブロックは、 組み合わせ論理回路として動作するこ とを特徴とするものである。
複数個の前記メモリブロックは、 その一部で帰還経路を形成す ることにより、 全体として順序論理回路として動作することを特 徵とするものである。
前記接続手段は、 外部装置から送られる外部入力ァドレス信号 および外部入力データ信号をそれぞれ切り換え選択可能に前記メ モリブロックに入力するためのセレクタをさらに備えてもよい。 前記接続手段は、 外部装置から送られる外部入力アドレス信号 および外部入力データ信号をスキヤンパスを介し、 シフ ト動作に よってシリアルに前記メモリブロックに入力するためのシフタブ ルレジス夕をさらに備えてもよい。
前記各シフタブルレジス夕は、 前記スキヤンパスにより直列に 連結されていることが好ましい。
前記各メモリブロック内の不良ビッ トは、 前記スキャンパスを 介して検出されることが好ましい。
前記接続手段は、 第 1のメモリブロックのデータ入出力端子か ら出力される内部データ信号を自己のアドレス入力端子に帰還す るか、 または、 この内部データ信号を隣接する第 2のメモリブ口 ックへ転送するかを選択可能とするマルチプレクサをさらに備え るようにしてもよい。
前記複数のァドレス入力端子およびデータ入出力端子のうち、 前記論理変換に用いられていないアドレス入力端子およびデータ 入出力端子を前記マルチプレクサの選択制御に用いることで、 前 記メモリブロックに搭載される論理の圧縮を行うことが好ましい
前記各メモリブロックは、 3辺で囲まれた三角形をしていても よい。
前記各メモリブロックは、 複数のァドレス入力端子およびデー 夕入出力端子が設けられた上面および下面をさらに備えており、 前記接続手段は、 第 1のメモリブロックの上面のアドレス入力端 子をその上面に隣接するメモリブロックの下面のデータ入出力端 子に接続し、 前記第 1のメモリブロックの上面のデータ入出力端 子をその上面に隣接する前記メモリブロックの下面のアドレス入 力端子に接続してもよい。 図の簡単な説明
第 1図は可変論理セルの構成を示す図であり、
第 2図 (A ) および (B ) はデータセレクタの構成および動作 を説明する回路図であり、
第 3図 (A ) および (B ) はアドレスセレクタの構成および動 作を説明する回路図であり、
第 4図はトライステートバッファの真理値を示す図であり、 第 5図はマトリクス状に 2次元配列された可変論理セルを示す 図であり、
第 6図は瞵接する可変論理セル間の接続手段を示す図であり、 第 7図はスィッチ回路を構成するためにメモリブロック内に格 納すべき論理データの一例を示す図であり、
第 8図は組み合わせ論理回路を構成するためにメモリブロック 内に格納すべき論理データの一例を示す図であり、
第 9図は第 2の可変論理セルの構成を示す図であり、
第 1 0図はシフタブルレジスタの構成を示す回路図であり、 第 1 1図は可変論理 L S I に所望の論理機能を構成するための
手順を説明するフローチャートであり、
第 1 2図は第 3の可変論理セルの構成を示す図であり、 第 1 3図はマルチプレクサの構成を示す回路図であり、 第 1 4図 (A) は、 2つの論理段数を持つ回路の一例を示す図 であり、 第 1 4図 (B) は第 1 4図 (A) の回路を構成するため にメモリブロック内に格納すべき論理データの一例を示す図であ り、
第 1 5図は第 4の可変論理セルの構成を示す図であり、 第 1 6図 (A) は 4入力 1出力の回路の一例を示す図であり、 第 1 6図 (B) は第 1 6図 (A) の回路を構成するためにメモリ プロック内に格納すべき論理データの一例を示す図であり、 第 1 7図は第 5の可変論理セルの構成を示す図であり、 第 1 8図は 2次元の初源メモリ論理空間が圧縮されるィメージ' を示す図であり、
第 1 9図はメモリブロックの端子配列の別の例を示す図であり 第 2 0図 (A) は三角形のメモリブロックを示す図であり、 第 2 0図 (B) は三角形の可変論理セルが配列された 2次元平面を 示す図であり、
第 2 1図 (A) は上面および下面に端子が配置されたメモリブ ロックを示す図であり、 第 2 1図 (B) は可変論理セルが 3次元 的に配置された様子を示す図であり、
第 2 2図は 3次元的に配置された可変論理セルの上下方向の断 面を示す図であり、
第 2 3図は S O Cのテストを説明するフローチャートであり、 第 2 4図は S O Cの構成を示す図であり、
第 2 5図 (A) 〜 (C) は F P G Aの構成を示す図である。
発明を実施するための最良の形態
第 1図において、 可変論理セル 1 0は、 四辺 1 2 a〜 l 2 dで 囲まれた領域に形成された方形のメモリブロック 1 1 と、 メモリ ブロック 1 1の四辺 1 2 a〜 1 2 dに沿って配置され、 メモリブ ロック 1 1 に対するデータ信号の入出力を切り換えるためのデー 夕セレクタ (D S E L) 1 6 a〜 1 6 dと、 D S E L 1 6 a〜 l 6 dの外側に配置され、 メモリブロック 1 1 に対するアドレス信 号の入力を選択するためのアドレスセレクタ (A S E L) 1 7 a 〜 1 7 dと、 D S E L 1 6 a〜 1 6 dと A S E L 1 7 a〜 1 7 d との間に配線され、 D S E L 1 6 a〜 1 6 dに外部入力データ信 号 e d 0〜e d l 1 を供給するための外部デ一夕バス 1 3 と、 同 じく D S E L 1 6 a〜 l 6 dと A S E L 1 7 a〜 l 7 dとの間に 配線され、 A S E L 1 7 a〜 1 7 dに外部入力ァドレス信号 e a 0〜 e a 1 1 を供給するための外部アドレスバス 1 4とからなる 。 外部入力データ信号 e d 0〜e d l lおよび外部入力ァドレス 信号 e a 0〜e a l lは、 データ書き込み時やテス トモ一ド時に 外部から入力される信号である。
メモリブロック 1 1は、 図示しないが、 複数のメモリセルトラ ンジス夕がマトリクス状に配置されるとともに、 複数のワード線 と複数のビッ ト線が格子状に配置されてなる公知の S RAMであ り、 アドレス信号のデコーダ回路やメモリセル卜ランジス夕から ビッ ト線に読み出された電位を増幅するセンスアンプ回路などを 備えている。 なお、 このデコーダ回路を、 配線により構成された ワイヤード ANDワイヤ一ド O Rなどの論理回路を用いて構成し 、 回路規模を削減するようにしてもよい。
メモリブロック 1 1は、 1 2個のアドレス入力端子 A O〜A 1
1 と、 1 2個のデータ入出力端子 D 0〜D 1 1 とが設けられてお り、 各辺にアドレス入力端子とデータ入出力端子とが混在し、 A 0 , D O , A l, D 1 , A 2 , D 2 , · · · , A l l , D l l と 、 それぞれ交互に並ぶように配列されている。 また、 辺 1 2 aに は端子 A 0〜 A 2および端子 D 0〜D 2が、 辺 1 2 bには端子 A 3〜 A 5および端子 D 3〜D 5が、 辺 1 2 cには端子 A 6〜 A 8 および端子 D 6〜 D 8が、 辺 1 2 dには端子 A 9〜 A 1 1および 端子 D 9〜D 1 1が各々配置されている。 なお、 アドレス入力端 子およびデータ入出力端子の数を各々 1 2個としたが、 この数は 任意であり、 例えば各々 8個や 1 6個としてもよい。 また、 メモ リブロック 1 1は S R A Mに限られず、 D RAM等のメモリを用 いてもよい。
D S E L 1 6 aは、 外部デー夕バス 1 3から入力される外部入 カデー夕信号 e d 0〜 e d 2をメモリブロック 1 1 に向けて出力 するか 、 若し <はメモリブ口ック 1 1から入力される内部データ 信号 i d 0〜 i d 2をメモリブロック 1 1から離反する方向に出 力する 。 7よ 、 その他の D S E L 1 6 b〜 1 6 dについても同様 である よノし 、 信号線 1 5が D S E L 1 6 a〜 1 6 dを直列に結 ぶように配線され、 この信号線 1 5を介して切り換え信号 T Sが 各 D S E L 1 6 a〜 1 6 dに入力されている。
A S E L 1 7 aは、 外部ァドレスバス 1 4から入力される外部 入力ァドレス信 e a 0 ~ e a 2をメモリブロック 1 1に向けて 出力するか、 若しくは他のメモリブロック 1 1から送られる内部 ア ドレス信号 i a 0〜 i a 2をメモリブロック 1 1 に向けて出力 する。 なお、 その他の A S E L 1 7 b〜 1 7 dについても同様で ある。 また、 信号線 1 5は A S E L 1 7 a〜 1 7 dをも直列に結 ぶように配線され、 信号線 1 5を介して切り換え信号 T Sが各 A
S E L 1 7 a〜 l 7 dに入力されている。
第 2図 (A) および (B) は、 D S E L 1 6 aの構成およびそ の機能について説明する図であり、 デ'一夕入出力端子 D 0に連結 される部分のみを示す。 D S E L 1 6 aは、 1つの端子 D Oに対 してトライステートバッファ (TR B UF) 1 8 a , 1 8 bを備 え、 T R B UF 1 8 aの出力にフリップフロップ (F F) 1 8 c が接続されている。 なお、 この F F 1 8 cはデータを一時的に保 持するものであるが、 これは必須ではないため設けなくてもよい T R B UF 1 8 a , 1 8 bは、 第 4図に示す真理値をとる論理 回路である。 T R B U F 1 8 aには切り換え信号 T Sが第 4図の "enable" 信号として入力され、 T R B U F 1 8 bには切り換え 信号 T Sの反転信号が第 4図の "enable" 信号として入力される 。 "enable" 信号が " 1 " であれば、 " i n" に入力されたデー 夕は " o u t " にそのまま出力され、 "enable" 信号が " 0 " で あれば " i n" に入力されたデータに係わらず " o u t " は不定 値 (ハイインピーダンス) " z " となる。
第 2図 (A) は、 切り換え信号 T Sが " 0 " の場合であり、 T R B U F 1 8 aには " 0 " 、 T R B U F 1 8 bには " 1 " が "en able" 信号として入力されるので、 T R B U F 1 8 bの入出力の みが有効となる。 このとさ、 外部データバス 1 3から D S E L 1 6 aに入力された外部入力データ信号 e d Oが T R B U F 1 8 b を介してメモリブロック 1 1のデ一夕入出力端子 D 0に入力され る。
第 2図 (B ) は、 切り換え信号 T Sが " 1 " の場合であり、 T R B U F 1 8 aには " 1 " 、 T R B U F 1 8 bには " 0 " が "en able" 信号として入力されるので、 T R B UF 1 8 aの入出力の
みが有効となる。 このとき、 メモリブロック 1 1から出力され D S E L 1 6 aに入力された内部データ信号 i d 0が T R B U F 1
8 aを介して F F 1 8 cにラッチされるとともに、 メモリブロッ ク 1 1から離反する方向に向けて (後述する隣接するメモリプロ ックに向けて) 出力される。 なお、 D S E L 1 6 a内のその他の データ入出力端子 D 1 , D 2に連結される部分についても同様で あり、 さらに、 他の D S E L 1 6 b〜 1 6 dの構成についても同 様である。
第 3図 (A) および (B) は、 A S E L 1 7 aの構成およびそ の機能について説明する図であり、 アドレス入力端子 A 0に連結 される部分のみを示す。 A S E L 1 7 aは、 1つの端子 A Oに対 してトライステ一トバッファ (T R B UF) 1 9 a , 1 9 bを備 え、 T R B U F 1 9 a , 1 9 bの出力にフリップフロップ (F F ) 1 9 cが接続されている。 なお、 この F F 1 9 cはデータを一 時的に保持するものであるが、 これは必須ではないため設けなく てもよい。
この T R B UF 1 9 a , 1 9 bも第 4図に示す真理値をとる論 理回路である。 T R B U F 1 9 aには切り換え信号 T Sが " enab le" 信号として入力され、 T R B U F 1 9 bには切り換え信号 T Sの反転信号が "enable" 信号として入力される。
第 3図 (A) は、 切り換え信号 T Sが " 0 " の場合であり、 T R B U F 1 9 aには " 0 " 、 T R B U F 1 9 bには " 1 " が "en able" 信号として入力されるので、 T R B U F 1 9 bの入出力の みが有効となる。 このとき、 外部アドレスバス 1 4から A S E L 1 7 aに入力された外部入力ァドレス信号 e a 0が T R B U F 1
9 を介して F F 1 9 cにラッチされるとともに、 メモリブロッ ク 1 1のアドレス入力端子 A Oに入力される。
第 3図 ( B ) は、 切り換え信号 T Sが " 1 " の場合であり、 T B U F 1 9 aには " 1 " 、 T R B U F 1 9 bには " 0 " が "en able" 信号として入力されるので、 T R B UF 1 9 aの入出力の みが有効となる。 このとき、 後述する隣接するメモリブロック 1 1から入力された内部ァドレス信号 i a 0が T R B U F 1 9 aを 介して F F 1 9 c にラッチされるとともに、 メモリブロック 1 1 のアドレス入力端子 A Oに入力される。 なお、 A S E L 1 7 a内 のその他のアドレス入力端子 A 1, A 2に連結される部分につい ても同様であり、 さらに、 他の 3 1 7 13〜 1 7 (1の構成に ついても同様である。
なお、 切り換え信号 T Sの論理を上記とは逆にし、 切り換え信 号 T Sが " 1 " の場合に外部入力データ信号 e a 0〜 e a 1 1お よび外部入力ァドレス信号 e a 0〜 e a 1 1 を選択し、 切り換え 信号 T Sが " 0 " の場合に外部入力データ信号 e a 0 ~ e a 1 1 および内部アドレス信号 e a O〜 e a 1 1 を選択するように D S E L I 6 a〜 l 6 dおよび A S E L 1 7 a〜 l 7 dを構成しても よい。
第 5図は、 以上のように構成された可変論理セル 1 0を平面内 に 2次元マトリクス状に並べ、 隣接する可変論理セル 1 0間を相 互に接続することにより構成した可変論理 L S I (半導体集積回 路) を示す。 外部ァドレスバス 1 4は各メモリブロック 1 1 に共 通に接続されており、 一方、 外部データバス 1 3は各メモリブ口 ック 1 1に独立に接続されている。
第 6図に隣接するメモリブロック 1 1間の接続手段の詳細を 示すように、 接続手段は、 あるメモリブロック 1 1のデータ入出 力端子 D n (n = 0〜 1 1 ) から出力された内部データ信号 i d η (η = 0〜 1 1 ) を、 隣接するメモリブロック 1 1のアドレス
指定を行う内部ァドレス信号 i a m (m= 0〜 1 1 ) としてアド レス入力端子 Am (m= 0〜 l 1 ) に入力するように構成されて いる。
具体的には、 あるメモリブロック 1 1の辺 1 2 aのデータ入出 力端子 D 0〜D 2は、 隣接するメモリブロック 1 1の辺 1 2 cの アドレス入力端子 A 8〜A 6に、 D S E L 1 6 aおよび A S E L 1 7 c を介してそれぞれ接続されている。 切り換え信号 T Sが " 1 " の場合には、 データ入出力端子 D 0〜D 2から D S E L 1 6 aを介して出力された内部デ一タ信号 i d 0〜 i d 2は、 隣接す るメモリブロック 1 1の内部アドレス信号 i a 8〜 i a 6 となつ て、 A S E L 1 7 cを介してアドレス入力端子 A 8〜 A 6にそれ ぞれ入力される。
また、 あるメモリブロック 1 1の辺 1 2 cのデータ入出力端子 D 6〜D 8は、 隣接するメモリブロック 1 1の辺 1 2 aのァドレ ス入力端子 A 2〜A 0に、 D S E L 1 6 Cおよび A S E L 1 7 a を介してそれぞれ接続されている。 切り換え信号 T Sが " 1 " の 場合には、 データ入出力端子 D 6〜D 8から D S E L 1 6 Cを介 して出力された内部データ信号 i d 6〜 i d 8は、 隣接するメモ リブロック 1 1の内部アドレス信号 i a 2〜 i a 0 となって、 A S E L 1 7 aを介してアドレス入力端子 A 2〜 A 0にそれぞれ入 力される。
縦方向に隣接するメモリブロック 1 1間の接続手段に関しても 同様であり、 辺 1 2 bのデ一夕入出力端子 D 3〜D 5は、 隣接す るメモリブロック 1 1の辺 1 2 dのアドレス入力端子 A 1 1〜 A 9に、 D S E L 1 6 bおよび A S E L 1 7 dを介してそれぞれ接 続され、 内部データ信号 i d 3〜 i d 5は、 それぞれ隣接するメ モリブロック 1 1のアドレス指定を行う内部アドレス信号 i a 1
3 一
l〜 i a 9 となっている。 また、 辺 1 2 dのデータ入出力端子 D 9 ~D 1 1は、 隣接するメモリブロック 1 1の辺 1 2 bのァドレ ス入力端子 A 5〜A 3に、 D S E L 1 6 dおよび A S E L 1 7 b を介してそれぞれ接続され、 内部データ信号 i d 9〜 i d 1 1 は 、 それぞれ隣接するメモリブロック 1 1のアドレス指定を行う内 部アドレス信号 i a 5〜 i a 3.となっている。
このように、 隣接する 2つのメモリブロック 1 1の対向する 2 辺 1 2 a , 1 2 c または 1 2 b, 1 2 dにおいて、 一方のメモリ プロック 1 1のアドレス入力端子が他方のメモリブロック 1 1の データ入出力端子に相互に接続されている。
第 7図は、 メモリブロック 1 1 に論理データを書き込み、 可変 論理セル 1 0をスィッチ回路 (接続変換器) として機能させるた めに、 アドレス入力端子 A 0〜A 1 1 とデ一夕入出力端子 D 0〜 D 1 1 とに与える信号の論理の一例を示す。 この書き込みは、 外 部データバス 1 3、 外部アドレスバス 1 4、 および信号線 1 5に 接続された図示しないパーソナルコンピュータ等の外部装置によ り制御される。 このとき、 前述したように切り換え信号 T Sが " 0 " とされて、 外部入力ァドレス信号 e a 0〜 e a 1 1および外 部入力データ信号 e d 0〜 e d 1 1が、 アドレス入力端子 A 0〜 A l lおよびデータ入出力端子 D 0〜D 1 1 に入力される。 例え ば、 同図に示すように、 端子 D 3〜D 5には、 端子 A O〜A 2 と 同一論理の信号が与えられる。 同図中の "X" は、 論理が " 0 " と " 1 " のどちらであっても良いことを意味し、 端子 D 0〜D 2 , D 6〜D 1 1に与えられる論理は任意である。
このような論理データがメモリブロック 1 1 に格納され、 切り 換え信号 T Sが " 1 " とされると、 左方に隣接する可変論理セル 1 0から左辺 1 2 aのアドレス入力端子 A O〜A 2に入力された
信号は、 同一論理のまま.、 下辺 1 2 bのデータ入出力端子 D 3〜 D 5から下方に隣接する可変論理セル 1 0に向けて出力されるこ ととなる。 なお、 ァドレス入力端子とデータ入出力端子との対応 を変えるように格納する論理データを変更することで、 ある 1つ の辺に入力された信号を辺 1 2 a〜 l 2 dのいずれの辺からでも 出力することができる。 例えば、 左辺 1 2 aに入力された信号を 反射するように、 同じく左辺 1 2 aから出力するといつたことも 可能となる。 このように、 可変論理セル 1 0は、 メモリブロック 1 1 に格納された論理データに基づいて信号の流れを切り換える ことのできるスィッチ回路として機能する。
第 8図は、 メモリブロック 1 1 に論理データを書き込み、 可変 論理セル 1 0を組み合わせ論理回路として機能させるために、 ァ ドレス入力端子 A 0〜A 1 1 とデータ入出力端子 D 0〜D 1 1 と に与える信号の論理の一例を示す。 書き込み制御に関しては上記 と同様である。 例えば、 同図に示すように、 端子 D 6には端子 A 0 , A 1の論理の論理積 (AND) が与えられ、 端子 D 7には端 子 A l , A 2の論理の論理和 (O R) が与えられ、 端子 D 8には 端子 A 0, A 2の論理の排他論理和 (E O R) が与えられる。
このような論理データがメモリブロック 1 1 に格納され、 切り 換え信号 T Sが " 1 " とされると、 左方に隣接する可変論理セル 1 0から左辺 1 2 aのアドレス入力端子 A 0〜 A 2に入力された 信号は、 上記の論理演算が行われて、 右辺 1 2 cのデータ入出力 端子 D 6〜D 8から右方に隣接する可変論理セル 1 0に向けて出 力されることとなる。 なお、 格納する論理データを変更すること で NAND、 N〇 R、 E N O Rなどの組み合わせ論理演算も行う ことができ、 アドレス入力端子とデータ入出力端子との対応関係 を変えることで、 同時に信号の入出力の方向を変えることができ
5 一
ることは言うまでもない。 このように、 2つ以上の異なる入力信 号に応じた論理データをメモリブロック 1 1に格納することによ つて、 可変論理セル 1 0は組み合わせ論理回路として機能する。 また、 例えば、 アドレス入力端子 A 0または A 1に入力された いずれかの信号と同一論理の信号を、 アドレス入力端子 A 2に入 力される信号 (選択信号) に応じて、 データ入出力端子 D 6から 出力させるように論理データを生成し、 その論理データをメモリ ブロック 1 1に格納することにより、 可変論理セル 1 0を、 複数 の入力信号から 1つを選んで出力端子から出力する入力選択型の マルチプレクサとして機能させることも可能である。
さらに、 例えば、 7ドレス入力端子 A 0に入力された信号と同 一論理の信号を、 アドレス入力端子 A 1 に入力される信号 (選択 信号) に応じて、 デ一夕入出力端子 D 6または D 7のいずれかか ら出力させるように論理データを生成し、 その論理データをメモ リブロック 1 1 に格納することにより、 可変論理セル 1 0を、 入 力信号を複数の出力端子から 1つを選んで出力する出力選択型の マルチプレ.クサとして機能させることも可能である。
また、 その他、 可変論理セル 1 0に格納する論理データにより 、 1入力他出力の回路等も構成することが可能である。
このように、 可変論理セル 1 0は、 メモリブロック 1 1 に格納 する論理データによって、 スィッチ回路、 組み合わせ論理回路、 マルチプレクサなどとして機能するように論理変換を行う。
第 9図は、 上記とは別の形態の可変論理セル 2 0の構成を示す 。 可変論理セル 2 0は、 前述の可変論理セル 1 0の D S E L 1 6 a〜 l 6 dおよび A S E L 1 7 a〜 l 7 dの代わりに、 デ一タレ ジス夕 (D R E G) 2 1 a〜 2 1 dおよびアドレスレジスタ ( A R E G) 2 2 a〜 2 2 dを用いたものである。 この D R E G 2 1
6 一
a〜 2 1 dと AR E G 2 2 a〜 2 2 dには、 例えば J TAG (Jo int Test Action Group ) により提唱されているような、 2つの 回路ブロック間に設けられて 2つの回路ブロック間の信号の並列 転送を可能にするとともに、 スキャンパス 2 3を介してスキャン インされたデータをラッチして、 シフト動作でデータをスキャン アウトさせることが可能な境界スキャン回路で構成される。
D R E G 2 1 a ~ 2 1 dは、 メモリブロック 1 1から読み出さ れる内部データ信号 i d 0〜 i d 1 1を隣接するメモリブロック 1 1に並列に出力する、 AR E G 2 2 a〜 2 2 dは、 隣接するメ モリブロック 1 1から出力された内部データ信号 i d 0〜 i d 1 1 を内部アドレス信号 i a 0〜 i a l 1 としてメモリブロック 1 1 に並列に入力する。 このパラレル動作の他に、 D R E G 2 1 a 〜 2 1 dは、 スキヤンパス 2 3を介して外部からスキャンインさ れるシリアルな外部入力データ信号 e d 0〜 e d l 1 をシフ トさ せて順次スキャンアウトし、 AR E G 2 2 a〜 2 2 dは、 同じく スキャンパス 2 3を介して外部からスキャンインされるシリアル な外部入力ァドレス信号 e a 0〜 e a l l をシフ トさせて順次ス キャンアウトするシフ トレジスタの機能を有するように構成され ている。 スキャンパス 2 3を介して外部装置から外部ァドレス信 号入力、 外部データ信号入力が行われるので、 第 1図に示した外 部データバス 1 3および外部ァドレスバス 1 4を設ける必要がな く、 可変論理セル 2 0のサイズを可変論理セル 1 0より小さくで きることが期待される。
第 1 0図は、 D R E G 2 1 a〜 2 1 dぉょびAR E G 2 2 a〜 2 2 dの具体例としてシフ ト動作と双方向入出力が可能なレジス 夕を示す。 このシフタブルレジス夕は、 3つのフリ ップフロップ F F 0〜F F 2を備え、 各フリ ップフロップ F F 0〜F F 2のデ
一夕入力端子の前段には、 マルチプレクサ M U X 0〜 M U X 2が 設けられている。 マルチプレクサ MUX 0〜MUX 2は、 制御信 号 MUX— S E Lに応じて、 スキャンインデータ S C AN— I N 、 または、 デ一夕端子 I /O— 0〜 1 / 0— 2若しくは I ZO— 3〜 I Z〇一 5のデータのうちいずれかを選択する。 また、 制御 信号 D I R E C T I ONによって信号の入出力の方向が切り換え られる。 なお、 シフ ト動作は各フリ ップフロップ F F 0〜: F F 2 に入力されるクロック信号 F F C L Kによって制御される。 スキ ャンィンデータ S C AN— I Nは、 クロック信号 F F C L Kに応 じて F F 0→F F 1→F F 2の順にシフ トされ、 スキャンアウ ト データ S CAN— OUTとして出力される。
さらに、 D R E G 2 1 a〜 2 1 dのフリップフロップ F F 0〜 F F 2は、 後述するカウンタ回路等の順序論理回路を構成する際 に用いられる他、 メモリブロック 1 1 として D R A Mが使用され た場合に、 この D RAMが行うリフレッシュ (電気的な記憶保持 動作) 期間にデータを保持して行うァドレス動作にも用いられる 可変論理セル 2 0は、 前述の可変論理セル 1 0と同様に平面内 に 2次元マトリクス状に並べられ、 隣接する可変論理セル 2 0間 が相互に接続されることにより可変論理 L S Iが構成される。 ま た、 隣接する可変論理セル 2 0間のデータ入出力端子 D 0〜D 1 1 とアドレス入力端子 A 0〜A 1 1 とは、 第 6図と同様に隣接す る可変論理セル 2 0間で対向するデータ入出力端子とァドレス入 力端子とがデータレジスタおよびァドレスレジス夕を介して接続 される。 さらに、 可変論理セル 2 0は、 メモリブロック 1 1 に格 納する論理データによってスィッチ回路、 組み合わせ論理回路、 またはマルチプレクサのいずれかとして機能して論理変換を行う
また、 可変論理セル 2 0のスキャンアウトデータが、 隣接する 可変論理セル 2 0のスキャンインデータとなるようにスキャンパ ス 2 3が順に接続されている。 これにより、 メモリプロック 1 1 のテス トモードにおいて、 メモリブロック 1 1から読み出された 内部データ信号 i d 0〜 i d l lを D R E G 2 1 a〜 2 1 dに取 り込んでシフ トし、 スキャンァゥ卜させることでメモリブロック 1 1内の不良ビッ トが容易に検出される。 そして、 この不良ビッ トを有するメモリプロック 1 1が明らかになれば、 その可変論理 セル 2 0を除いて正常な可変論理セル 2 0のみを用いて論理回路 を構成するようにすればよい。
以上のように、 可変論理セル 1 0 または可変論理セル 2 0で構 成された可変論理 L S I は、 さらに、 可変論理セルで構成される 組み合わせ論理回路の出力から入力に、 他の可変論理セルで構成 される複数のスィッチ回路によって信号経路を生成して帰還をか けることによって、 カウンタ回路等の順序論理回路が構成され、 その結果、 任意の論理回路を実現することができる。 従って、 ス イッチ回路を他の論理回路と区別せず、 任意の可変論理セルで構 成できるため、 所望の論理機能を有する論理回路を可変論理セル のマトリクス平面内のどの場所にでも自由に構成することができ 、 信号の経路や方向性も自由に定めることができる。
第 1 1図は、 可変論理セル 2 0で構成された可変論理 L S I に おいて、 所望の論理回路を構成するための具体的な手順を示す。 まず、 従来と同様に所望の論理機能を C言語で記述した設計デー タを作成し、 この設計データを HD Lなどの言語で記述されたデ 一夕に変換する。 ここで、 C言語による機能設計を省略して直接 H D Lで記述して設計デ一夕を作成してもよい。 次に、 HD Lで
記述された設計データから論理合成を行って、 ゲートレベルで表 現したデータに変換する。 そして、 ゲートレベルの設計デ一夕を 順序論理回路と組み合わせ論理回路に分離する。
続いて、 順序論理回路に使用する可変論理セル 2 0を決定する 。 組み合わせ論理回路については、 所望の論理を構成する可変論 理セル 2 0を決定する。 そして、 決定された上記可変論理セル 2 0間を接続するのに使用するスィッチ回路としての可変論理セル
2 0を決定する。 その後、 各セル内のメモリプロック 1 1に格納 するための論理データを生成し、 生成された論理データと、 メモ リブロック 1 1の所定の番地に書き込むためのァドレス信号とを 、 スキャンパス 2 3を介して各メモリブロック 1 1 に転送するの に適したビッ トス トリームに変換する。 そして、 そのビッ 卜ス 卜 リームをスキャンパス 2 3から転送し、 対応するメモリブロック 1 1 に格納する。 これによつて、 所望の論理機能を有する論理回 路が構築される。
ただし、 可変論理セル 1 0で構成された可変論理 L S I の場合 には、 スキャンパス 2 3は設けられていないので、 上記のビッ ト ス トリームを生成せずに、 論理デ一夕を外部データバス 1 3およ び外部ァドレスバス 1 4を介して各メモリブロック 1 1 に書き込 むこととなる。
次に、 第 1 2図は、 搭載される論理の圧縮を可能とする可変論 理セル 3 0を示す。 この可変論理セル 3 0には、 AR E G 2 2 a 〜 2 2 dの外側に沿つてマルチプレクサ (MUX) 3 1 a〜 3 1 dが設けられている。 メモリプロック 1 1 を挟むように横方向に 配置された MUX 3 1 aとMUX 3 1 c とは帰還信号線 3 2 a〜
3 2 f により互いに出力と入力の間で帰還がかけられ、 メモリブ ロック 1 1を挟むように縦方向に配置された MUX 3 1 bと MU
X 3 1 dとは帰還信号線 3 3 a〜 3 3 f により互いに出力と入力 の間で帰還がかけられている。 なお、 この可変論理セル 3 0は、 第 1図に示した可変論理セル 1 0を用いて構成することもできる 。 この場合には、 可変論理セル.3 0の D R E G 2 1 a〜 2 1 dは D S E L 1 6 a〜 1 6 dによって置き換えられ、 AR E G 2 2 a 〜 2 2 dは A S E L 1 7 a〜 l 7 dによって置き換えられる。 第 1 3図は、 メモリブロック 1 1 を横方向に挟む MUX 3 1 a , 3 1 cの構成を示す。 MUX 3 1 a, 3 1 cは、 それぞれ 2つ の AND回路と 1つの O R回路とからなる回路部 3 4 a, 3 4 c と、 2つの AND回路からなる回路部 3 5 a, 3 5 c とを有する 。 回路部 3 4 a, 3 4 cは、 各アドレス入力端子毎に 1つずっ設 けられており、 回路部 3 4 a, 3 4 cの出力部は、 AR E G 2 2 a , 2 2 c を介してアドレス入力端子 A 0〜 A 2, A 6〜A 8に それぞれ接続されている。 また、 回路部 3 5 a , 3 5 cは、 各デ 一夕入出力端子毎に 1つずつ設けられており、 データ入出力端子 D 0〜D 2 , D 6〜D 8は、 D R E G 2 1 a, 2 1 c を介して回 路部 3 5 a, 3 5 cの入力部に接続されている。
ただし、 辺 1 2 aのアドレス入力端 A 0〜 A 2のうち 1つ (例 えば端子 A 2 ) は、 AR E G 2 2 aを介して MUX 3 1 a内の制 御信号線 3 6 aに接続されている。 この制御信号線 3 6 aは、 各 回路部 3 4 a , 3 5 aの 2つの A N D回路の入力端子に接続され ており、 一方の AND回路には論理が反転されるようにして接続 されている。 また、 辺 1 2 aのデータ入出力端子 D 6〜D 8のう ち 1つ (例えば端子 D 6 ) は、 D R E G 2 1 Cを介して MUX 3 1 c内の制御信号線 3 6 cに接続されている。 この制御信号線 3 6 cは、 各回路部 3 4 c , 3 5 cの 2つの AND回路の入力端子 に接続されており、 一方の AND回路には論理が反転されるよう
にして接続されている。
回路部 3 5 cは、 制御信号線 3 6 cの論理が " 1 " のときには データ入出力端子 D 8から読み出された内部データ信号 i d 8 を そのまま向きを変えずに隣接する他の可変論理セル 3 0に転送し 、 制御信号線 3 6 c の論理が " 0 " のときには内部データ信号 i d 8を帰還信号線 3 2 aを介して MU X 3 1 aに転送する。 この 帰還信号線 3 2 aを介して転送された内部データ信号 i d 8は、 回路部 3 4 aに入力される。 このとき制御信号 3 6 aの論理が " 0 " であれば、 内部デ一タ信号 i d 8はそのメモリブロック 1 1 の自己のアドレス入力端子 A 0に帰還される。 一方、 制御信号線 3 6 aの論理が " 1 " であれば、 隣接する他の可変論理セル 3 0 から転送された内部ァドレス信号 i a 0がアドレス入力端子 A 0 に転送される。
なお、 回路部 3 5 a, 3 4 cに関しても同様であり、 制御信号 線 3 6 a , 3 6 c の論理が " 0 " のときには、 データ入出力端子 D 0から読み出された内部データ信号 i d 0は帰還信号線 3 2 b を介して自己のアドレス入力端子 A 8に帰還され、 制御信号線 3 6 a , 3 6 cの論理が " 1 " のときには、 隣接する可変論理セル 3 0 との間で内部データ信号 i d 0または内部ァドレス信号 i a 8が転送される。 図示しないが、 その他の端子に接続される回路 部についても同様である。 また、 図示しないが、 メモリブロック 1 1を縦方向に挟む MUX 3 1 b , 3 1 dの構成は MUX 3 1 a , 3 1 c と同様である。
可変論理セル 3 0は、 前述の可変論理セル 1 0 と同様に平面内 に 2次元マトリクス状に並べられ、 隣接する可変論理セル 3 0間 が相互に接続されることにより論理の圧縮を可能とする可変論理 L S Iが構成される。 第 1 4図 (A) は、 論理段数 α, iSで構成
される 2段の論理回路の一例を示す。 論理段数 において、 入力 された内部ァドレス信号 i a 0 , i a 1がそれぞれ N AND回路 3 7 aおよび N O R回路 3 7 bによつて論理演算され、 フリ ップ フロップ 3 7 cにラッチされる。 そして、 論理段数 /3において、 フリ ップフロップ 3 7 cにラッチされたデータのうち NAND回 路 3 7 aの出力データはインバータ 3 8 aによって反転されてフ リ ップフロップ 3 8 bにラッチされ、 N O R回路 3 7 bの出力デ 一夕はそのままの論理でフリップフロップ 3 8 bにラッチされ、 それぞれ内部データ信号 i d 8 , i d 7 として出力される。
このような 2つの論理段数を有する回路の論理を表現するには 、 可変論理セル 1 0または 2 0を用いた場合には 2つの可変論理 セルを組み合わせる必要があるが、 上記の様に構成された可変論 理セル 3 0を用いた場合には 1つの可変論理セルで表現すること ができる。 第 1 4図 (B ) は、 第 1 4図 (A) の回路の論理を表 現するために可変論理セル 3 0内のメモリブロック 1 1 に書き込 まれるべき論理データを示す。 制御信号線 3 6 a , 3 6 cを同一 の論理とするために、 データ入出力端子 D 6にはアドレス入力端 子 A 2 と同一論理の信号が与えられる。 すなわち、 端子 A 2の論 理が " 0 " の場合には論理段数 αの演算がなされるとともに、 デ 一夕入出力端子からアドレス入力端子に帰還がかかり、 そして端 子 A 2の論理が " 1 " となると論理段数 /3の演算がなされて出力 が行われる。 このように、 端子 A 2 , D 6は、 論理演算には用い られず、 MUX 3 1 a, 3 1 cの切り換え制御に用いられている メモリブロック 1 1に所望の論理を搭載する場合、 全ての端子 が論理変換に使用されれば論理の搭載効率は良いが、 全ての端子 が使用されるとは限らず、 いくつかの端子は未使用で余分となる
ことがある。 この未使用の端子を上記の端子 A 2 , D 6のように して用いれば、 複数の論理段数を 1つの可変論理セル 3 0で表現 することができ、 1つの可変論理セルへの論理搭載効率を上げる ことができる。 なお、 横方向の論理圧縮について説明を行ったが 、 MU X 3 1 b , 3 1 dを用いることにより縦方向の論理圧縮も 同様に行うことができる。
次に、 第 1 5図は、 アドレス入力端子とデータ入出力端子と 各々 2段のフリップフロップに接続された可変論理セル 4 0を示 す。 この可変論理セル 4 0は、 可変論理セル 2 0の A R E G 2 2 a〜 2 2 dの外側に沿って、 内部データ信号 i d 0〜 i d 8 をラ ツチするためのフリップフロップ ( D F F ) 4 1 a〜 4 1 dが配 置され、 さらにその外側に沿って内部アドレス信号 i a 0〜 i a 8をラッチするためのフリップフロップ (AF F) 4 2 a〜 4 2 dが配置されたものである。 D R E G 2 1 a〜 2 1 dおよび AR E G 2 2 a〜 2 2 dは、 シフ ト動作を行わない場合は、 信号を並 列転送させる通常のフリップフロップとなるので、 D R E G 2 1 a〜 2 1 dと D F F 4 1 a〜 4 1 dは、 セル間で内部デ一タ信号
1 d 0〜 i d 8を並列に転送する 2段のフリップフロップとして 機能し、 A R E G 2 2 a〜 2 2 dと A F F 4 2 a〜 4 2 dは、 セ ル間で内部アドレス信号 a d 0〜 a d 8を並列に転送する 2段の フリ ップフロップとして機能する。 なお、 各フリップフロップに は、 クロック信号が入力されているが図示を省略している。 また 、 この可変論理セル 4 0は、 第 1図に示した可変論理セル 1 0を 用いて構成することもできる。 この場合、 D R E G 2 1 a〜 2 1 dは D S E L 1 6 a〜 1 6 dによって置き換えられ、 AR E G 2
2 a〜 2 2 dは A S E L 1 7 a〜 l 7 dによって置き換えられる
このように構成された可変論理セル 4 0は、 前述の可変論理セ ル 1 0 と同様に平面内に 2次元マトリクス状に並べられ、 隣接す る可変論理セル 4 0間が相互に接続されることにより、 使用する 端子数を削減することが可能な可変論理 L S Iが構成される。 第 1 6図 (A) は、 2入力 i n l, i n 2の NAND回路 4 3 aと 、 2入力 i n 3, i n 4の AND回路 4 3 bと、 NAND回路 4 3 aおよび AND回路 4 3 bの出力データ 0 u t 1, o u t 2を ラッチするフリ ップフロップ 4 3 c とからなる 4入力 2出力の回 路を示す。 可変論理セル 1 0または 2 0を用いてこの回路を構成 しょうとすると、 各辺 1 2 a〜 l 2 dにはアドレス入力端子が各 々 3つずつしか設けられていないため、 4入力を実現するために は少なく とも 2つの辺のアドレス入力端子を同時に使用するか、 または 2つの可変論理セル 1 0または 2 0を用いる必要がある。 上記のように構成された可変論理セル 4 0を用い、 第 1 6図 ( B ) に示す論理データをメモリブロック 1 1内に書き込むことに より、 1つの可変論理セル 4 0で第 1 6図 (A) の回路を実現す ることができる。 第 1 6図 (B) の論理データによると、 可変論 理セル 4 0は、 端子 A 2に与えられた内部アドレス信号 i a 0の 論理が " 0 " の場合には、 端子 A 0, A 1に与えられた内部ァド レス信号 i a 0, i a 1 (上記 i n l, i n 2 ) の NAND論理 演算を行い、 演算結果を端子 D 8から内部データ信号 i d 8 (上 記 o u t l ) として出力する。 端子 A 2に与えられた内部アドレ ス信号 i a 0の論理が " 1 " の場合には、 端子 A 0, A 1 に与え られた内部アドレス信号 i a 0 , i a 1 (上記 i n 3, i n 4) の NO R論理演算を行い、 演算結果を端子 D 8から内部デ一夕信 号 i d 8 (上記 o u t 2 ) として出力する。
従って、 内部ァドレス信号 i a 2が " 0 " と " 1 " のそれぞれ
の場合において、 内部アドレス信号 i a 0〜 i 2を八? 1^ 4 2 aおよび AR E G 2 2 aに順次入力してラッチさせるとともに、 メモリブロック 1 1の一辺 1 2 aに配列された端子 A 0〜A 2に 入力し、 辺 1 2 cの端子 D 8から演算結果を示す内部データ信号 i d 8を順次出力して D R E G 2 1 cおよび D F F 4 1 cにラッ チさせるとともに、 順にデータ o u t 1 , o u t 2がシリアルに 出力される。 このように、 可変論理セル 4 0を用いると、 3入力 1出力の端子数で第 1 6図 (A) の回路を実現することができる 第 1 7図に示した可変論理セル 5 0は、 可変論理セル 3 0 と可 変論理セル 4 0の構成を兼ね備えており、 アドレス入力端子とデ 一夕入出力端子とがそれぞれ 2段のフリップフロップに接続され 、 自己のアドレス入力端子とデータ入出力端子との間で帰還がか けられる。 この可変論理セル 5 0を用いると、 論理の搭載効率を さらに高めることができる。
第 1 8図は、 デ一夕入出力端子とァドレス入力端子との間に帰 還経路を有する可変論理セル 3 0または 5 0で作られる 2次元の 初源メモリ論理空間が圧縮されるイメージを示す。 初源メモリ空 間は、 上記の自己のァドレス入力端子とデ一夕入出力端子との間 での帰還により、 横方向および縦方向へと折り畳まれ、 圧縮され たメモリ論理空間となる。
なお、 上記実施形態では、 メモリブロック 1 1の各辺 1 2 a〜 1 2 dにァドレス入力端子とデータ入出力端子とが交互に並ぶよ うに配置したが、 必ずしも 1端子毎に交互に並べる必要はなく、 各辺にアドレス入力端子とデータ入出力端子とが共に設けられて いればよい。 例えば、 第 1 9図 (A) に示すように、 アドレス入 力端子とデータ入出力端子を各々 2端子ずっセッ トにして各辺 1
2 a ~ 1 2 dに配置してもよいし、 第 1 9図 (B ) に示すように 、 各辺 1 2 a〜 1 2 dにおいてアドレス入力端子とデータ入出力 端子を 2つにグループ分けして配置するようにしてもよい。 この とき、 各端子は隣接するメモリブロック 1 1間でアドレス入力端 子とデ一タ入出力端子とが対向するように配置されればよい。
また、 上記実施形態では、 メモリブロック 1 1 を四辺 1 2 a〜 1 2 dで囲まれた方形としたが、 これに代えて、 メモリブロック 1 1 を第 2 0図 (A ) に示すような 3辺で囲まれた三角形として もよい。 このメモリブロック 1 1 を備えた可変論理セル 1 0 , 2 0 , 3 0, 4 0, 5 0のいずれかを三角形にして、 第 2 0図' (B ) のように 2次元平面状にセルを敷き詰めると、 可変論理 L S I が構成される。 この三角形のメモリブロック 1 1は、 メモリ容量 が小さい場合、 すなわち端子数が少ない場合に各辺へ端子を効率 よく配置することができる。 また、 その三角形の形状により斜め 方向への信号伝達を短い経路で効率よく行うことができる。 さら には、 メモリブロック 1 1を五角形以上の多角形とすることがで きることは言うまでもない。 このように、 メモリ容量を考慮して メモリブロック 1 1の形状およびその配置を決定することにより 、 論理の搭載効率をさらに高めることができる。
また、 上記実施形態では、 可変論理セルを 2次元平面内に配置 するように相互に端子間を接続したが、 これに代えて、 可変論理 セルを 3次元的に配置するようにしてもよい。 例えば、 第 2 1図 ( A ) に示すように、 アドレス入力端子およびデータ入出力端子 をメモリブロック 1 1の四辺 1 2 a〜 1 2 dの他、 メモリブロッ ク 1 1が備える上面 1 2 eおよび下面 1 2 f にも配置する。 そし て、 第 2 1図 (B ) に示すように、 このメモリブロック 1 1を備 えた可変論理セル 1 0, 2 0 , 3 0 , 4 0, 5 0のいずれかを 2
次元平面状に敷き詰め、 メモリブロック 1 1間の辺 1 2 a〜 1 2 dを相互に配線し、 この 2次元平面状の可変論理セルを複数個積 層するようにして上下に隣接するメモリブロック 1 1間の上面 1 2 e と下面 1 2 f の間を配線する。
第 2 2図の断面図に示すように、 対向する端子 A 4 , D 5間、 および端子 A 5 , D 4間の接続が行われる。 図示しないが、 これ らの端子間に前述のデータセレクタおよびアドレスセレクタ、 ま たは、 前述のデータレジスタおよびァドレスレジス夕が介装され 、 さらには前述のマルチプレクサゃフリップフ口ップが介装され る。 これにより、 上下方向 (積層方向) への論理の圧縮も可能と なる。
さらに、 上記実施形態では、 1つの可変論理セル 3 0内にデー タ入出力端子から自己のアドレス入力端子に帰還をかけるための MUX 3 1 a〜 3 1 dを設けたが、 この MUX 3 1 a〜 3 1 dは 、 複数の可変論理セル 1 0 (または 2 0 ) を用いて構成されるよ うにしてもよい。 可変論理セル 1 0 (または 2 0 ) では、 各端子 に 1つのフリップフ口ップが接続されているため、 少なく とも 5 つの可変論理セル 1 0 (または 2 0 ) を用いることで、 第 1 7図 に示した、 各端子に 2段のフリップフロップが接続され、 かつデ 一夕入出力端子から自己のアドレス入力端子に帰還経路を有する 可変論理セル 5 0を構成することができる。
以上の可変論理 L S I は、 L S Iチップの自己テス トに利用可 能である。 つまり、 最近の S O C (System on Chip) では、 内蔵 メモリがチップ全体の 5 0〜 8 0 %を占めているため、 L S Iチ ップに内蔵されるメモリを利用することで効率よく 自己テス トを 行うことが期待できる。
第 2 3図のフローチャートを用いて第 2 4図に示す S O C 6 0
のテス ト方法を説明する。 S O C 6 0には、 内蔵メモリ 6 1 を構 成する S R AM 6 1 aとして上記の可変論理セル 1 0, 2 0 , 3 0 , 4 0 , 5 0のいずれかが用いられている。
まず、 一部の S RAM 6 1 aを用いて他の S RAM 6 1 aをテ ス トするためのテストパターンを発生する AL P G (Algorithmi c Pattern Generator ) を Ή D L記述によって構成する。 これに より、 他の S R AM 6 1 aをテストし、 テス ト結果を判定する。 テス ト結果がフェイルであれば、 フェイル信号を発生してテス ト を終了する。 一方、 テスト結果がパスと判定された場合には、 こ のテストされた S RAM 6 1 aを含めた S RAM 6 1 aにより、 ロジック回路部分をテス トするためのテスト回路を HD L記述に よつて構成するとともに、 そのテス トパターンを格納するメモリ を上記テス トをパスした S RAM 6 1 aで構成する。 このメモリ にテス トパターンを記述して、 ユーザロジック回路 6 2や C P U 6 3をテス トする。 このテス 卜にフェイルすると、 フェイル信号 を発生してテス トを終了する。
このテス トをパスした場合には、 一部の S R A M 6 1 aに D R AM 6 4のテス トパターンを生成する AL P Gを構成し、 かつ他 の S RAM 6 1 aを用いてそのテスト結果を格納するフェイルメ モリを構成する。 そして、 C P U 6 3に D R AM 6 4の救済アル ゴリズムをロードして、 AL P Gで D RAM 6 4をテス トすると .ともに、 救済ビッ ト線 6 4 aによる不良ビッ トのビッ ト救済を実 施する。 D RAMがこのテストをフェイルし、 かつ救済不可能で あれば、 フェイル信号を発生してテス トを終了する。 一方、 テス トをパスした場合には、 テスト回路を構成した S RAM 6 1 aを 通常のメモリとし、 S O C 6 0の記憶装置として動作させる。
以上はテス トにおける可変論理セルの活用であるが、 可変論理
セル 1 0, 2 0 , 3 0 , 4 0, 5 0のいずれかで構成された内蔵 メモリ 6 1を、 テスト時以外の通常動作時もプログラマブルデバ イスとして使用し、 S〇 C 6 0をプログラマブルデバィス内蔵の L S Iチップとすることもできる。 また、 複数の C P Uをこの可 変論理セルで連結して構成した S O Cも考えられ、 これにより並 列演算等の処理を高速化することができる。 さらに、 本発明を S I P (System In Package) などへ応用することもできる。
また、 この可変論理 L S I は、 コンピュータの記憶装置や演算 装置に利用できる。 現在の一般のコンピュータは、 入力装置 (キ 一ボード) 、 出力装置 (C RTディスプレイ) 、 記憶装置 (主メ モリやキャッシュメモリやレジスタ) 、 演算装置 (AL U) など で構成されている。 このコンピュータでは、 主メモリ と AL Uと の間に高速のキャッシュメモリとレジスタを配置して、 その間の データ転送を高速に行わせ、 演算処理の高速化を図っている。 こ れは、 A L Uの演算処理以外に各記憶装置間のアドレス演算が必 要であることを意味し、 高速処理に対する弊害となっている。 そ こで、 この可変論理 L S I をコンピュータに適用すると、 上記の 記憶装置と演算装置を一体に構成することができ、 各記憶装置間 のアドレス演算の必要がなくなるので、 演算処理の高速化を期待 することができる。
本発明の半導体集積回路は、 第 1のメモリブロックの第 1辺の 少なく とも 1つのアドレス入力端子を、 隣接する第 2のメモリブ ロックの対向する辺のデータ入出力端子に接続し、 第 1のメモリ ブロックの第 1辺の少なくとも 1つのデ一夕入出力端子を、 第 2 のメモリブロックの対向する辺のアドレス入力端子に接続するよ うにしたので、 1つのメモリブロックは、 外部装置により書き込 まれる論理データにより、 スィッチ回路や組み合わせ論理回路と
して動作し、 また複数のメモリブロックは順序論理回路として動 作することもできる。 これにより、 本発明の半導体集積回路は、 論理ブロックとスィッチ回路の区別をなく したフレキシブルな可 変論理セルにより構成され、 所望の論理回路を効率よく構成する ことができる。
また、 メモリブロックの自己のデータ入出力端子からアドレス 入力端子へ内部データ信号の帰還を行うようにしたことにより、 搭載される論理の圧縮を行うことができ、 各メモリブロックの容 量を節約することが可能となる。
さらに、 本発明の半導体集積回路は、 大部分がメモリブロック によって構成されるため、 従来のメモリデバイスと同様な 2層配 線程度のプロセスで製造することが可能となり、 少なく とも 5層 配線を要した F P G Aに比して製造コストが安価であるという利 点がある。 産業上の利用可能性
本発明の半導体装置は、 F P G Aのようなフィードで論理をプ ログラム可能なロジック I Cとして利用できる他に、 S〇 Cなど の内蔵メモリゃコンピュー夕の記憶装置や演算装置にも'利用でき る。