JP2009145957A - ステートマシン及びこれを用いた半導体集積回路 - Google Patents

ステートマシン及びこれを用いた半導体集積回路 Download PDF

Info

Publication number
JP2009145957A
JP2009145957A JP2007319617A JP2007319617A JP2009145957A JP 2009145957 A JP2009145957 A JP 2009145957A JP 2007319617 A JP2007319617 A JP 2007319617A JP 2007319617 A JP2007319617 A JP 2007319617A JP 2009145957 A JP2009145957 A JP 2009145957A
Authority
JP
Japan
Prior art keywords
signal
state machine
data
address
memory
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
JP2007319617A
Other languages
English (en)
Inventor
Takatoshi Shibuya
貴利 渋谷
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.)
Lapis Semiconductor Co Ltd
Oki Networks Co Ltd
Original Assignee
Oki Networks Co Ltd
Oki Semiconductor Co Ltd
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 Oki Networks Co Ltd, Oki Semiconductor Co Ltd filed Critical Oki Networks Co Ltd
Priority to JP2007319617A priority Critical patent/JP2009145957A/ja
Publication of JP2009145957A publication Critical patent/JP2009145957A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】簡単で低コストなハードウェア構成で、且つ、ハードウェアの回路構成を変更せずにステートマシンの制御内容を任意に変更する。
【解決手段】クロック同期型メモリ30を用い、このメモリ30の各アドレスにムーア型ステートマシン20の状態Sを表すデータを格納しておく。そして、ステートマシン20に対する入力信号in[j-1:0]と、メモリ30のリードデータrdata[m:0]の中の状態Sを表すデータrdata[m:k]とを組み合わせて、セレクタ21を介してメモリ30のアドレスに入力することで、クロック信号clkに同期して状態Sを変化させながら動作するムーア型ステートマシン20として振る舞わせる。
【選択図】図1

Description

本発明は、ステートマシンと、このステートマシンにより制御される半導体集積回路に関するものである。
半導体集積回路を制御する手段として、ステートマシンを使って制御することが一般的である。ステートマシンとは、有限オートマトンを回路で実現したものであり、単位時間毎に、入力信号によって状態を変化(遷移)させながら、出力信号を生成する回路である。入力信号、状態、及び、出力信号は、一般的には多ビットである。
従来、この種のステートマシンに関する技術としては、例えば、次のような文献等に記載されるものがあった。
国際公開WO01/061464号公報 特開平11−53216号公報(特許第3063694号公報) 特開平10−333881号公報(特許第3189875号公報)
特許文献1には、記憶回路、比較回路、解析回路及び演算回路からなるステートマシン、並びにこれを用いた半導体デバイス及びその設計方法の技術が記載されている。
特許文献2には、次のステート番号及びそのステートで出力すべき出力信号からなる状態遷移情報を格納するレジスタ群と、現在のステート番号及び入力信号を入力し前記レジスタ群のうちの次にステート番号の状態遷移情報を格納するレジスタを選択するセレクト信号を出力する組み合わせ論理回路と、前記組み合わせ論理回路からのセレクト信号に基づいて前記レジスタ群のうちの1つのレジスタを選択し、その状態遷移情報を出力するセレクタと、外部からの前記レジスタ群のレジスタに状態遷移情報を書き込む書き込み手段とを備え、外部から前記レジスタ群のうちの1つ以上のレジスタに状態遷移情報を書き込むことによりインプリメントされる状態遷移を変更できるステートマシン制御回路の技術が記載されている。
特許文献3には、現在の状態である現ステートから次の状態である次ステートを算出する次ステートロジック部と、前記現ステートを保持するための少なくとも1つの現ステート保持レジスタを備え、前記次ステートロジック部から出力される次ステートをクロックに同期して新たな現ステートとして保持する現ステート保持部とを有するステートマシンにおいて、前記現ステートと前記次ステートとを比較し、前記現ステートと前記次ステートとが一致したとき、前記現ステート保持部レジスタに対する前記クロックの供給を停止する比較部を有するステートマシンの技術が記載されている。
図13(a)、(b)は、従来の特許文献1〜3等に記載されたステートマシンの原理を説明するための構成及び動作を示す図である。
ステートマシン1は、「現在の状態」(状態state)と「現在の入力」(入力信号in)によって「次の状態」が決まる。そこで、「次の状態」を、「現在の状態」と「現在の入力」から求められる関数とみなすことができる。この時の関数をfunc1(状態、入力)とする。
ステートマシン1の出力信号outの生成方式は2通りあり、「現在の状態」のみによって「現在の出力」が決まるものをムーア型ステートマシンと呼び、「現在の状態」と「現在の入力」によって「現在の出力」が決まるものをミーリ型ステートマシンと呼ぶ。そこで、「現在の出力」を、「現在の状態」や「現在の入力」から求められる関数とみなすことができる。この時の関数を、ムーア型ステートマシンの場合はfunc2(状態)、ミーリ型ステートマシンの場合はfunc2(状態、入力)とする。
図14は、従来のムーア型ステートマシンの原理を示す構成図である。
ムーア型ステートマシン2は、入力信号inと現在の状態とから次の状態を求める関数func1を実現するための組み合わせ回路からなる演算回路C1と、この演算回路C1から出力される次の状態を保持する記憶素子Sと、この記憶素子Sから出力される現在の状態から現在の出力を求める関数func2を実現するための組み合わせ回路からなる演算回路C2とにより構成されている。
図15は、従来のミーリ型ステートマシンの原理を示す構成図である。
ミーリ型ステートマシン3は、入力信号inと現在の状態とから次の状態を求める関数func1を実現するための組み合わせ回路からなる演算回路C1と、この演算回路C1から出力される次の状態を保持する記憶素子Sと、この記憶素子Sから出力される現在の状態と入力信号inから現在の出力を求める関数func2を実現するための組み合わせ回路からなる演算回路C2とにより構成されている。
図16は、従来のステートマシンを有する半導体集積回路の原理を示す構成図である。
この図16には、半導体集積回路10をステートマシン1で制御する際の一般的な構成が示されている。ここで想定している半導体集積回路10は、クロック信号clkの立ち上がりエッジ(=立ち上がりのタイミング)に同期して動作するものとする。即ち、半導体集積回路10に対する入力信号in、及び、半導体集積回路内の全ての要素(ステートマシン1の状態stateや制御信号cs、半導体集積回路10の出力信号out)がクロック信号clkの立ち上がりエッジから、ある遅延時間後に変化するものとする。
図17は、図16の半導体集積回路10における動作を示すタイミングチャートである。
この図17において、PDは、被制御回路11が制御信号csを利用できる期間である。ステートマシン1の状態stateや出力信号out(即ち、制御対象に対する制御信号cs)が変化するタイミングは、信号の伝播遅延等の影響でクロック信号clkの立ち上がりエッジから少し遅れて変化する。被制御回路11が、ステートマシン1からの制御信号csを使ってクロック信号clkの次の立ち上がりエッジまでに機能に応じた演算処理を行い、出力信号outを生成するものとすると、ステートマシン1から出力される制御信号csはなるべく速く変化するのが望ましい。
しかしながら、従来のステートマシン1では、次のような課題があった。
図16に示すように、ステートマシン1を使って半導体集積回路10を制御する場合、通常、半導体集積回路10の内部構造は固定したものになるので、その中のステートマシン1の制御内容を変更したり修正するときには、ハードウェアを設計し直すことになる。例えば、大規模集積回路(以下「LSI」という。)ならば、設計から製造までの工程をやり直さなければいけない。プログラムすることができるLSI(Field Programmable Gate Array、以下「FPGA」という。)を用いれば、ハードウェアの回路構成を変更することができるが、FPGAはそのために複雑な構造をしており、コストも高く、変更作業に数分〜数時間掛かり、回路構成を変更するために専用のツールが必要になる場合もある。
又、特許文献2に記載されたステートマシン制御回路では、レジスタ群に格納された状態遷移情報を書き換えることで、制御内容を変更できるようになっているが、現在のステート番号及び入力信号を入力して、次のステート番号の状態遷移情報を格納するレジスタを選択するためのセレクト信号を出力する機能を有する組み合わせ論理回路等が、ハードウェアで構成されているので、制御内容の変更も一定の範囲内に制限される。
従って、従来の技術では、簡単で低コストなハードウェア構成で、且つ、ハードウェアの回路構成を変更せずにステートマシンの制御内容を任意に変更することが困難であった。
本発明のステートマシンでは、セレクタとクロック同期型メモリとを用いて、ムーア型ステートマシンを実現している。
ここで、前記セレクタは、ライトアドレス(書き込みアドレス)を入力すると共に、下位ビット又は上位ビットからなる前記ステートマシンに対する入力信号と、前記入力信号に対して異なる位置のビットにより構成され、前記ステートマシンの現在の状態を表す第1のデータとが組み合わされた第1の信号を入力し、第1及び第2の論理レベルに遷移するライトイネーブル信号が前記第1の論理レベルの時には前記ライトアドレスを選択し、前記ライトイネーブル信号が前記第2の論理レベルの時には前記第1の信号を選択するものである。
前記クロック同期型メモリは、複数の番地(アドレス)からなる記憶領域を有し、前記ライトイネーブル信号が前記第1の論理レベルの時に、クロック信号に同期してライトデータを取り込んで前記記憶領域の各アドレスに、前記ステートマシンの次の状態を表す第2のデータと、前記ステートマシンの出力信号を表す第3のデータとを格納し、前記ライトイネーブル信号が前記第2の論理レベルの時に、前記クロック信号に同期して前記クロック信号の1周期内に、前記セレクタにより選択された前記第1の信号により指定される前記記憶領域のアドレスから、前記第2及び第3のデータを有するリードデータを読み出し(リードし)、前記リードデータ中の前記第2のデータを前記第1のデータとして前記セレクタへ与えると共に、前記第3のデータを前記ステートマシンの出力信号として外部に出力するメモリである。
本発明の他のステートマシンでは、第1のセレクタと、クロック同期型メモリと、第2のセレクタと、非同期型メモリとを用いて、ミーリ型ステートマシンを実現している。
ここで、前記第1のセレクタは、ライトアドレスを入力すると共に、下位ビット又は上位ビットからなる前記ステートマシンに対する入力信号と、前記入力信号に対して異なる位置のビットにより構成され、ステートマシンの現在の状態を表す第1のデータとが組み合わされた第1の信号を入力し、第1及び第2の論理レベルに遷移する第1のライトイネーブル信号が前記第1の論理レベルの時には前記ライトアドレスを選択し、前記第1のライトイネーブル信号が前記第2の論理レベルの時には前記第1の信号を選択するものである。
前記クロック同期型メモリは、複数のアドレスからなる第1の記憶領域を有し、前記第1のライトイネーブル信号が前記第1の論理レベルの時に、クロック信号に同期して第1のライトデータを取り込んで前記第1の記憶領域の各アドレスに、前記ステートマシンの次の状態を表す第2のデータを格納し、前記第1のライトイネーブル信号が前記第2の論理レベルの時に、前記クロック信号に同期して前記クロック信号の1周期内に、前記第1のセレクタにより選択された前記第1の信号により指定される前記第1の記憶領域のアドレスから、前記第2のデータをリードして前記第1のデータとして前記第1のセレクタへ与えるメモリである。
前記第2のセレクタは、前記ライトアドレスを入力すると共に、前記入力信号と前記第2のデータとが組み合わされた第2の信号を入力し、第1及び第2の論理レベルに遷移する第2のライトイネーブル信号が前記第1の論理レベルの時には前記ライトアドレスを選択し、前記第2のライトイネーブル信号が前記第2の論理レベルの時には前記第2の信号を選択するものある。
前記非同期型メモリは、複数アドレスからなる第2の記憶領域を有し、第1及び第2の論理レベルに遷移する第3のライトイネーブル信号が前記第1の論理レベルの時に、第2のライトデータを取り込んで前記第2の記憶領域の各アドレスに、前記ステートマシンの現在の出力信号を表す第3のデータを格納し、前記第2のライトイネーブル信号が前記第2の論理レベルの時に、前記第2のセレクタにより選択された前記第2の信号により指定される前記第2の記憶領域のアドレスから、前記第3のデータをリードして前記ステートマシンの出力信号として外部に出力するメモリである。
本発明の半導体集積回路では、前記発明のステートマシンと、前記ステートマシンの出力により制御され、前記クロック信号に同期して所定の処理を行う被制御回路とを備えている。
本発明のステートマシンによれば、クロック同期型メモリの各アドレスにステートマシンの状態を表すデータを格納しておき、ステートマシンに対する入力信号と、そのクロック同期型メモリのリードデータ中の状態を表すデータとを組み合わせて、そのクロック同期型メモリのアドレスに入力することで、クロック信号に同期して状態を変化させながら動作するステートマシンとして振る舞わせる構成にしたので、簡単で低コストなハードウェア構成で、且つ、ハードウェアの回路構成を変更せずにステートマシンの制御内容を任意に変更することが可能なムーア型ステートマシンやミーリ型ステートマシンを提供できる。
本発明の半導体集積回路によれば、ステートマシン内のメモリの内容を半導体集積回路の外部、更には、半導体集積回路を組み込んだ製品の外部から書き換えて、ステートマシンの制御内容を変更することにより、その制御内容に対するハードウェアレベルの変更を容易に行うことが可能になる。
ステートマシンは、クロック同期型メモリを備え、このメモリの各アドレスにステートマシンの状態を表すデータを格納しておき、ステートマシンに対する入力信号と、そのメモリのリードデータ中の状態を表すデータとを組み合わせて、そのメモリのアドレスに入力することで、クロック信号に同期して状態を変化させながら動作するムーア型ステートマシンとして振る舞わせることができる。
(実施例1の構成)
図1は、本発明の実施例1を示すものであってクロック同期型メモリを使用して実現されたムーア型ステートマシンの概略の構成図である。
このムーア型ステートマシン20は、jビット(bit)の入力信号in[j-1:0]を入力してkビットの出力信号out[k-1:0]を出力するものであり、アドレス信号addr[n:0]を選択して出力するセレクタ21と、そのアドレス信号addr[n:0]により指定されたアドレス(番地)に対してデータのライト(書き込み)及びリード(読み出し)が行われるクロック同期型メモリ30等とにより、構成されている。
セレクタ21は、クロック同期型メモリ30に対するn+1ビット(bit)のライトアドレスwaddr[n:0]を入力すると共に、ステートマシン20に対する下位ビット又は上位ビット(例えば、下位のjビット)の入力信号in[j-1:0]と、クロック同期型メモリ30からのリードデータrdata[m:0]のうちの例えば上位iビットのステートマシン状態を表す第1のデータrdata[m:k]と、が組み合わされた第1の信号INを入力し、第1の論理レベル(例えば、“1”)及び第2の論理レベル(例えば、“0”)に遷移するライトイネーブル信号weからなるアドレス選択信号が“1”の時には、ライトアドレスwaddr[n:0]を選択し、そのアドレス選択信号(we)が“0”の時には、第1の信号INを選択し、この選択結果であるアドレス信号addr[n:0]を出力してクロック同期型メモリ30に与えるものである。
クロック同期型メモリ30は、クロック信号clkのエッジ(例えば、立ち上がりエッジ)においてライトイネーブル信号weが“1”の時にライトモードになり、この時のn+1ビットのライトアドレスwaddr[n:0]が示すアドレスにライトデータwdata[m:0] を書き込み、クロック信号clkの立ち上がりエッジにおいてライトイネーブル信号weが“0”の時にリードモードになり、アドレス信号addr[n:0]を取り込み、そのクロック信号clkの立ち上がりエッジからある遅延時間(リードデータ出力遅延)後に、アドレス信号addr[n:0]で指定されたアドレスの記憶内容をリードデータrdata[m:0]として出力するものである。リードデータrdata[m:0]は、上位iビットの第1のデータrdata[m:k]がステートマシン20の状態を表すデータであり、下位kビットの第2のデータrdata[k-1:0]がステートマシン20の出力信号out[k-1:0]として出力される。
このクロック同期型メモリ30に対するアドレス信号addr[n:0]は、前記セレクタ21により、ライトイネーブル信号weが“1”の時(即ち、ライト時)は、ライトデータwaddr[n:0]が入力されるように、又、ライトイネーブル信号weが“0”の時(即ち、リード時)は、上位のiビットが第1のデータrdata[m:k]であり、下位のjビットが入力信号in[j-1:0]であるような第1の信号INが入力されるように、ライトイネーブル信号weにより選択される。
図2は、図1中のクロック同期型メモリ30を示す概略の構成図である。
クロック同期型メモリ30は、クロック信号clkの立ち上がりエッジに同期してこのクロック信号clkの1周期内にリードデータrdata[m:0]を読み出すことができる半導体メモリ等により構成されている。このクロック同期型メモリ30は、例えば、セレクタ21から与えられるアドレス信号addr[n:0]をクロック信号clkの立ち上がりエッジに同期してデコードするアドレスデコーダ31を有し、この出力側に、複数のアドレス2(n+1)を有する記憶領域32が接続されている。記憶領域32は、データのリード及びライト可能な複数のスタティック型ランダム・アクセス・メモリ・セル(以下「SRAMセル」という。)を有するメモリセルアレイや、或いは、複数のレジスタ等により構成されている。各アドレスには、ステートマシン状態を表す上位iビットの第1のデータrdata[m:k]と、ステートマシン出力信号を表す下位kビットの第2のデータrdda[k-1:0]とが格納される。この記憶領域32には、入/出力回路33が接続されている。入/出力回路33は、ライトイネーブル信号weが“1”の時に、クロック信号clkの立ち上がりエッジに同期してライトデータ(wdata[m:0]を入力して記憶領域32へ与え、ライトイネーブル信号weが“0”の時に、クロック信号clkの立ち上がりエッジに同期して記憶領域32からのリードデータrdata[m:0]を出力する回路である。
図3は、図2のクロック同期型メモリ30に対するアドレス信号addr[n:0]を示す概略の構成図である。
アドレス信号addr[n:0]は、ステートマシン20の現在の状態を示す上位iビット(bit)のデータ[n:j]と、ステートマシン20に対する現在の入力を示す下位jビット(bit)のデータ[j-1:0]とにより、構成されている。
図4は、図2のクロック同期型メモリ30のリードデータrdata[m:0]を示す概略の構成図である。
リードデータrdata[m:0]は、ステートマシン20の次の状態を示す上位iビット(bit)のデータ[m:k]と、ステートマシン20の次の状態における出力を示す下位kビット(bit)のデータ[k-1:0]とにより、構成されている。
(実施例1の動作)
本実施例1のムーア型ステートマシン20では、以下のようなクロック同期型メモリ30に対するライト動作(1)と、リード動作であるステートマシンの動作(2)とが行われる。
(1) メモリ30に対するライト動作
図5は、図1中のメモリ30に対するライト動作を示すタイミングチャートである。
図5において、クロック信号clkの立ち上がりエッジの時刻t1,t2,t3,・・・は、メモリ30のサンプルタイミングである。ライトアドレスwaddr[n:0]である{S1,I1},{S2,I2},{S3,I3},・・・中のS1,S2,S3,・・・は、実現したいムーア型ステートマシン20の各状態を示し、I1,I2,I3,・・・は、その各入力信号を示す。ライトデータwdata[m:0] であるWDATA1,WDATA2,WDATA3,・・・は、関数func1,func2により次式(1)のように表される。
WDATA1={func1(S1,I1),func2(func1(S1,I1))}
WDATA2={func1(S2,I2),func2(func1(S2,I2))}
WDATA3={func1(S3,I3),func2(func1(S3,I3))}
・・・(1)
予め計算された式(1)のライトデータwdata[m:0]は、以下の手順でメモリ30の各アドレスにライトされる。
図1のムーア型ステートマシン20において、ライトイネーブル信号weが“1”になってメモリ30がライトモードになり、セレクタ21がライトアドレスwaddr[n:0]側に切り替わる。クロック信号clkの立ち上がりエッジのサンプルタイミング時刻t1,t2,t3,・・・に同期して、ライトアドレスwaddr[n:0]及びライトデータwdata[m:0]がステートマシン20に入力される。入力されたライトアドレスwaddr[n:0]は、セレクタ21で選択され、この選択結果であるアドレス信号addr[n:0]がメモリ30に入力される。
図2のメモリ30において、入力されたアドレスwaddr[n:0]は、アドレスデコーダ31によりデコードされ、このデコード結果により記憶領域32のアドレスが指定される。入力されたライトデータwdata[m:0]は、入/出力回路33により取り込まれ、記憶領域32における指定されたアドレスへライトされる。この際、実現したいステートマシン20の各状態S、及び、各入力信号Iの全ての組み合わせについて、メモリ30における記憶領域32の{S,I}アドレスに{func1(S,I),func2(func1(S,I))}という値がライトされる。func1は「現在の状態」と「現在の入力」から「次の状態」を決めるための関数であり、func2は「現在の状態」から「現在の出力」を決めるための関数である。ライトする値は、予め計算されている。
(2) メモリ30のリード動作(ステートマシンの動作)
図6は、図1中のメモリ30のリード動作であるステートマシンの動作を示すタイミングチャートである。
図6において、t11,t12,t13,・・・はクロック信号clkの立ち上がりエッジの時刻、Tはクロック信号clkの1周期である。入力信号in[j-1:0]であるアドレス信号addr[j-1:0]におけるI1,I2,I3,・・・は、ムーア型ステートマシン20の各入力を示し、アドレス信号addr[n:j]である上位iビットのリードデータrdata[m:k]におけるS1,S2,S3,・・・は、ステートマシン20の各状態を示す。下位kビットのリードデータrdata[k-1:0]であるステートマシン20の出力信号out[k-1:0]におけるO1,O2,O3,・・・は、各出力を示す。DLは、クロック信号clkの立ち上がりエッジの時刻t11,・・・からのメモリ30の出力遅延時間である。
各状態S2,S3,・・・と各出力O1,O2,O3,・・・は、関数func1,func2により次式(2)のように表される。
S2=func1(S1,I1) O1=func2(S1)
S3=func1(S2,I2) O2=func2(S2)
O3=func2(S3)
・・・(2)
前記(1)のライト動作によってメモリ30の内容が設定されると、以下の手順で、メモリ30のアドレスに「現在の状態」と「現在の入力」を入力することにより、次のサイクルにおいて、「次の状態」と「次の状態における出力」がメモリ30からリードされる。
図1のムーア型ステートマシン20において、メモリ30に対するライト動作が完了した後、ライトイネーブル信号weを“0”にすると、メモリ30がリードモードになり、セレクタ21が第1の信号IN側に切り替わる。クロック信号clkと入力信号in[j-1:0]をステートマシン20に入力すれば、クロック信号clkの立ち上がりエッジの時刻t11,t12,t13,・・・に同期して、その下位jビットの入力信号in[j-1:0]と上位iビットのリードデータrdata[m:k]とが組み合わされた第1の信号INがセレクタ21で選択され、この選択結果であるアドレス信号addr[n:0]がメモリ30に入力される。
図2のメモリ30において、入力されたアドレスaddr[n:0]は、アドレスデコーダ31によりデコードされ、このデコード結果により記憶領域32のアドレスが指定され、この指定されたアドレスから、クロック信号clkの立ち上がりエッジの時刻t11,t12,t13,・・・毎に、リードデータrdata[m:0](即ち、ステートマシン20の状態S2,S3,・・・と出力O2,O3,・・・)がリードされ、入/出力回路33から出力される。出力されたリードデータrdata[m:0]のうち、上位iビットのリードデータrdata[m:k]は、ステートマシン20の状態S2,S3,・・・を表すデータであり、セレクタ21へ帰還入力され、下位kビットのリードデータ[k-1:0]は、ステートマシン20の出力O2,O3,・・・を表すデータであり、出力信号out[k-1:0]として外部へ出力される。この際、メモリ30に対してはリードを繰り返しているだけであり、このリードの繰り返しにより、「次の状態」と「次の状態における出力」がメモリ30から順次リードされて入/出力回路33から出力される。
(実施例1の効果)
本実施例1によれば、クロック同期型メモリ30を用い、このメモリ30の各アドレスにムーア型ステートマシン20の状態Sを表すデータを格納しておき、ステートマシン20に対する入力信号in[j-1:0]と、メモリ30のリードデータrdata[m:0]の中の状態Sを表すデータrdata[m:k]とを組み合わせて、メモリ30のアドレスに入力することで、クロック信号clkに同期して状態Sを変化させながら動作するムーア型ステートマシン20として振る舞わせる構成にしたので、次の(a)〜(c)のような効果がある。
(a) メモリ30に書き込むデータを変更することで、同一のハードウェア構成で、ステートマシン20の振る舞い(即ち、単位時間毎の状態Sと出力O)を変更することができる。ステートマシン20の入力信号数、出力信号数、状態数は、ステートマシン20の制御内容が複雑になるほど大きくなるが、メモリ30のアドレス/リードデータ/ライトデータのビット数の大きいメモリを用いれば、複雑なステートマシン20を実現できる。
(b) 従来のステートマシンの場合、ステートマシンの制御内容(即ち、状態と出力信号を決めるための関数)の複雑さによってステートマシンの動作速度(即ち、クロック周波数)の上限値が変わるので、ステートマシンのクロック周波数の上限値を知るために、タイミング解析という作業が必要になる。これに対し、本実施例1では、メモリ30のAC特性の1つであるリードデータ出力遅延(DL)によってクロック周波数の上限値が決まるので、ステートマシン20の制御内容の複雑さに依存せず、予めクロック周波数の上限値を知ることができる。なお、メモリ30へのライト動作は、通常はシステム起動時等に1回だけ行われるものなので、ライト時間に時間が掛かったとしても問題にはならない。
(c) 前記(a)及び(b)により、簡単で低コストなハードウェア構成で、且つ、ハードウェアの回路構成を変更せずにステートマシンの制御内容を任意に変更することが可能なムーア型ステートマシン20を提供できる。
(実施例2の構成)
図7は、本発明の実施例2を示すものであってクロック同期型メモリ及び非同期型メモリを使用して実現されたミーリ型ステートマシンの概略の構成図であり、実施例1を示す図1中の要素と共通の要素には共通の符号が付されている。
このミーリ型ステートマシン20Aは、jビットの入力信号in[j-1:0]を入力してkビットの出力信号out[k-1:0]を出力するものであり、第1のアドレス信号addr1[n:0]を選択して出力する第1のセレクタ21と、その第1のアドレス信号addr1[n:0]により指定されたアドレスに対してデータのライト及びリードが行われるクロック同期型メモリ30Aと、このクロック同期型メモリ30Aの出力側に接続され、第2のアドレス信号addr2[n:0]を選択して出力する第2のセレクタ22と、その第2のアドレス信号addr2[n:0]により指定されたアドレスに対してデータのライト及びリードが行われる非同期型メモリ40等とにより、構成されている。
第1のセレクタ21は、実施例1と同様に、クロック同期型メモリ30Aに対するn+1ビットのライトアドレスwaddr[n:0]を入力すると共に、ステートマシン20Aに対する下位ビット又は上位ビット(例えば、下位のjビット)の入力信号in[j-1:0]と、メモリ30Aからのリードデータrdata1[i-1:0]である例えば上位iビットのステートマシンの現在の状態を表す第2のデータとが組み合わされた第1の信号IN1を入力し、第1の論理レベル(例えば、“1”)及び第2の論理レベル(例えば、“0”)に遷移する第1のライトイネーブル信号we1からなるアドレス選択信号が“1”の時には、ライトアドレスwaddr[n:0]を選択し、そのアドレス選択信号(we1)が“0”の時には、第1の信号IN1を選択し、この選択結果である第1のアドレス信号addr1[n:0]を出力してメモリ30Aに与えるものである。
クロック同期型メモリ30Aは、実施例1のクロック同期型メモリ30と同様に、複数のアドレスからなる第1の記憶領域を有し、クロック信号clkのエッジ(例えば、立ち上がりエッジ)において第1のライトイネーブル信号we1が“1”の時にライトモードになり、この時のn+1ビットのライトアドレスwaddr[n:0]が示す第1の記憶領域のアドレスにiビットの第1のライトデータwdata1[i-1:0] をライトし、クロック信号clkの立ち上がりエッジにおいて第1のライトイネーブル信号we1が“0”の時にリードモードになり、第1のアドレス信号addr1[n:0]を取り込み、そのクロック信号clkの立ち上がりエッジからある遅延時間(リードデータ出力遅延)後に、第1のアドレス信号addr1[n:0]で指定された第1の記憶領域中のアドレスの記憶内容をリードデータrdata1[i-1:0]として出力するものである。
このメモリ30Aに対する第1のアドレス信号addr1[n:0]は、前記第1のセレクタ21により、第1のライトイネーブル信号we1が“1”の時(即ち、ライト時)は、第1のライトアドレスwaddr[i-1:0]が入力されるように、又、第1のライトイネーブル信号we1が“0”の時(即ち、リード時)は、上位のiビットが第2のデータrdata1[j-1:0]であり、下位のjビットが入力信号in[j-1:0]であるような第1の信号IN1が入力されるように、第1のライトイネーブル信号we1により選択される。
第2のセレクタ22は、ライトアドレスwaddr[n:0]を入力すると共に、上位iビットの第2のデータrdata1[i-1:0]と下位jビットの入力信号in[j-1:0]とが組み合わされた第2の信号IN2を入力し、第1の論理レベル(例えば、“1”)及び第2の論理レベル(例えば、“0”)に遷移する第2のライトイネーブル信号we2が例えば“1”の時にはライトアドレスwaddr[n:0]を選択し、第2のライトイネーブル信号we2が例えば“0”の時には第2の信号IN2を選択し、この選択結果である第2のアドレス信号addr2[n:0]を出力して非同期型メモリ40へ与えるものである。
非同期型メモリ40は、クロック同期型メモリ30Aとほぼ同様に、複数アドレスからなる第2の記憶領域を有し、第1の論理レベル(例えば、“1”)及び第2の論理レベル(例えば、“0”)に遷移する第3のライトイネーブル信号we3が例えば“1”の時に、第2のライトデータwdata2[k-1:0]を取り込んで第2の記憶領域の各アドレスにステートマシンの現在の出力信号を表す第3のデータrdata2[k-1:0]を格納し、第2のライトイネーブル信号we2が“0”の時に、第2のセレクタ22により選択された第2の信号IN2により指定される第2の記憶領域のアドレスから、ある遅延時間(リードデータ出力遅延)後に、第3のデータrdata2[k-1:0]をリードして出力信号out[k-1:0]として出力するものである。
本実施例2のクロック同期型メモリ30Aは、実施例1の図2に示すクロック同期型メモリ30とほぼ同様に、SRAMや、或いは複数のレジスタ等により構成されている。又、非同期型メモリ40は、例えば、図2において、クロック信号clkが削除され、アドレスデコーダ31及び入/出力回路33がクロック信号clkに対して非同期に動作するような構成になっている。
図8は、図7のクロック同期型メモリ30A及び非同期型メモリ40に対する第1のアドレス信号addr1[n:0]及び第2のアドレス信号addr2[n:0]を示す概略の構成図である。
各アドレス信号addr1[n:0],addr2[n:0]は、ステートマシン20Aの現在の状態を示す上位iビットのデータ[n:j]と、ステートマシン20Aに対する現在の入力を示す下位jビットのデータ[j-1:0]とにより、構成されている。
(実施例2の動作)
本実施例2のミーリ型ステートマシン20Aでは、以下のようなクロック同期型メモリ30Aに対するライト動作(1)と、非同期型メモリ40に対するライト動作(2)と、クロック同期型メモリ30A及び非同期型メモリ40のリード動作であるステートマシンの動作(3)とが行われる。
(1) メモリ30Aに対するライト動作
図9は、図7中のメモリ30Aに対するライト動作を示すタイミングチャートである。
図9において、クロック信号clkの立ち上がりエッジの時刻t1,t2,t3,・・・は、メモリ30Aのライトタイミングである。ライトアドレスwaddr[n:0]である{S1,I1},{S2,I2},{S3,I3},・・・中のS1,S2,S3,・・・は、実現したいミーリ型ステートマシン20Aの各状態を示し、I1,I2,I3,・・・は、その各入力信号を示す。第1のライトデータwdata1[i-1:0]は、関数func1(S1,I1),func1(S2,I2),funcl(S3,I3),・・・により表される。
第1のライトデータwdata1[i-1:0]は、以下の手順でメモリ30Aの各アドレスにライトされる。
図7のミーリ型ステートマシン20Aにおいて、第1のライトイネーブル信号we1が“1”になってメモリ30Aがライトモードになり、第1のセレクタ21がライトアドレスwaddr[n:0]側に切り替わる。クロック信号clkの立ち上がりエッジのライトタイミング時刻t1,t2,t3,・・・に同期して、ライトアドレスwaddr[n:0]及び第1のライトデータwdata1[i-1:0]がステートマシン20Aに入力される。入力されたライトアドレスwaddr[n:0]は、セレクタ21で選択され、この選択結果である第1のアドレス信号addr1[n:0]がメモリ30Aに入力される。
メモリ30Aにおいて、入力された第1のアドレス信号addr1[n:0]により第1の記憶領域のアドレスが指定される。入力された第1のライトデータwdata1[i-1:0]は、第1の記憶領域における指定されたアドレスへライトされる。この際、実現したいステートマシン20Aの各状態S、及び、各入力信号Iの全ての組み合わせについて、メモリ30Aの{S,I}アドレスに関数func1(S,I)という値がライトされる。func1は「現在の状態」と「現在の入力」から「次の状態」を決めるための関数である。
(2) メモリ40に対するライト動作
図10は、図7中のメモリ40に対するライト動作を示すタイミングチャートである。
図10において、第3のライトイネーブル信号we3の立ち上がりエッジの時刻t1,t2,t3,・・・は、メモリ40のライトタイミングである。第2のライトデータwdata2[k-1:0]は、関数func2(S1,I1),func2(S2,I2),func3(S3,I3),・・・により表される。
第2のライトデータwdata2[k-1:0]は、以下の手順でメモリ40の各アドレスにライトされる。
図7のミーリ型ステートマシン20Aにおいて、第2のライトイネーブル信号we2が“1”の時に、メモリ40がライトモードになり、第2のセレクタ22がライトアドレスwaddr[n:0]側に切り替わる。第3のライトイネーブル信号we3の立ち上がりエッジのライトタイミング時刻t1,t2,t3,・・・に同期して、ライトアドレスwaddr[n:0]及び第2のライトデータwdata2[k-1:0]がステートマシン20Aに入力される。入力されたライトアドレスwaddr[n:0]は、セレクタ22で選択され、この選択結果である第2のアドレス信号addr2[n:0]がメモリ40に入力される。
メモリ40において、入力された第2のアドレス信号waddr2[n:0]により第2の記憶領域のアドレスが指定される。入力された第2のライトデータwdata2[k-1:0]は、第2の記憶領域における指定されたアドレスへライトされる。この際、実現したいミーリ型ステートマシン20Aの各状態S、及び、各入力信号Iの全ての組み合わせについて、メモリ40の{S,I}アドレスに関数func2(S,I)という値がライトされる。func2は「現在の状態」と「現在の入力」から「現在の出力」を決めるための関数である。
(3) メモリ30A及び40のリード動作(ステートマシンの動作)
図11は、図7中のメモリ30A及び40のリード動作であるステートマシンの動作を示すタイミングチャートである。
図11において、t11,t12,t13,・・・はクロック信号clkの立ち上がりエッジの時刻、Tはクロック信号clkの1周期である。入力信号in[j-1:0]であるアドレス信号addr1[j-1:0],addr2[j-1:0]におけるI1,I2,I3,・・・は、ミーリ型ステートマシン20Aの各入力を示し、アドレス信号addr1[n:j]であるリードデータrdata1[i-1:0]及びアドレス信号addr2[n:j]におけるS1,S2,S3,・・・は、ステートマシン20Aの各状態を示す。リードデータrdata2[k-1:0]である出力信号out[k-1:0]におけるO1,O2,O3,・・・は、ステートマシン20Aの各出力を示す。DL1は、クロック信号clkの立ち上がりエッジの時刻t11,・・・からのメモリ30Aの出力遅延時間、DL2は、出力遅延時間DL1後からのメモリ40の出力遅延時間である。
各状態S2,S3,・・・と各出力O1,O2,O3,・・・は、関数func1,func2により次式(3)のように表される。
S2=func1(S1,I1) O1=func2(S1,I1)
S3=func1(S2,I2) O2=func2(S2,I2)
O3=func2(S3,I3)
・・・(3)
前記(1)のライト動作によってメモリ30Aの内容が設定されると、以下の手順で、メモリ30Aのアドレスに「現在の状態」と「現在の入力」を入力することにより、次のサイクルにおいて、「次の状態」がメモリ30Aからリードされる。更に、前記(2)のライト動作によってメモリ40の内容が設定されると、以下の手順で、メモリ40のアドレスに「現在の状態」と「現在の入力」を入力することにより、メモリ40のリードデータ出力遅延時間DL2後に「現在の出力」がメモリ40からリードされる。
図7のミーリ型ステートマシン20Aにおいて、メモリ30Aとメモリ40に対するライト動作が完了した後、第1、第2のライトイネーブル信号we1,we2を“0”、第3のライトイネーブル信号we3を“1”にすると、メモリ30A及び40がリードモードになり、第1のセレクタ21が第1の信号IN1側に切り替わり、第2のセレクタ22が第2の信号IN2側に切り替わる。
クロック信号clkと入力信号in[j-1:0]をステートマシン20Aに入力すれば、クロック信号clkの立ち上がりエッジ毎に、入力信号in[j-1:0]とリードデータrdada1[i-1:0]とが組み合わされた第1の信号IN1が第1のセレクタ21で選択され、この選択結果である第1のアドレス信号addr1[n:0]がメモリ30Aに入力され、このメモリ30Aからステートマシンの状態S1,S2,S3,・・・がリードされる。この状態S1,S2,S3,・・・と入力信号in[j-1:0]とが組み合わされた第2の信号IN2が、第2のセレクタ22で選択され、この選択結果である第2のアドレス信号addr2[n:0]がメモリ40に入力され、このメモリ40からステートマシンの出力O1,O2,O3,・・・がリードされる。この時、メモリ30Aとメモリ40に対しては、リードを繰り返しているだけであり、このリードの繰り返しにより、「現在の出力」がメモリ40から順次リードされてステートマシンの出力信号out[k-1:0]として出力される。
(実施例2の効果)
本実施例2によれば、クロック同期型メモリ30Aと非同期型メモリ40を用いて、クロック信号clkに同期して状態Sを変化させながら動作するミーリ型ステートマシン20Aとして振る舞わせる構成にしたので、実施例1とほぼ同様の効果がある。
図12は、本発明の実施例3を示すステートマシンを搭載したシステムの概略の構成図である。
このシステム50は、LSIやボード等で構成され、システム全体をプログラム制御する中央処理装置(以下「CPU」という。)51を有している。CPU51には、システムバス52が接続され、このシステムバス52に、外部との通信及びデータの読み込みを行う通信モジュール53と、メモリコントローラ54とが接続されている。メモリコントローラ54には、1つ又は複数の半導体集積回路(例えば、2つのモジュール)60−1,60−2が接続されている。各モジュール60−1,60−2には、図1や図7に示すステートマシン20−1,20−2と、この各ステートマシン20−1,20−2によりそれぞれ制御される各被制御回路61−1,61−2等とが、それぞれ設けられている。メモリコントローラ54は、各モジュール60−1,60−2のステートマシン20−1,20−2内に設けられるメモリへの書き込み等を制御するものである。
このような構成のシステム50において、例えば、CPU51は通信モジュール53を制御して各モジュール60−1,60−2のステートマシン20−1,20−2内の各メモリにライトするデータを外部から読み込み、読み込んだデータを各モジュール60−1,60−2のステートマシン20−1,20−2内のメモリにライトすれば、システム50内の各モジュール60−1,60−2のステートマシン20−1,20−2の制御内容を容易に変更することができる。例えば、インターネット上のサーバ等がシステム50内のCPU51と通信を行い、各モジュール60−1,60−2内のステートマシン20−1,20−2の制御内容に対するハードウェアレベルの変更を容易に行うことが可能になる。
(変形例)
本発明は、上記実施例に限定されず、例えば、図1及び図7におけるクロック同期型メモリ30,30Aを、クロック信号clkの立ち下がりエッジに同期して動作する構成に変更したり、クロック同期型メモリ30,30A及び非同期型メモリ40を、図2以外の他の回路構成に変更したり、或いは、図1のムーア型ステートマシン20内や図7のミーリ型ステートマシン20A内に、他の回路を付加して機能の拡張を図る等、種々の利用形態や変形が可能である。
本発明の実施例1を示すものであってクロック同期型メモリを使用して実現されたムーア型ステートマシンの概略の構成図である。 図1中のクロック同期型メモリ30を示す概略の構成図である。 図2のクロック同期型メモリ30に対するアドレス信号addr[n:0]を示す概略の構成図である。 図2のクロック同期型メモリ30のリードデータrdata[m:0]を示す概略の構成図である。 図1中のメモリ30に対するライト動作を示すタイミングチャートである。 図1中のメモリ30のリード動作であるステートマシンの動作を示すタイミングチャートである。 本発明の実施例2を示すものであってクロック同期型メモリ及び非同期型メモリを使用して実現されたミーリ型ステートマシンの概略の構成図である。 図7のクロック同期型メモリ30A及び非同期型メモリ40に対する第1のアドレス信号addr1[n:0]及び第2のアドレス信号addr2[n:0]を示す概略の構成図である。 図7中のメモリ30Aに対するライト動作を示すタイミングチャートである。 図7中のメモリ40に対するライト動作を示すタイミングチャートである。 図7中のメモリ30A及び40のリード動作であるステートマシンの動作を示すタイミングチャートである。 本発明の実施例3を示すステートマシンを搭載したシステムの概略の構成図である。 ステートマシンの原理を説明するための構成及び動作を示す図である。 従来のムーア型ステートマシンの原理を示す構成図である。 従来のミーリ型ステートマシンの原理を示す構成図である。 ステートマシンを有する半導体集積回路の原理を示す構成図である。 図16の半導体集積回路10における動作を示すタイミングチャートである。
符号の説明
20 ムーア型ステートマシン
20A ミーリ型ステートマシン
20−1,20−2 ステートマシン
21,22 セレクタ
30,30A クロック同期型メモリ
40 非同期型メモリ
50 システム
60−1,60−2 モジュール

Claims (3)

  1. ライトアドレスを入力すると共に、下位ビット又は上位ビットからなるステートマシンに対する入力信号と、前記入力信号に対して異なる位置のビットにより構成され、前記ステートマシンの現在の状態を表す第1のデータとが組み合わされた第1の信号を入力し、第1及び第2の論理レベルに遷移するライトイネーブル信号が前記第1の論理レベルの時には前記ライトアドレスを選択し、前記ライトイネーブル信号が前記第2の論理レベルの時には前記第1の信号を選択するセレクタと、
    複数番地からなる記憶領域を有し、前記ライトイネーブル信号が前記第1の論理レベルの時に、クロック信号に同期してライトデータを取り込んで前記記憶領域の各番地に、前記ステートマシンの次の状態を表す第2のデータと、前記ステートマシンの出力信号を表す第3のデータとを格納し、前記ライトイネーブル信号が前記第2の論理レベルの時に、前記クロック信号に同期して前記クロック信号の1周期内に、前記セレクタにより選択された前記第1の信号により指定される前記記憶領域の番地から、前記第2及び第3のデータを有するリードデータを読み出し、前記リードデータ中の前記第2のデータを前記第1のデータとして前記セレクタへ与えると共に、前記第3のデータを前記ステートマシンの出力信号として外部に出力するクロック同期型メモリとを備えたことを特徴とするステートマシン。
  2. ライトアドレスを入力すると共に、下位ビット又は上位ビットからなるステートマシンに対する入力信号と、前記入力信号に対して異なる位置のビットにより構成され、前記ステートマシンの現在の状態を表す第1のデータとが組み合わされた第1の信号を入力し、第1及び第2の論理レベルに遷移する第1のライトイネーブル信号が前記第1の論理レベルの時には前記ライトアドレスを選択し、前記第1のライトイネーブル信号が前記第2の論理レベルの時には前記第1の信号を選択する第1のセレクタと、
    複数番地からなる第1の記憶領域を有し、前記第1のライトイネーブル信号が前記第1の論理レベルの時に、クロック信号に同期して第1のライトデータを取り込んで前記第1の記憶領域の各番地に、前記ステートマシンの次の状態を表す第2のデータを格納し、前記第1のライトイネーブル信号が前記第2の論理レベルの時に、前記クロック信号に同期して前記クロック信号の1周期内に、前記第1のセレクタにより選択された前記第1の信号により指定される前記第1の記憶領域の番地から、前記第2のデータを読み出して前記第1のデータとして前記第1のセレクタへ与えるクロック同期型メモリと、
    前記ライトアドレスを入力すると共に、前記ステートマシンに対する前記入力信号と前記第2のデータとが組み合わされた第2の信号を入力し、第1及び第2の論理レベルに遷移する第2のライトイネーブル信号が前記第1の論理レベルの時には前記ライトアドレスを選択し、前記第2のライトイネーブル信号が前記第2の論理レベルの時には前記第2の信号を選択する第2のセレクトと、
    複数番地からなる第2の記憶領域を有し、第1及び第2の論理レベルに遷移する第3のライトイネーブル信号が前記第1の論理レベルの時に、第2のライトデータを取り込んで前記第2の記憶領域の各番地に、前記ステートマシンの出力信号を表す第3のデータを格納し、前記第2のライトイネーブル信号が前記第2の論理レベルの時に、前記第2のセレクタにより選択された前記第2の信号により指定される前記第2の記憶領域の番地から、前記第3のデータを読み出して前記ステートマシンの出力信号として外部に出力する非同期型メモリとを備えたことを特徴とするステートマシン。
  3. 請求項1又は2記載のステートマシンと、
    前記ステートマシンの出力により制御され、前記クロック信号に同期して所定の処理を行う被制御回路とを備えたことを特徴とする半導体集積回路。
JP2007319617A 2007-12-11 2007-12-11 ステートマシン及びこれを用いた半導体集積回路 Pending JP2009145957A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007319617A JP2009145957A (ja) 2007-12-11 2007-12-11 ステートマシン及びこれを用いた半導体集積回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007319617A JP2009145957A (ja) 2007-12-11 2007-12-11 ステートマシン及びこれを用いた半導体集積回路

Publications (1)

Publication Number Publication Date
JP2009145957A true JP2009145957A (ja) 2009-07-02

Family

ID=40916533

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007319617A Pending JP2009145957A (ja) 2007-12-11 2007-12-11 ステートマシン及びこれを用いた半導体集積回路

Country Status (1)

Country Link
JP (1) JP2009145957A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2202604A1 (en) * 2008-12-29 2010-06-30 STMicroelectronics Srl State machine

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS50135953A (ja) * 1974-04-16 1975-10-28
JPS5354937A (en) * 1976-10-28 1978-05-18 Nec Corp Non-synchronous sequence circuit
JPS63107249A (ja) * 1986-10-22 1988-05-12 Yokogawa Hewlett Packard Ltd トラフィック測定表示方法
JPH01269103A (ja) * 1988-04-20 1989-10-26 Fuji Xerox Co Ltd 状態遷移制御装置
JPH05252051A (ja) * 1991-10-04 1993-09-28 Sony Broadcast & Commun Ltd 直列データ・デコーダ
JPH09114748A (ja) * 1995-10-13 1997-05-02 Nec Ibaraki Ltd メモリエラー訂正回路
JP2001125606A (ja) * 1999-10-29 2001-05-11 Fuji Photo Film Co Ltd ステートマシーン

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS50135953A (ja) * 1974-04-16 1975-10-28
JPS5354937A (en) * 1976-10-28 1978-05-18 Nec Corp Non-synchronous sequence circuit
JPS63107249A (ja) * 1986-10-22 1988-05-12 Yokogawa Hewlett Packard Ltd トラフィック測定表示方法
JPH01269103A (ja) * 1988-04-20 1989-10-26 Fuji Xerox Co Ltd 状態遷移制御装置
JPH05252051A (ja) * 1991-10-04 1993-09-28 Sony Broadcast & Commun Ltd 直列データ・デコーダ
JPH09114748A (ja) * 1995-10-13 1997-05-02 Nec Ibaraki Ltd メモリエラー訂正回路
JP2001125606A (ja) * 1999-10-29 2001-05-11 Fuji Photo Film Co Ltd ステートマシーン

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2202604A1 (en) * 2008-12-29 2010-06-30 STMicroelectronics Srl State machine
US8415978B2 (en) 2008-12-29 2013-04-09 Stmicroelectronics S.R.L. State machine for generating a pulse width modulation (PWM) waveform
EP2587335A3 (en) * 2008-12-29 2013-09-04 STMicroelectronics Srl State machine

Similar Documents

Publication Publication Date Title
JP2015072728A (ja) 半導体メモリ
US9425800B2 (en) Reconfigurable logic device
JP2017038247A (ja) 再構成可能な半導体装置
KR20170109026A (ko) 명령어 시프터 감소를 위한 방법들 및 장치들
JP5890733B2 (ja) 再構成可能な半導体装置の配置配線方法、そのプログラム、及び配置配線装置
JP2009145957A (ja) ステートマシン及びこれを用いた半導体集積回路
US9058436B1 (en) Method and system for reducing the effect of component aging
JP2008077418A (ja) メモリアクセス装置
JP4866194B2 (ja) 集積回路及びリコンフィギュラブル回路の入力データ制御方法
TWI285836B (en) Method and/or architecture implemented in hardware for the adjustment of messages with indeterministic length
JP5545054B2 (ja) デバッグ回路及びデバッグシステム
JP5277533B2 (ja) デジタル信号処理装置
JP2016152523A (ja) 再構成可能な論理デバイス
JP2004327483A (ja) 半導体集積回路及び回路設計装置
JP5467512B2 (ja) 動作合成装置、動作合成方法、及び、動作合成プログラム
JP4829598B2 (ja) 多ビット記憶装置及び多ビット記憶方法
JP2011028790A (ja) 半導体記憶装置及びリフレッシュ制御方法
JP2009200823A (ja) 記憶素子
JP2012078240A (ja) 半導体試験装置におけるドライバ波形生成回路
JP2008283396A (ja) メモリ、シフトレジスタ、集積回路及び処理装置
JP5344634B2 (ja) 半導体記憶装置およびその制御方法
TW202232501A (zh) 半導體積體電路及其設計方法、設計支援系統與程式
JP2022119157A (ja) 半導体集積回路及びその設計方法、設計支援システム、及びプログラム
JP2011044073A (ja) 高位合成装置、高位合成方法および高位合成プログラム
JP5393626B2 (ja) 情報処理装置

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090424

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101101

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120130

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120327

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120807