JP6485225B2 - プログラマブル論理集積回路 - Google Patents

プログラマブル論理集積回路 Download PDF

Info

Publication number
JP6485225B2
JP6485225B2 JP2015109907A JP2015109907A JP6485225B2 JP 6485225 B2 JP6485225 B2 JP 6485225B2 JP 2015109907 A JP2015109907 A JP 2015109907A JP 2015109907 A JP2015109907 A JP 2015109907A JP 6485225 B2 JP6485225 B2 JP 6485225B2
Authority
JP
Japan
Prior art keywords
wiring
variable resistance
programmable logic
integrated circuit
resistance change
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.)
Expired - Fee Related
Application number
JP2015109907A
Other languages
English (en)
Other versions
JP2016225797A (ja
Inventor
あゆ香 多田
あゆ香 多田
崎村 昇
昇 崎村
幸秀 辻
幸秀 辻
旭 白
旭 白
竜介 根橋
竜介 根橋
信 宮村
信 宮村
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 JP2015109907A priority Critical patent/JP6485225B2/ja
Publication of JP2016225797A publication Critical patent/JP2016225797A/ja
Application granted granted Critical
Publication of JP6485225B2 publication Critical patent/JP6485225B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)
  • Logic Circuits (AREA)

Description

本発明は抵抗変化素子を備えたプログラマブル論理集積回路に関する。
一般に、半導体集積回路は、半導体基板に形成された多数のトランジスタと、半導体基板の上層に形成された、各トランジスタを接続するための配線層とを備える。通常、各トランジスタを接続するための配線パターンは半導体集積回路の設計段階で決められており、半導体集積回路の製造後にトランジスタどうしの接続を変更することはできない。
一方、FPGA(Field Programmable Gate Array)等のプログラマブル論理集積回路は、製造後であっても内部に備える複数の論理演算回路(ロジックブロック)の接続が変更可能な構成である。そのため、ユーザは、複数のロジックブロックを任意に組み合わせることで、プログラマブル論理集積回路内に所望の論理回路を形成できる。所望の論理回路を形成するために必要な情報(構成情報)はプログラマブル論理集積回路が備えるメモリ素子で保存される。構成情報を記憶するメモリ素子には、SRAM(Static Random Access Memory)セル、アンチフューズ、フローティングゲートMOSトランジスタ等が用いられる。
これらのメモリ素子やロジックブロックどうしを変更可能に接続するスイッチは、通常、多数のトランジスタから成るロジックブロックと同層に形成されるため、大きな面積オーバヘッド要因となる。そのため、プログラマブル論理集積回路のチップ面積が大きくなり、製造コストが上昇する。また、メモリ素子やスイッチのレイアウト面積が大きくなることで、チップ面積に占めるロジックブロックの割合が低下する。
そこで、レイアウト面積の増大を抑制しつつ製造後のロジックブロックどうしの接続を変更可能にするスイッチとして、配線層に形成可能な抵抗変化素子を用いたプログラマブル論理集積回路が提案されている。例えば、特許文献1及び2に記載されたプログラマブル論理集積回路は、第1の配線層と、その上部に形成される第2の配線層との間に、金属イオンを含有する固体電解質材料から成る抵抗変化素子が配置された構成である。抵抗変化素子は、その両端に順方向あるいは逆方向にバイアス電圧を印加することで抵抗値を変化させることが可能であり、低抵抗状態(オン状態)と高抵抗状態(オフ状態)との比が10の5乗あるいはそれ以上となる。すなわち、当該抵抗変化素子は、第1の配線と第2の配線とを電気的に接続または切断するスイッチとして機能する。
背景技術のプログラマブル論理集積回路における配線の接続及び切断には、メモリ素子であるSRAMセルと、スイッチ機能を備えた1つのトランジスタとを有するスイッチセルとが利用されている。一方、抵抗変化素子は、メモリ機能とスイッチ機能の両方を備えているため、一つの抵抗変化素子でスイッチセルを実現できる。
特許文献1によれば、第1の配線群と、該第1の配線群と交差する第2の配線群との各交点に抵抗変化素子を配置することで、第1の配線群の任意の配線と第2の配線群の任意の配線とを接続または切断できるクロスバスイッチをコンパクトなサイズで実現できる。その結果、チップ面積の大幅な縮小やロジックブロックの使用効率の改善によるプログラマブル論理集積回路の性能向上が期待できる。また、抵抗変化素子のオンまたはオフの状態は、プログラマブル論理集積回路に対する電源供給が停止しても保持されるため、電源を投入する度に構成情報をロードする手間を省くことができる利点もある。
ところで、プログラマブル論理集積回路を含む半導体集積回路では、製造時に発生するトランジスタや配線の不良に備えて冗長回路を設けることが生産収率を向上させるために非常に有効であることが知られている。例えば、特許文献3や特許文献4には、冗長回路を備えておき、不良が発生した回路(不良回路)を該冗長回路に置き換える技術が開示されている。
出荷前の選別テストで不良回路が検出された場合、冗長回路により該不良回路を迂回するルートを形成して出荷するのが一般的である。これにより、出荷したプログラマブル論理集積回路に不良回路が含まれていても、該プログラマブル論理集積回路のユーザは不良回路を意識することなく所望の論理回路を構成できる。
特許第4356542号明細書 国際公開第2012/043502号パンフレット 米国特許第4899067号明細書 特開2014−93782号公報
上述した抵抗変化素子を備えるプログラマブル論理集積回路では、出荷後に該抵抗変化素子のオンまたはオフの状態を変更することで、新たな不良(故障)が発生する可能性がある。抵抗変化素子のオンまたはオフの状態は、プログラマブル論理集積回路へ構成情報を書込むことで変更される。
抵抗変化素子で発生する故障は、オン状態からオフ状態へ設定できないオフ故障(オン固定)と、オフ状態からオン状態へ設定できないオン故障(オフ固定)とが代表的である。これらの故障は、プログラマブル論理集積回路の製造メーカが保証する構成情報の書き換え回数(保証更新回数)よりもオンまたはオフの状態を変更できる回数が少ない抵抗変化素子が存在し、出荷後に顕在化するケースが考えられる。あるいは、耐電圧が通常よりも低い抵抗変化素子が存在し、構成情報の書込み時に該抵抗変化素子が破壊されて顕在化するケースが考えられる。不良となった抵抗変化素子は、構成情報の再書込みを行っても、そのオンまたはオフの状態を変更できないため、ユーザは所望の論理回路を実現できなくなる。その場合、不良となった抵抗変化素子を含むプログラマブル論理集積回路は、代替品と交換する必要があるため、プログラマブル論理集積回路のコストが増大する要因となる。
したがって、出荷後に抵抗変化素子で不良が発生しても、ユーザが設計した論理回路を問題なく形成できる、該不良が発生した抵抗変化素子を含むプログラマブル論理集積回路を救済するための技術が望まれる。
本発明は上述したような背景技術が有する課題を解決するためになされたものであり、出荷後に抵抗変化素子で不良が発生しても救済が可能なプログラマブル論理集積回路を提供することを目的とする。
上記目的を達成するため本発明のプログラマブル論理集積回路は、複数のロジックブロックと、
第1の方向へ延在する複数の第1の配線と第2の方向へ延在する複数の第2の配線とを接続または切断する、前記第1の配線と前記第2の配線との交点に配置された複数の抵抗変化素子を備え、前記複数のロジックブロックどうしを変更可能に接続する複数のルーティングスイッチブロックと、
前記複数の第2の配線と、前記ルーティングスイッチブロックの外部へ延在する複数の第3の配線とを接続するシフタブロックと、
を有し、
前記複数の抵抗変化素子は、第1の抵抗変化素子と、前記第1の抵抗変化素子で不良が発生したときに使用される冗長素子である第2の抵抗変化素子とを含み、
前記第1の抵抗変化素子と前記第2の抵抗変化素子とが、前記第1の配線と前記第2の配線との交点に交互に配置され、
前記シフタブロックは、1つの前記第3の配線に対して、隣接する2つの第2の配線のいずれか一方を接続する構成である。
本発明によれば、出荷後に抵抗変化素子で不良が発生しても救済が可能なプログラマブル論理集積回路が得られる。
第1の実施の形態のプログラマブル論理集積回路が備えるクロスバスイッチの一構成例を示す模式図である。 図1に示したクロスバスイッチが備える抵抗変化素子の状態を変更するための書込み手段の一構成例を示す模式図である。 図1に示したクロスバスイッチが備える抵抗変化素子の状態を読み出すための読み出し手段の一構成例を示す模式図である。 本発明のプログラマブル論理集積回路の一構成例を示すブロック図である。 図4に示したコントローラの一構成例を示すブロック図である。 第1の実施の形態のコントローラによる処理手順の一例を示すフローチャートである。 第2の実施の形態のコントローラによる処理手順の一例を示すフローチャートである。 第2の実施の形態のプログラマブル論理集積回路で用いる、不良素子のアドレスとシフタブロックが備える各スイッチの状態との一関係例を示す真理値表である。 シフタブロックが備える各スイッチにNMOSトランジスタを用いる場合の一構成例を示す模式図である。 不良素子のアドレスと、図9に示したシフタブロックが備える各抵抗変化素子の状態との一関係例を示す真理値表である。 シフタブロックが備える各スイッチに抵抗変化素子を用いる場合の一構成例を示す模式図である。 第3の実施の形態のプログラマブル論理集積回路が備えるクロスバスイッチの一構成例を示す模式図である。 第3の実施の形態のプログラマブル論理集積回路が備えるクロスバスイッチの一構成例を示す模式図である。 第3の実施の形態のコントローラによる処理手順の一例を示すフローチャートである。 第3の実施の形態のプログラマブル論理集積回路で用いる、不良素子のアドレスとシフタブロックが備える各スイッチの状態との一関係例を示す真理値表である。 第3の実施の形態のプログラマブル論理集積回路で用いる、不良素子のアドレスとシフタブロックが備える各スイッチの状態との一関係例を示す真理値表である。 抵抗変化素子を用いたスイッチの構成例を示す回路図である。
次に本発明について図面を用いて説明する。
(第1の実施の形態)
図1は、第1の実施の形態のプログラマブル論理集積回路が備えるクロスバスイッチの一構成例を示す模式図である。
図1に示すように、第1の実施の形態のクロスバスイッチは、第1の方向へ延在する複数の第1の配線in0〜in3と、第2の方向へ延在する複数の第2の配線a〜d、rとを備え、第1の配線in0〜in3と第2の配線a〜d、rとが互いの交点に配置された抵抗変化素子によって接続または切断される構成である。第2の配線a〜d、rのうち、配線rは冗長配線である。クロスバスイッチはルーティングスイッチブロックとも呼ばれる。図1では、各抵抗変化素子が四角形のシンボルで示されている。
第1の配線in0〜in3と第2の配線a〜d、rとは、それらの交点に配置された抵抗変化素子がオフ状態のときは電気的に切断され、オン状態のときは電気的に接続される。さらに、第2の配線a〜d、rには、当該クロスバスイッチの外部へ延在する第3の配線out0〜out3と、スイッチS0〜S7を備えたシフタブロック11を介して接続される。
図1は、第1の配線及び第3の配線として、それぞれ4本の配線を備え、第2配線として、冗長配線rを含めて5本の配線を備える構成例を示しているが、第1の配線、第2の配線及び第3の配線は図1に示した本数に限定されるものではない。実際のクロスバスイッチ11は、第1の方向を列方向とし、第2の方向を行方向としたとき、数十行数十列程度の回路規模となる。
本実施形態では、四角形のシンボル内が斜線で示される抵抗変化素子をグループAと定義し、黒塗りで示される抵抗変化素子をグループBと定義する。グループA及びBの抵抗変化素子は、後述する図2、図3、図9、図11、図12及び図13でも同様のシンボルで示される。
グループAは通常使用する抵抗変化素子であり、グループBはグループAの抵抗変化素子で不良が発生したときに使用する冗長素子である。本実施形態のプログラマブル論理集積回路は、工場出荷時、グループA及びグループBの各抵抗変化素子が全てオフに設定されているものとする。
グループAの抵抗変化素子(第1の抵抗変化素子)とグループBの抵抗変化素子(第2の抵抗変化素子)とは、第1の配線in0〜in3と第2の配線a〜d、rとの交点に交互に配置される。例えば、第1の方向を列方向とし、第2の方向を行方向としたとき、グループAの抵抗変化素子は偶数行偶数列または奇数行奇数列に配置され、グループBの抵抗変化素子は偶数行奇数列または奇数行偶数列に配置される。
また、本実施形態のクロスバスイッチでは、第1方向で隣接するグループAの抵抗変化素子とグループBの抵抗変化素子とに同じアドレス(X,Y)が付与される。そのため、1つの第3の配線には隣接する2つの第2の配線のいずれか一方が接続される。例えば、第3の配線out0には隣接する第2の配線aまたはbが接続され、第3の配線out1には隣接する第2の配線bまたはcが接続され、第3の配線out2には隣接する第2の配線cまたはdが接続され、第3の配線out3には隣接する第2の配線dまたはr(冗長配線)が接続される。但し、同じアドレスの抵抗変化素子が同時に使用されることはなく、グループAまたはグループBのいずれか一方の抵抗変化素子が使用される。
本実施形態のプログラマブル論理集積回路は、工場出荷時、シフタブロックが備えるスイッチS0〜S7が、グループAの抵抗変化素子を選択するように設定されている。すなわち、スイッチS0、S2、S4及びS6がオンに設定され、スイッチS1、S3、S5及びS7がオフに設定されている。その場合、シフタブロックは、第3の配線out0と第2の配線aとを接続し、第3の配線out1と第2の配線bとを接続し、第3の配線out2と第2の配線cとを接続し、第3の配線out3と第2の配線dとを接続する。
次に、図1に示したクロスバスイッチが備える各抵抗変化素子をオンまたはオフの状態に設定(または変更)するための書込み方法について図2を用いて説明する。
図2は、図1に示したクロスバスイッチが備える抵抗変化素子の状態を設定するための書込み手段の一構成例を示す模式図である。図2は、図1に示したクロスバスイッチが備える各抵抗変化素子をオンまたはオフに設定するために必要な回路(書込み手段)の構成例のみを示している。
図2に示すように、クロスバスイッチが備える各抵抗変化素子に対する状態の設定時、Yデコーダ(第1のデコーダ)3により複数の第1の配線in0〜in3からいずれか1つが選択され、選択された配線がY書込みドライバ42に接続される。また、Xデコーダ(第2のデコーダ)2により複数の第3の配線out0〜out3からいずれか1つが選択され、選択された配線がX書込みドライバ41に接続される。
X書込みドライバ41は、Xデコーダ2で選択された第3の配線、並びにシフタブロック11を介して該第3の配線と接続される第2の配線に所定の電圧を印加する。Y書込みドライバ42は、Yデコーダ3で選択された第1の配線に所定の電圧を印加する。このとき、Xデコーダ2で選択された第3の配線に接続される第2の配線と、Yデコーダ3で選択された第1の配線との交点に配置された抵抗変化素子の両端に所定の書込み電圧が印加される。Xデコーダ2、Yデコーダ3、X書込みドライバ41及びY書込みドライバの動作は、後述するコントローラ5によって制御される。
抵抗変化素子をオフからオンへ設定するセット動作では、該抵抗変化素子に順方向の書込み電圧が印加される。一方、抵抗変化素子をオンからオフへ設定するリセット動作では、該抵抗変化素子に逆方向の書込み電圧が印加される。
ここで、シフタブロックが備えるスイッチS0、S2、S4及びS6がオンであり、スイッチS1、S3、S5及びS7がオフである場合を考える。
例えば、抵抗変化素子(0,0)の状態を設定する場合、Yデコーダ3は、WY0=“H”,WY1=WY2=WY3=“L”を出力する。また、Xデコーダ2は、WX0=“H”,WX1=“L”を出力する。このとき、WXA0=“H”,WXB0=WXA1=WXB1=“L”となる。
ここでは、シフタブロック11のスイッチS0がオンであり、スイッチS1がオフであるため、グループAの抵抗変化素子(0,0)が選択されてY書込みドライバ42とX書込みドライバ41とにより当該抵抗変化素子の両端に書込み電圧が印加される。
同様に、抵抗変化素子(0,1)の状態を設定する場合、Yデコーダ3は、WY1=“H”,WY0=WY2=WY3=“L”を出力し、Xデコーダ2は、WX0=“H”,WX1=“L”を出力する。このとき、WXB0=“H”,WXA0=WXA1=WXB1=“L”となる。
ここでは、シフタブロック11のスイッチS2がオンであり、スイッチS3がオフであるため、グループAの抵抗変化素子(0,1)が選択される。すなわち、クロスバスイッチが備えるスイッチS0、S2、S4、S6がオンのときはグループAの抵抗変化素子が選択されて書込み電圧が印加される。
一方、シフタブロック11のスイッチS0をオフし、スイッチS1をオンにすると、Xアドレス=0のグループBの抵抗変化素子が選択される。例えば、グループBの抵抗変化素子(0,0)の状態を設定する場合、Yデコーダは、WY0=“H”,WY1=WY2=WY3=“L”を出力し、Xデコーダは、WX0=“H”,WX1=“L”を出力する。このとき、WXA0=“H”,WXB0=WXA1=WXB1=“L”となり、グループBの抵抗変化素子(0,0)が選択される。
グループBの抵抗変化素子(0,1)の状態を設定する場合は、スイッチS2をオフし、スイッチS3をオンする。この場合、Yデコーダ3は、WY1=“H”,WY0=WY2=WY3=“L”を出力し、Xデコーダ2は、WX0=“H”,WX1=“L”を出力する。
このように、グループAまたはグループBの切り替えは、Yデコーダ3、Xデコーダ2、Y書込みドライバ42及びX書込みドライバ41の動作を全く変えずに、シフタブロック1が備えるスイッチS0〜S7で制御できる。
次に、図1に示したクロスバスイッチが備える各抵抗変化素子のオンまたはオフの状態を読み出すための読み出し方法について図3を用いて説明する。
図3は、図1に示したクロスバスイッチが備える抵抗変化素子の状態を読み出すための読み出し手段の一構成例を示す模式図である。図3は、図1に示したクロスバスイッチが備える各抵抗変化素子のオンまたはオフの状態を読み出すために必要な回路(読み出し手段)の構成例のみが示されている。
抵抗変化素子のオンまたはオフの状態は、読出し対象となる抵抗変化素子の両端に、センスアンプ43によって予め設定された読み出し電圧を印加し、そのときに該抵抗変化素子に流れる電流の大きさ、または電流の有無を該センスアンプ43で検出することで判定する。
具体的な読み出し方法について、グループAの抵抗変化素子(0,0)の状態を読み出す場合を例にして説明する。
抵抗変化素子(0,0)の状態を読み出すとき、センスアンプ43は、配線SAINに所定の読み出し電圧Vcを供給する。読み出し電圧Vcは、書込み電圧よりも十分に低く、かつ抵抗変化素子がオン状態であるときに該抵抗変化素子に流れる電流が検出できる電圧であればよく、例えば1V程度に設定すればよい。
抵抗変化素子(0,0)の状態を読み出す場合、Yデコーダ3は、RDY0=“H”、RDY1=RDY2=RDY3=“L”を出力する。Xデコーダ2は、RDX0=“H”、RDX1=“L”を出力し、RDXA0=“H”、RDXB0=RDXA1=RDXB1=“L”となる。このとき、第1の配線in0が配線SAINと接続され、第1の配線in1〜in3は高インピーダンス状態となる。また、第3の配線out0が接地され、第3の配線out1〜out3は高インピーダンス状態となる。
ここでは、シフタブロック11のスイッチS0がオンであり、スイッチS1がオフであるため、グループAの抵抗変化素子(0,0)が選択されて、該抵抗変化素子(0、0)の両端に読み出し電圧Vcが印加される。センスアンプ43は、配線SAINに流れる電流を検出し、該電流が所定のしきい値以上であれば抵抗変化素子(0、0)がオンであると判定し、該電流が所定のしきい値よりも小さければ抵抗変化素子(0、0)がオフであると判定する。
図4は、本発明のプログラマブル論理集積回路の一構成例を示すブロック図である。
図4に示すように、本発明のプログラマブル論理集積回路は、プログラマブルロジックセルアレイ1、Xデコーダ2、Yデコーダ3、センスアンプ書込みドライバ4及びコントローラ5を備える。センスアンプ書込みドライバ4には、図2及び3に示したX書込みドライバ41及びY書込みドライバ42、並びにセンスアンプ43が含まれる。コントローラ5は、専用I/O(Input/Output)を介して外部装置とデータの送受信が可能であり、プログラマブルロジックセルアレイ1は汎用I/Oを介して外部装置とデータの送受信が可能である。
プログラマブルロジックセルアレイ1は、不図示の複数のロジックブロック、複数のクロスバスイッチ及び複数のシフタブロック11を備え、各ロジックブロックがクロスバスイッチを介して接続される構成である。クロスバスイッチはシフタブロック11を介してXデコーダ2とそれぞれ接続される。プログラマブルロジックセルアレイ1は、外部から入力されるコンフィグレーションデータに基づいて、クロスバスイッチにより複数のロジックブロックの接続を変更することで任意の論理回路を形成する。コンフィグレーションデータにはクロスバスイッチが備える各抵抗変化素子をオンまたはオフに設定するための書込みデータが含まれる。
コントローラ5は、専用I/Oを介して外部からアドレス情報及びコンフィグレーションデータを含む構成情報を受け取り、プログラマブルロジックセルアレイ1に対するコンフィグレーションデータの書込み動作を制御する。また、コントローラ5は、プログラマブルロジックセルアレイ1が備える各抵抗変化素子の状態を読出し、コンフィグレーションデータが正しく書き込まれているか否かを判定する。さらに、コントローラ5は、プログラマブルロジックセルアレイ1に正しいコンフィグレーションデータを書込むことができない書込み不良を検出すると、不良が発生した抵抗変化素子を冗長素子へ置き換えるために、シフタブロック11が備える各スイッチを制御する。
図5は、図4に示したコントローラの一構成例を示すブロック図である。
図5に示すように、コントローラ5は、外部インターフェース(I/F)回路51、演算手段52、記憶手段53、アドレスバッファ54及びデータバッファ55を備え、それらが内部バス56で接続された構成である。コントローラ5は、例えばCPU(Central Processing Unit)及びメモリを備えた情報処理用のIC(Integrated Circuit)で実現される。
外部I/F回路51は、専用I/Oとの通信を制御することで外部装置とデータを送受信するためのインターフェース回路である。
演算手段52は、記憶手段53に格納されたプログラムにしたがって処理を実行することで、プログラマブル論理集積回路全体の動作を制御する。また、演算手段52は、記憶手段53に格納されたプログラムにしたがって処理を実行することで、プログラマブルロジックセルアレイ1に対する書込み動作や読出し動作、不良素子の検出動作、不良素子を冗長素子へ置き換えるための救済動作等を制御する。
記憶手段53には、演算手段52による上記各種制御動作のための処理で必要なプログラム、演算手段52が処理するデータや処理後のデータ等が格納される。また、記憶手段53には、シフタブロック11が備える各スイッチのオンまたはオフの状態設定値(接続情報)が格納される。この接続情報を保存するためのメモリ素子はシフタブロック11に備えていてもよい。なお、該接続情報は不揮発性のメモリ素子(抵抗変化素子等)で保存されることが望ましい。
アドレスバッファ54は、外部から入力される構成情報のうち、上記アドレス情報を格納する専用バッファである。データバッファ55は、外部から入力される構成情報のうち、コンフィグレーションデータ、並びにプログラマブルロジックセルアレイ1が備える各抵抗変化素子の状態の読出し結果を格納する専用バッファである。
図6は、第1の実施の形態のコントローラによる処理手順の一例を示すフローチャートである。図6は、説明を簡単にするため、プログラマブル論理集積回路に、図1に示した2行×4列のクロスバスイッチを備える構成を想定した処理例を示している。上述したように、実際のクロスバスイッチは、第1の方向を列方向とし、第2の方向を行方向としたとき、数十行数十列程度の回路規模となる。
第1の実施の形態では、クロスバスイッチが備えるグループAの抵抗変化素子でオフ固定の不良が発生した場合に、該クロスバスイッチで使用する抵抗変化素子をグループBの抵抗変化素子に置き換える処理例を説明する。
図6に示すように、シフタブロック11が備える各スイッチは、工場出荷時の状態である、スイッチS0,S2,S4及びS6がオンであり、スイッチS1,S3,S5及びS7がオフであるものとする(ステップA1)。このとき、クロスバスイッチではグループAが選択されている。
コントローラ5は、外部I/F回路51により外部装置からコンフィグレーション命令を受信すると(ステップA2)、まずX=0を選択し(ステップA3)、続いてY=0を選択し(ステッA4)、選択行X=0の抵抗変化素子(0,0)の状態を設定する書込み動作を実行する(ステップA5)。次に、コントローラ5は、Y=3であるか否かを判定し(ステップA6)、Y=3でない場合はYアドレスを1だけインクリメントし(ステップA7)、ステップA5の処理へ戻って、選択行X=0の抵抗変化素子(0,1)に対する書込み動作を実行する。ステップA5〜A7の処理を繰り返し、選択行X=0の抵抗変化素子(0,2)、(0,3)に対する書込み動作が完了すると、コントローラ5は、抵抗変化素子(0,0)、(0,1)、(0,2)、(0,3)の状態の読出し動作へ移行する。
読出し動作時、コントローラ5は、まずY=0を選択し(ステップA8)、選択行X=0の抵抗変化素子(0,0)の状態を読み出す(ステップA9)。次に、コントローラ5は、Y=3であるか否かを判定し(ステップA10)、Y=3でない場合はYアドレスを1だけインクリメントし(ステップA11)、ステップA9の処理へ戻って、選択行X=0の抵抗変化素子(0,1)の状態を読み出す。ステップA9〜A11の処理を繰り返し、選択行X=0の抵抗変化素子(0,2),(0,3)の状態の読み出しが完了すると、コントローラ5は、選択行X=0の書込みデータである期待値(第1状態値)と読出したデータ(抵抗値:第2状態値)とを比較する(ステップA12)。そして、第1状態値と第2状態値とが一致しない書込み不良の有無、すなわち所望のコンフィグレーションデータが正しく書き込まれているか否かを判定する。
プログラマブルロジックセルアレイ1にコンフィグレーションデータが正しく書き込まれている場合(ステップA13)、コントローラ5は、Xアドレス=1であるか否かを判定し(ステップA14)、Xアドレス=1である場合は処理を終了する。Xアドレス=1でない場合、コントローラ5は、Xアドレスを1だけインクリメントし(ステップA15)、ステップA4の処理へ戻ってステップA14までの処理を繰り返し、抵抗変化素子(1,0)、(1,1)、(1,2)、(1,3)に対する書込み動作及び読出し動作を実行する。そして、抵抗変化素子(1,0)、(1,1)、(1,2)、(1,3)にコンフィグレーションデータが正しく書き込まれている場合は処理を終了する。
ステップA13の処理でプログラマブルロジックセルアレイ1にコンフィグレーションデータが正しく書き込まれていない場合、コントローラ5は、Xアドレスを初期値(X=0)に戻し(ステップA16)、Yアドレスを初期値(Y=0)に戻し(ステップA17)、オン状態の抵抗変化素子をオフ状態に設定するリセット動作を開始する。リセット動作は、書き込み不良が発生した抵抗変化素子(不良素子)のアドレスまで順次実行する(ステップA18〜A22)。
不良素子のアドレスまでリセット動作を実行すると、コントローラ5は、シフタブロック11が備えるスイッチS0、S2、S4及びS6をオフにし、スイッチS1、S3、S5及びS7をオンにして、第2の配線bと第3の配線out0とを接続し、第2の配線cと第3の配線out1とを接続し、第2の配線dと第3の配線out2とを接続し、第2の配線rと第3の配線out3とを接続する(ステップA23)。このとき、クロスバスイッチではグループBが選択される。このとき、コントローラ5は、設定変更後のスイッチS0〜S7の状態を示す上記状態設定値(接続情報)をシフタブロック11が備えるメモリ素子または記憶手段53で保存する。
コントローラ5は、シフタブロック11の各スイッチの設定が完了すると、ステップA3の処理へ戻ってX,Yアドレスを初期値に戻し、グループBの抵抗変化素子(0,0)、(0,1)、(0,2)、(0,3)、(1,0)、(1,1)、(1,2)、(1,3)に対して、上記と同様に書込み動作及び読出し動作を実行する。そして、プログラマブルロジックセルアレイ1が備えるグループBの各抵抗変化素子に所望のコンフィグレーションデータが正しく書き込まれている場合は処理を終了する。グループBにコンフィグレーションデータが正しく書き込まれていない場合、プログラマブル論理集積回路の救済が不能であるため、コントローラ5は、例えば専用I/Oを介して外部装置へ救済不能を示す情報を送信する。
本実施形態のプログラマブル論理集積回路では、クロスバスイッチに、通常使用するグループAの抵抗変化素子と、その冗長素子であるグループBの抵抗変化素子とを備える。また、グループAの抵抗変化素子でオフ固定の不良が発生すると、コントローラ5により、シフタブロック11が備える各スイッチを用いてクロスバスイッチで使用する抵抗変化素子をグループBへ置き換える。そのため、コンフィグレーションデータ等を変更することなく自律的に不良個所が修復される。したがって、出荷後に抵抗変化素子で不良が発生しても救済が可能なプログラマブル論理集積回路が得られる。
また、冗長素子であるグループBの抵抗変化素子は、グループAで不良が発生するまで一度も書込み動作が実施されていないため、正常な抵抗変化素子であることが期待できる。そのため、出荷後に抵抗変化素子で不良が発生しても、高い確率で該不良が救済される。
さらに、通常使用するグループAの抵抗変化素子から冗長素子(グループB)へ切り替えるには、シフタブロック11の設定値を1ビット変更するだけで済む。したがって、不良が発生したグループAの抵抗変化素子を簡易に冗長素子へ置き換えることができる。
(第2の実施の形態)
上述した第1の実施の形態では、クロスバスイッチが備えるグループAの抵抗変化素子でオフ固定が発生した場合の対処方法について説明した。第2の実施の形態は、グループAの抵抗変化素子でオン固定が発生した場合の対処方法について説明する。
抵抗変化素子でオン固定が発生した場合、該抵抗変化素子が接続される行配線と列配線とは常に短絡状態となる。すなわち、抵抗変化素子でオン固定が発生した場合は配線単位で置き換える必要がある。
図7は、第2の実施の形態のコントローラによる処理手順の一例を示すフローチャートである。プログラマブル論理集積回路の構成は第1の実施の形態と同様であるため、その説明は省略する。図7は、第1の実施の形態と同様に、プログラマブル論理集積回路に、図1に示した2行×4列のクロスバスイッチを備える構成を想定した処理を示している。
図7に示すように、シフタブロック11が備える各スイッチは、工場出荷時の状態である、スイッチS0,S2,S4及びS6がオンであり、スイッチS1,S3,S5及びS7がオフであるものとする(ステップB1)。このとき、クロスバスイッチではグループAが選択されている。
コントローラ5は、外部I/F回路51により外部装置からコンフィグレーション命令を受信すると(ステップB2)、まずX=0を選択し(ステップB3)、続いてY=0を選択し(ステッB4)、選択行X=0の抵抗変化素子(0,0)の状態を設定する書込み動作を実行する(ステップB5)。次に、コントローラ5は、Y=3であるか否かを判定し(ステップB6)、Y=3でない場合はYアドレスを1だけインクリメントし(ステップB7)、ステップB5の処理へ戻って、選択行X=0の抵抗変化素子(0,1)に対する書込み動作を実行する。ステップB5〜B7の処理を繰り返し、選択行X=0の抵抗変化素子(0,2)、(0,3)に対する書込み動作が完了すると、コントローラ5は、抵抗変化素子(0,0)、(0,1)、(0,2)、(0,3)の状態の読出し動作へ移行する。
読出し動作時、コントローラ5は、まずY=0を選択し(ステップB8)、選択行X=0の抵抗変化素子(0,0)の状態を読み出す(ステップB9)。次に、コントローラ5は、Y=3であるか否かを判定し(ステップB10)、Y=3でない場合はYアドレスを1だけインクリメントし(ステップB11)、ステップB9の処理へ戻って、選択行X=0の抵抗変化素子(0,1)の状態を読み出す。ステップB9〜B11の処理を繰り返し、選択行X=0の抵抗変化素子(0,2),(0,3)の状態の読み出しが完了すると、コントローラ5は、選択行X=0の書込みデータである期待値(第1状態値)と読出したデータ(抵抗値:第2状態値)とを比較する(ステップB12)。そして、第1状態値と第2状態値とが一致しない書込み不良の有無、すなわち所望のコンフィグレーションデータが正しく書き込まれているか否かを判定する。
プログラマブルロジックセルアレイ1にコンフィグレーションデータが正しく書き込まれている場合(ステップB13)、コントローラ5は、Xアドレス=1であるか否かを判定し(ステップB14)、Xアドレス=1である場合は処理を終了する。Xアドレス=1でない場合、コントローラ5は、Xアドレスを1だけインクリメントし(ステップB15)、ステップB4の処理へ戻ってステップB14までの処理を繰り返し、抵抗変化素子(1,0)、(1,1)、(1,2)、(1,3)に対する書込み動作及び読出し動作を実行する。そして、抵抗変化素子(1,0)、(1,1)、(1,2)、(1,3)にコンフィグレーションデータが正しく書き込まれている場合は処理を終了する。
ステップB13の処理でプログラマブルロジックセルアレイ1にコンフィグレーションデータが正しく書き込まれていない場合、コントローラ5は、Yアドレスを初期値(Y=0)に戻し(ステップB16)、選択行X=0(または1)の抵抗変化素子をオフ状態にするリセット動作を開始する。リセット動作は、書き込み不良が発生した抵抗変化素子(不良素子)が接続される選択行X=0(または1)の全ての抵抗変化素子に対して実行する(ステップB17〜B19)。
選択行X=0(または1)の全ての抵抗変化素子に対するリセット動作が完了すると、コントローラ5は、不良素子を冗長素子へ置き換えるためにシフタブロックが備える各スイッチのオンまたはオフ状態を設定する。
上述したように、抵抗変化素子でオン固定が発生した場合、配線単位で置き換える必要がある。例えば、第2の配線aに接続される抵抗変化素子でオン固定が発生した場合、第3の配線out0に接続する第2の配線をaからbへ切り替える。その場合、コントローラ5は、第2の配線aと第3の配線out0とを接続するスイッチS0をオフにし、第2の配線bと第3の配線out0とを接続するスイッチS1をオンにする。さらに、コントローラ5は、スイッチS2、S4及びS6をオフにし、スイッチS3、S5及びS7をオンにして、第2の配線c、d、rと第3の配線out1、out2、out3とを接続する。
図8は、第2の実施の形態のプログラマブル論理集積回路で用いる、不良素子のアドレスとシフタブロックが備える各スイッチの状態との一関係例を示す真理値表である。
図8に示すように、例えば抵抗変化素子(0,0)が不良素子であった場合、コントローラ5は、スイッチS0、S2、S4及びS6をオフにし、スイッチS1、S3、S5及びS7をオンにする。また、例えば、抵抗変化素子(1,2)が不良素子であった場合、コントローラ5は、スイッチS1、S3、S4及びS6をオフにし、スイッチS0、S2、S5及びS7をオンにする。抵抗変化素子(0,1)、(0,2)、(0,3)、(1,0)、(1,1)または(1,3)が不良素子であった場合、図8を参照してシフタブロックが備える各スイッチのオンまたはオフを設定すればよい。
コントローラ5によるシフタブロック11の各スイッチの設定が完了すると、クロスバスイッチではグループBが選択される。このとき、コントローラ5は、設定変更後のスイッチS0〜S7の状態を示す上記状態設定値(接続情報)をシフタブロック11が備えるメモリ素子または記憶手段53で保存する。
コントローラ5は、シフタブロック11の各スイッチの設定が完了すると、ステップB4の処理へ戻ってYアドレスを初期値(Y=0)に戻し、選択行X=0(または1)のグループBの抵抗変化素子に対して、上記と同様に書込み動作及び読出し動作を実行する。そして、選択行X=0(または1)のグループBの各抵抗変化素子にコンフィグレーションデータが正しく書き込まれている場合は処理を終了する。選択行X=0(または1)のグループBにコンフィグレーションデータが正しく書き込まれていない場合、プログラマブル論理集積回路の救済が不能であるため、コントローラ5は、例えば専用I/Oを介して外部装置へ救済不能を示す情報を送信する。
本実施形態によれば、クロスバスイッチが備えるグループAの抵抗変化素子でオン固定が発生した場合でも、第1の実施の形態と同様に、コントローラ5により、シフタブロック11が備える各スイッチを用いて、クロスバスイッチで使用する抵抗変化素子をグループBへ置き換える。そのため、コンフィグレーションデータ等を変更することなく自律的に不良個所が修復される。したがって、出荷後に抵抗変化素子で不良が発生しても救済が可能なプログラマブル論理集積回路が得られる。
また、冗長素子であるグループBの抵抗変化素子は、グループAで不良が発生するまで一度も書込み動作が実施されていないため、正常な抵抗変化素子であることが期待できる。そのため、出荷後に抵抗変化素子で不良が発生しても、高い確率で該不良が救済される。
さらに、通常使用するグループAの抵抗変化素子から冗長素子(グループB)へ切り替えるには、シフタブロック11の設定値を1ビット変更するだけで済む。したがって、不良が発生したグループAの抵抗変化素子を簡易に冗長素子へ置き換えることができる。
なお、シフタブロック11が備える各スイッチS0〜S7は、例えばNMOSトランジスタを用いることができる。図9は、シフタブロックが備える各スイッチにNMOSトランジスタを用いる場合の構成例を示している。
図9に示すように、シフタブロック11が備える各スイッチにNMOSトランジスタを用いる場合、スイッチS0〜S7のゲート端子は抵抗変化素子を介してプルアップ端子Highとプルダウン端子Lowとにそれぞれ接続する。
例えば、スイッチS0をオンにする場合は、プルアップ端子Highに接続する抵抗変化素子s01をオンにし、プルダウン端子Lowに接続する抵抗変化素子s00をオフにする。
図10は、不良素子のアドレスと、図9に示したシフタブロックが備える各抵抗変化素子の状態との一関係例を示す真理値表である。
図10に示すように、例えばクロスバスイッチの抵抗変化素子(1,2)が不良であった場合、抵抗変化素子s00、s11、s20、s31、s41、s50、s61及びs70をオフに設定し、抵抗変化素子s01、s10、s21、s30、s40、s51、s60及びs71をオンに設定する。抵抗変化素子(0,0)、(0,1)、(0,2)、(0,3)、(1,0)、(1,1)または(1,3)が不良であった場合も、同様に図10を参照してシフタブロックの各抵抗変化素子のオン/オフを設定すればよい。
また、シフタブロックが備える各スイッチS0〜S7には、抵抗変化素子を用いることも可能である。
図11は、シフタブロックが備える各スイッチに抵抗変化素子を用いる場合の一構成例を示す模式図である。シフタブロックが備える各スイッチに抵抗変化素子を用いる場合、不良素子のアドレスに対して設定する各抵抗変化素子の状態は、図8に示した真理値表を用いればよい。
なお、図9に示したシフタブロック11が備える各スイッチS0〜S7にNMOSトランジスタを用いる構成及び図11に示したシフタブロック11が備える各スイッチS0〜S7に抵抗変化素子を用いる構成は、上述した第1の実施の形態、並びに後述する第3の実施の形態のプログラマブル論理集積回路にも適用可能である。
(第3の実施の形態)
図12及び図13は、第3の実施の形態のプログラマブル論理集積回路が備えるクロスバスイッチの一構成例を示す模式図である。
第3の実施の形態のプログラマブル論理集積回路は、シフタブロックの構成が第1及び第2の実施の形態と異なる。第3の実施の形態では、グループAの抵抗変化素子でオン固定が発生した場合とオフ固定が発生した場合とで異なる真理値表を用いてプログラマブル論理集積回路を救済する。また、第3の実施の形態では、グループAの抵抗変化素子でオン固定が発生した場合とオフ固定が発生した場合とで、冗長素子であるグループBの抵抗変化素子に付与するアドレスが異なる。図12はオフ固定の救済に用いるグループBの抵抗変化素子のアドレスを示し、図13はオン固定の救済に用いるグループBの抵抗変化素子のアドレスを示している。コントローラ5は、抵抗変化素子の不良を検出すると、該不良がオン固定であるかオフ固定であるかを判定し、図12または図13に基づいて各抵抗変化素子に付与するアドレスを選択する。プログラマブル論理集積回路のその他の構成は第1の実施の形態と同様であるため、その説明は省略する。
図14は、第3の実施の形態のコントローラによる処理手順の一例を示すフローチャートである。
図14に示すように、シフタブロック11が備える各スイッチは、工場出荷時の状態である、スイッチS0,S2,S4及びS6がオンであり、スイッチS1,S3,S5及びS7がオフであるものとする(ステップC1)。このとき、クロスバスイッチではグループAが選択されている。
コントローラ5は、外部I/F回路51により外部装置からコンフィグレーション命令を受信すると(ステップC2)、まずX=0を選択し(ステップC3)、続いてY=0を選択し(ステッC4)、選択行X=0の抵抗変化素子(0,0)の状態を設定する書込み動作を実行する(ステップC5)。次に、コントローラ5は、Y=3であるか否かを判定し(ステップC6)、Y=3でない場合はYアドレスを1だけインクリメントし(ステップC7)、ステップC5の処理へ戻って、選択行X=0の抵抗変化素子(0,1)に対する書込み動作を実行する。ステップC5〜C7の処理を繰り返し、選択行X=0の抵抗変化素子(0,2)、(0,3)に対する書込み動作が完了すると、コントローラ5は、抵抗変化素子(0,0)、(0,1)、(0,2)、(0,3)の状態の読出し動作へ移行する。
読出し動作時、コントローラ5は、まずY=0を選択し(ステップC8)、選択行X=0の抵抗変化素子(0,0)の状態を読み出す(ステップC9)。次に、コントローラ5は、Y=3であるか否かを判定し(ステップC10)、Y=3でない場合はYアドレスを1だけインクリメントし(ステップC11)、ステップC9の処理へ戻って、選択行X=0の抵抗変化素子(0,1)の状態を読み出す。ステップC9〜C11の処理を繰り返し、選択行X=0の抵抗変化素子(0,2),(0,3)の状態の読み出しが完了すると、コントローラ5は、選択行X=0の書込みデータである期待値(第1状態値)と読出したデータ(抵抗値:第2状態値)とを比較する(ステップC12)。そして、第1状態値と第2状態値とが一致しない書込み不良の有無、すなわち所望のコンフィグレーションデータが正しく書き込まれているか否かを判定する。
プログラマブルロジックセルアレイ1にコンフィグレーションデータが正しく書き込まれている場合(ステップC13)、コントローラ5は、Xアドレス=1であるか否かを判定し(ステップC14)、Xアドレス=1である場合は処理を終了する。Xアドレス=1でない場合、コントローラ5は、Xアドレスを1だけインクリメントし(ステップC15)、ステップC4の処理へ戻ってステップC14までの処理を繰り返し、抵抗変化素子(1,0)、(1,1)、(1,2)、(1,3)に対する書込み動作及び読出し動作を実行する。そして、抵抗変化素子(1,0)、(1,1)、(1,2)、(1,3)にコンフィグレーションデータが正しく書き込まれている場合は処理を終了する。
ステップC13の処理でプログラマブルロジックセルアレイ1にコンフィグレーションデータが正しく書き込まれていない場合、コントローラ5は、不良素子がオン固定であるか否かを判定する(ステップC16)。不良素子がオン固定でない場合、すなわちオフ固定である場合、コントローラ5は、Yアドレスを初期値(Y=0)に戻し(ステップC17)、選択行X=0(または1)の抵抗変化素子をオフ状態にするリセット動作を開始する。リセット動作は、書き込み不良が発生した抵抗変化素子(不良素子)が接続される選択行X=0(または1)の全ての抵抗変化素子に対して実行する(ステップC18〜C20)。
選択行X=0(または1)の全ての抵抗変化素子に対するリセット動作が完了すると、コントローラ5は、不良素子を冗長素子へ置き換えるためにシフタブロックが備える各スイッチのオンまたはオフ状態を設定する。このとき、コントローラ5は、図15に示す真理値表にしたがってシフタブロック11が備える各スイッチを設定する(ステップC21)。
図15に示すように、例えば抵抗変化素子(0,0)が不良素子であった場合、コントローラ5は、オフ固定の不良素子と接続される第2の配線aと第3の配線out0とを接続するスイッチS0をオフし、第2の配線bと第3の配線out0とを接続するスイッチS1をオンし、第2の配線aと第3の配線out1とを接続するスイッチS2をオンにする。スイッチS3〜S9のオン/オフは変更しなくてよい。
一方、ステップC16の処理で不良素子がオン固定である場合、コントローラ5は、Yアドレスを初期値(Y=0)に戻し(ステップC22)、選択行X=0(または1)の抵抗変化素子をオフ状態にするリセット動作を開始する。リセット動作は、書き込み不良が発生した抵抗変化素子(不良素子)が接続される選択行X=0(または1)の全ての抵抗変化素子に対して実行する(ステップC23〜C25)。
選択行X=0(または1)の全ての抵抗変化素子に対するリセット動作が完了すると、コントローラ5は、不良素子を冗長素子へ置き換えるためにシフタブロックが備える各スイッチのオンまたはオフ状態を設定する。このとき、コントローラ5は、図16に示す真理値表にしたがってシフタブロック11が備える各スイッチを設定する(ステップC26)。
図16に示すように、例えば抵抗変化素子(0,0)が不良素子であった場合、コントローラ5は、オン固定の不良素子と接続される第2の配線aと第3の配線out0とを接続するスイッチS0をオフし、第2の配線bと第3の配線out0とを接続するスイッチS1をオンにする。また、スイッチS3、S5、S8をオフにし、スイッチS4、S6、S9をオンにして、第2の配線cと第3の配線out1とを接続し、第2の配線dと第3の配線out2とを接続し、第2の配線rと第3の配線out3とを接続する。スイッチS2及びS7はオフで維持する。
コントローラ5によるシフタブロック11の各スイッチの設定が完了すると、クロスバスイッチではグループBが選択される。このとき、コントローラ5は、設定変更後のスイッチS0〜S7の状態を示す上記状態設定値(接続情報)をシフタブロック11が備えるメモリ素子または記憶手段53で保存する。
コントローラ5は、シフタブロック11の各スイッチの設定が完了すると、ステップC4の処理へ戻ってYアドレスを初期値(Y=0)に戻し、選択行X=0(または1)のグループBの抵抗変化素子に対して、上記と同様に書込み動作及び読出し動作を実行する。そして、選択行X=0(または1)のグループBの各抵抗変化素子にコンフィグレーションデータが正しく書き込まれている場合は処理を終了する。選択行X=0(または1)のグループBにコンフィグレーションデータが正しく書き込まれていない場合、プログラマブル論理集積回路の救済が不能であるため、コントローラ5は、例えば専用I/Oを介して外部装置へ救済不能を示す情報を送信する。
本実施形態によれば、クロスバスイッチが備える抵抗変化素子でオン固定またはオフ固定が発生した場合でも、第1及び第2の実施の形態と同様に、コントローラ5により、シフタブロック11が備える各スイッチを用いて、クロスバスイッチで使用する抵抗変化素子をグループBへ置き換える。そのため、コンフィグレーションデータ等を変更することなく自律的に不良個所が修復される。したがって、出荷後に抵抗変化素子で不良が発生しても救済が可能なプログラマブル論理集積回路が得られる。
また、冗長素子であるグループBの抵抗変化素子は、グループAで不良が発生するまで一度も書込み動作が実施されていないため、正常な抵抗変化素子であることが期待できる。そのため、出荷後に抵抗変化素子で不良が発生しても、高い確率で該不良が救済される。
さらに、通常使用するグループAの抵抗変化素子から冗長素子(グループB)へ切り替えるには、シフタブロック11の設定値を1ビット変更するだけで済む。したがって、不良が発生したグループAの抵抗変化素子を簡易に冗長素子へ置き換えることができる。
なお、上記第1の実施の形態〜第3の実施の形態では、コンフィグレーションデータの書込み不良が発生した場合に、シフタブロック11の設定を変更して冗長素子へ切り替える例を示した。しかしながら、冗長素子へ切り替える条件は、書込み不良が発生したときに限定されるものではない。例えば、書込み動作回数を計数するカウンタを備え、コントローラ5は、書込み動作回数が予め設定された所定回数を超えた場合は、書込み不良が発生していなくても一斉に冗長素子へ切り替えてもよい。すなわち、グループBの抵抗変化素子を通常使用する抵抗変化素子としてもよい。その場合、書込み不良の発生を事前に予防することができる。プログラマブル論理集積回路は常時電源が供給されると限らないため、上記カウンタは不揮発性回路であることが望ましい。例えば、カウント値を格納する抵抗変化素子を備え、電源投入時に該抵抗変化素子に格納されたカウント値から計数を開始するカウンタを備えてもよい。また、カウンタが備える抵抗変化素子で書込み不良が発生する可能性もあるため、該カウンタにはパリティビットを含む誤り訂正機能を備えていてもよい。誤り訂正機能には、カウント値の1ビットあたり3個以上の抵抗変化素子を備えた、多数決論理を用いて訂正する機能を備えていてもよい。
また、図1、図2、図3、図9、図11、図12及び図13において、四角形のシンボルで示した各抵抗変化素子は、2つの配線を電気的に接続または切断するスイッチとして機能する、抵抗変化素子を備えた構成であれば、どのような回路を用いてもよい。例えば、スイッチは、図17(a)に示すように抵抗変化素子のみで構成されていてもよく、図17(b)に示すように2つの抵抗変化素子と1つのトランジスタとで構成されていてもよい。
上述したように、本発明のプログラマブル論理集積回路は、クロスバスイッチに通常使用するグループAの抵抗変化素子と冗長素子であるグループBの抵抗変化素子とを備えている。したがって、グループA及びグループBの抵抗変化素子に対して上記更新保証回数を個別に設定できる場合、構成情報の書き換え回数を実質的に更新保証回数の2倍になることが期待できる。
(付記1)
複数のロジックブロックと、
第1の方向へ延在する複数の第1の配線と第2の方向へ延在する複数の第2の配線とを接続または切断する、前記第1の配線と前記第2の配線との交点に配置された複数の抵抗変化素子を備え、前記複数のロジックブロックどうしを変更可能に接続する複数のルーティングスイッチブロックと、
を有し、
前記複数の抵抗変化素子は、通常使用される抵抗変化素子である第1の抵抗変化素子と、前記第1の抵抗変化素子で不良が発生したときに使用される冗長素子である第2の抵抗変化素子とを含み、
前記第1の抵抗変化素子と前記第2の抵抗変化素子とが、前記第1の配線と前記第2の配線との交点に交互に配置されたプログラマブル論理集積回路。
(付記2)
前記複数の第2の配線と、前記ルーティングスイッチブロックの外部へ延在する複数の第3の配線とを接続するシフタブロックを有し、
前記シフタブロックは、
1つの前記第3の配線に対して、隣接する2つの第2の配線のいずれか一方を接続する付記1に記載のプログラマブル論理集積回路。
(付記3)
前記シフタブロックは、前記複数の第2の配線と前記複数の第3の配線とを接続または遮断する複数のスイッチ備え、
前記スイッチをオンまたはオフに設定するための接続情報を格納するメモリ素子をさらに有する付記2に記載のプログラマブル論理集積回路。
(付記4)
前記第1の抵抗変化素子及び前記第2の抵抗変化素子をオンまたはオフに設定するための書込み手段と、
前記第1の抵抗変化素子及び第2の抵抗変化素子に設定されたオンまたはオフの状態を読み出すための読み出し手段と、
をさらに有する付記3に記載のプログラマブル論理集積回路。
(付記5)
前記書込み手段を用いて前記第1の抵抗変化素子をオンまたはオフに設定する書込み動作及び前記読み出し手段を用いて前記第1の抵抗変化素子に設定されたオンまたはオフの状態を読み出す読み出し動作を実行し、
前記書込み動作によって前記第1の抵抗変化素子に設定された第1状態値と、前記読出し動作によって読み出された前記第1の抵抗変化素子の第2状態値とを比較し、前記第1状態値と前記第2状態値とが一致しない書込み不良の有無を判定し、
前記書込み不良の有無に応じて前記接続情報を決定する制御手段をさらに有する付記4に記載のプログラマブル論理集積回路。
(付記6)
前記制御手段は、
前記書込み不良が発生した第1の抵抗変化素子と接続される第2の配線を前記第3の配線から切断し、該第2の配線と隣接する配線を前記第3の配線と接続するための前記接続情報を決定する付記5に記載のプログラマブル論理集積回路。
(付記7)
前記制御手段は、
前記書込み不良を検出した前記第1の抵抗変化素子がオンからオフへ設定できないオン固定であるか、オフからオンへ設定できないオフ固定であるかを判定し、前記接続情報を前記オン固定または前記オフ固定に応じて変更する付記5または6に記載のプログラマブル論理集積回路。
(付記8)
前記書込み動作の回数を計数するカウンタを備え、
前記書込み動作の回数が予め設定された所定回数を超えた場合、前記第2の抵抗変化素子を通常使用する抵抗変化素子とする付記1から7のいずれか1項に記載のプログラマブル論理集積回路。
(付記9)
前記第1の方向を列方向とし、前記第2の方向を行方向としたとき、
前記第1の抵抗変化素子は、偶数行偶数列または奇数行奇数列に配置され、
前記第2の抵抗変化素子は、偶数行奇数列または奇数行偶数列に配置された付記1から8のいずれか1項に記載のプログラマブル論理集積回路。
(付記10)
前記制御手段は、
前記書込み不良を検出した前記第1の抵抗変化素子が前記オフ固定であるとき、前記ルーティングスイッチブロックで使用する抵抗変化素子を前記第1の抵抗変化素子から前記第2の抵抗変化素子へ全て置き換えるように前記接続情報を変更する付記5から9のいずれか1項に記載のプログラマブル論理集積回路。
(付記11)
前記制御手段は、
前記書込み不良を検出すると、該書込み不良が発生した前記第1の抵抗変化素子をオフするリセット動作を実行し、
前記シフタブロックが備えるスイッチの設定を変更した後、前記第1の抵抗変化素子に設定したオンまたはオフの状態を前記第2の抵抗変化素子に再度設定する付記5に記載のプログラマブル論理集積回路。
(付記12)
前記制御手段は、
プログラムにしたがって処理を実行する演算手段と、
前記プログラムが格納される記憶手段と、
を有し、
前記演算手段は、前記プログラムにしたがって処理を実行することで前記書込み手段及び前記読み出し手段の機能を実現する請求項5から11のいずれか1項に記載のプログラマブル論理集積回路。
1 プログラマブルロジックセルアレイ
2 Xデコーダ
3 Yデコーダ
4 センスアンプ書込みドライバ
5 コントローラ
11 シフタブロック
41 X書込みドライバ
42 Y書込みドライバ
43 センスアンプ
51 外部I/F回路
52 演算手段
53 記憶手段
54 アドレスバッファ
55 データバッファ
56 内部バス
in0〜in3 第1の配線
a〜d、r 第2の配線
out0〜out3 第3の配線

Claims (8)

  1. 複数のロジックブロックと、
    第1の方向へ延在する複数の第1の配線と第2の方向へ延在する複数の第2の配線とを接続または切断する、前記第1の配線と前記第2の配線との交点に配置された複数の抵抗変化素子を備え、前記複数のロジックブロックどうしを変更可能に接続する複数のルーティングスイッチブロックと、
    前記複数の第2の配線と、前記ルーティングスイッチブロックの外部へ延在する複数の第3の配線とを接続するシフタブロックと、
    を有し、
    前記複数の抵抗変化素子は、第1の抵抗変化素子と、前記第1の抵抗変化素子で不良が発生したときに使用される冗長素子である第2の抵抗変化素子とを含み、
    前記第1の抵抗変化素子と前記第2の抵抗変化素子とが、前記第1の配線と前記第2の配線との交点に交互に配置され、
    前記シフタブロックは、1つの前記第3の配線に対して、隣接する2つの第2の配線のいずれか一方を接続するプログラマブル論理集積回路。
  2. 前記シフタブロックは、前記複数の第2の配線と前記複数の第3の配線とを接続または遮断する複数のスイッチ備え、
    前記スイッチをオンまたはオフに設定するための接続情報を格納するメモリ素子をさらに有する請求項に記載のプログラマブル論理集積回路。
  3. 前記第1の抵抗変化素子及び前記第2の抵抗変化素子をオンまたはオフに設定するための書込み手段と、
    前記第1の抵抗変化素子及び第2の抵抗変化素子に設定されたオンまたはオフの状態を読み出すための読み出し手段と、
    をさらに有する請求項に記載のプログラマブル論理集積回路。
  4. 前記書込み手段を用いて前記第1の抵抗変化素子をオンまたはオフに設定する書込み動作及び前記読み出し手段を用いて前記第1の抵抗変化素子に設定されたオンまたはオフの状態を読み出す読み出し動作を実行し、
    前記書込み動作によって前記第1の抵抗変化素子に設定された第1状態値と、前記読出し動作によって読み出された前記第1の抵抗変化素子の第2状態値とを比較し、前記第1状態値と前記第2状態値とが一致しない書込み不良の有無を判定し、
    前記書込み不良の有無に応じて前記接続情報を決定する制御手段をさらに有する請求項に記載のプログラマブル論理集積回路。
  5. 前記制御手段は、
    前記書込み不良が発生した第1の抵抗変化素子と接続される第2の配線を前記第3の配線から切断し、該第2の配線と隣接する配線を前記第3の配線と接続するための前記接続情報を決定する請求項に記載のプログラマブル論理集積回路。
  6. 前記制御手段は、
    前記書込み不良を検出した前記第1の抵抗変化素子がオンからオフへ設定できないオン固定であるか、オフからオンへ設定できないオフ固定であるかを判定し、前記接続情報を前記オン固定または前記オフ固定に応じて変更する請求項またはに記載のプログラマブル論理集積回路。
  7. 前記書込み動作の回数を計数するカウンタを備え、
    前記制御手段は、
    前記書込み動作の回数が予め設定された所定回数を超えた場合、前記第2の抵抗変化素子を通常使用する抵抗変化素子とする請求項1からのいずれか1項に記載のプログラマブル論理集積回路。
  8. 前記第1の方向を列方向とし、前記第2の方向を行方向としたとき、
    前記第1の抵抗変化素子は、偶数行偶数列または奇数行奇数列に配置され、
    前記第2の抵抗変化素子は、偶数行奇数列または奇数行偶数列に配置された請求項1からのいずれか1項に記載のプログラマブル論理集積回路。
JP2015109907A 2015-05-29 2015-05-29 プログラマブル論理集積回路 Expired - Fee Related JP6485225B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015109907A JP6485225B2 (ja) 2015-05-29 2015-05-29 プログラマブル論理集積回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015109907A JP6485225B2 (ja) 2015-05-29 2015-05-29 プログラマブル論理集積回路

Publications (2)

Publication Number Publication Date
JP2016225797A JP2016225797A (ja) 2016-12-28
JP6485225B2 true JP6485225B2 (ja) 2019-03-20

Family

ID=57748033

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015109907A Expired - Fee Related JP6485225B2 (ja) 2015-05-29 2015-05-29 プログラマブル論理集積回路

Country Status (1)

Country Link
JP (1) JP6485225B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210133379A1 (en) * 2017-01-26 2021-05-06 Nec Corporation Design assistance system and design assistance method
US10879902B2 (en) 2017-03-17 2020-12-29 Nec Corporation Reconfigurable circuit using nonvolatile resistive switches
JPWO2019208414A1 (ja) * 2018-04-27 2021-04-08 日本電気株式会社 論理集積回路および書き込み方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4899067A (en) * 1988-07-22 1990-02-06 Altera Corporation Programmable logic devices with spare circuits for use in replacing defective circuits
US5255227A (en) * 1991-02-06 1993-10-19 Hewlett-Packard Company Switched row/column memory redundancy
JP3206541B2 (ja) * 1998-03-04 2001-09-10 日本電気株式会社 半導体記憶装置
JP2001308271A (ja) * 2000-04-18 2001-11-02 Hitachi Ltd 半導体集積回路および設計方法並びに製造方法
JP4356542B2 (ja) * 2003-08-27 2009-11-04 日本電気株式会社 半導体装置
JP2016129081A (ja) * 2015-01-09 2016-07-14 株式会社東芝 再構成可能な回路
US10740435B2 (en) * 2015-05-29 2020-08-11 Nec Corporation Programmable logic integrated circuit, design support system, and configuration method

Also Published As

Publication number Publication date
JP2016225797A (ja) 2016-12-28

Similar Documents

Publication Publication Date Title
US10403387B2 (en) Repair circuit used in a memory device for performing error correction code operation and redundancy repair operation
US10943668B2 (en) Storage device for storing data using a resistive random access storage element
JP2008097785A (ja) 不揮発性半導体記憶装置
JP2010027192A (ja) メモリの補修回路とそれを使用する疑似デュアルポートsram
JP6485225B2 (ja) プログラマブル論理集積回路
US7161857B2 (en) Memory redundancy programming
JP2016129081A (ja) 再構成可能な回路
US9142319B2 (en) Semiconductor device employing fuse programming
US9754666B2 (en) Resistive ratio-based memory cell
US10559350B2 (en) Memory circuit and electronic device
JP6555359B2 (ja) 再構成可能回路
US8225178B2 (en) Semiconductor memory device
JP4299984B2 (ja) 半導体記憶装置
US6333876B1 (en) Semiconductor memory device
US20200381045A1 (en) Semiconductor device and error detection method
US8116163B2 (en) Semiconductor memory device
US20090010085A1 (en) Semiconductor integrated circuit device and redundancy method thereof
KR100451009B1 (ko) 반도체 집적회로
JPH09213097A (ja) ヒューズ装置及びそれを用いた半導体集積回路装置
US11416358B2 (en) Reordering circuit of memory, method of reordering memory bits, and accumulation circuit
KR102087509B1 (ko) 메모리 디바이스
JP2011134386A (ja) 半導体装置
US7301845B2 (en) Defect address storing circuit for semiconductor memory device
WO2019208414A1 (ja) 論理集積回路および書き込み方法
CN116097436A (zh) 冗余穿硅通路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180405

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190204

R150 Certificate of patent or registration of utility model

Ref document number: 6485225

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees