JP2009145957A - State machine and semiconductor integrated circuit using it - Google Patents

State machine and semiconductor integrated circuit using it 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
Japanese (ja)
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/en
Publication of JP2009145957A publication Critical patent/JP2009145957A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To arbitrarily change control contents of a state machine without changing a circuit configuration of hardware with a simple and low-cost hardware configuration. <P>SOLUTION: This Moore type state machine 20 uses a clock synchronous memory 30, and data expressing a state S of the Moore type state machine 20 are stored in each address of the memory 30. The Moore type state machine 20 is behaved as the Moore type state machine 20 operating while varying the state S in synchronization with a clock signal clk by combining an input signal in[j-1:0] to the state machine 20 and the data rdata[m:k] expressing the state S inside read data rdata[m:0] of the memory 30, and inputting them to an address of the memory 30 through a selector 21. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本発明は、ステートマシンと、このステートマシンにより制御される半導体集積回路に関するものである。   The present invention relates to a state machine and a semiconductor integrated circuit controlled by the state machine.

半導体集積回路を制御する手段として、ステートマシンを使って制御することが一般的である。ステートマシンとは、有限オートマトンを回路で実現したものであり、単位時間毎に、入力信号によって状態を変化(遷移)させながら、出力信号を生成する回路である。入力信号、状態、及び、出力信号は、一般的には多ビットである。   In general, a semiconductor integrated circuit is controlled using a state machine. A state machine is a circuit that realizes a finite automaton by a circuit, and is a circuit that generates an output signal while changing (transitioning) a state by an input signal every unit time. Input signals, states, and output signals are generally multi-bit.

従来、この種のステートマシンに関する技術としては、例えば、次のような文献等に記載されるものがあった。   Conventionally, as a technique related to this type of state machine, for example, there are those described in the following documents.

国際公開WO01/061464号公報International Publication No. WO01 / 061464 特開平11−53216号公報(特許第3063694号公報)Japanese Patent Laid-Open No. 11-53216 (Japanese Patent No. 3063694) 特開平10−333881号公報(特許第3189875号公報)JP 10-333881 A (Patent No. 3189875)

特許文献1には、記憶回路、比較回路、解析回路及び演算回路からなるステートマシン、並びにこれを用いた半導体デバイス及びその設計方法の技術が記載されている。   Patent Document 1 describes a state machine including a storage circuit, a comparison circuit, an analysis circuit, and an arithmetic circuit, and a semiconductor device using the state machine and a design method thereof.

特許文献2には、次のステート番号及びそのステートで出力すべき出力信号からなる状態遷移情報を格納するレジスタ群と、現在のステート番号及び入力信号を入力し前記レジスタ群のうちの次にステート番号の状態遷移情報を格納するレジスタを選択するセレクト信号を出力する組み合わせ論理回路と、前記組み合わせ論理回路からのセレクト信号に基づいて前記レジスタ群のうちの1つのレジスタを選択し、その状態遷移情報を出力するセレクタと、外部からの前記レジスタ群のレジスタに状態遷移情報を書き込む書き込み手段とを備え、外部から前記レジスタ群のうちの1つ以上のレジスタに状態遷移情報を書き込むことによりインプリメントされる状態遷移を変更できるステートマシン制御回路の技術が記載されている。   In Patent Document 2, a register group storing state transition information including a next state number and an output signal to be output in the state, a current state number and an input signal are input, and a state next to the register group is input. A combinational logic circuit that outputs a select signal for selecting a register that stores number state transition information; and one register of the register group is selected based on a select signal from the combinational logic circuit, and the state transition information Is implemented by writing state transition information to one or more registers in the register group from the outside. A state machine control circuit technology that can change the state transition is described.

特許文献3には、現在の状態である現ステートから次の状態である次ステートを算出する次ステートロジック部と、前記現ステートを保持するための少なくとも1つの現ステート保持レジスタを備え、前記次ステートロジック部から出力される次ステートをクロックに同期して新たな現ステートとして保持する現ステート保持部とを有するステートマシンにおいて、前記現ステートと前記次ステートとを比較し、前記現ステートと前記次ステートとが一致したとき、前記現ステート保持部レジスタに対する前記クロックの供給を停止する比較部を有するステートマシンの技術が記載されている。   Patent Document 3 includes a next state logic unit that calculates a next state that is a next state from a current state that is a current state, and at least one current state holding register that holds the current state. In a state machine having a current state holding unit that holds a next state output from the state logic unit as a new current state in synchronization with a clock, the current state is compared with the next state, and the current state and the next state are compared. A technique of a state machine having a comparison unit that stops the supply of the clock to the current state holding unit register when a next state matches is described.

図13(a)、(b)は、従来の特許文献1〜3等に記載されたステートマシンの原理を説明するための構成及び動作を示す図である。   FIGS. 13A and 13B are diagrams illustrating the configuration and operation for explaining the principle of the state machine described in the conventional patent documents 1 to 3 and the like.

ステートマシン1は、「現在の状態」(状態state)と「現在の入力」(入力信号in)によって「次の状態」が決まる。そこで、「次の状態」を、「現在の状態」と「現在の入力」から求められる関数とみなすことができる。この時の関数をfunc1(状態、入力)とする。   In the state machine 1, the “next state” is determined by the “current state” (state state) and the “current input” (input signal in). Therefore, the “next state” can be regarded as a function obtained from the “current state” and the “current input”. The function at this time is defined as func1 (state, input).

ステートマシン1の出力信号outの生成方式は2通りあり、「現在の状態」のみによって「現在の出力」が決まるものをムーア型ステートマシンと呼び、「現在の状態」と「現在の入力」によって「現在の出力」が決まるものをミーリ型ステートマシンと呼ぶ。そこで、「現在の出力」を、「現在の状態」や「現在の入力」から求められる関数とみなすことができる。この時の関数を、ムーア型ステートマシンの場合はfunc2(状態)、ミーリ型ステートマシンの場合はfunc2(状態、入力)とする。   There are two methods for generating the output signal out of the state machine 1, and the “current output” that is determined only by the “current state” is called a Moore state machine, and it depends on the “current state” and “current input”. What determines the "current output" is called a Mealy state machine. Therefore, “current output” can be regarded as a function obtained from “current state” or “current input”. The function at this time is assumed to be func2 (state) in the case of the Moore type state machine, and func2 (state, input) in the case of the Mealy type state machine.

図14は、従来のムーア型ステートマシンの原理を示す構成図である。
ムーア型ステートマシン2は、入力信号inと現在の状態とから次の状態を求める関数func1を実現するための組み合わせ回路からなる演算回路C1と、この演算回路C1から出力される次の状態を保持する記憶素子Sと、この記憶素子Sから出力される現在の状態から現在の出力を求める関数func2を実現するための組み合わせ回路からなる演算回路C2とにより構成されている。
FIG. 14 is a block diagram showing the principle of a conventional Moore type state machine.
The Moore state machine 2 holds an arithmetic circuit C1 composed of a combinational circuit for realizing a function func1 for obtaining the next state from the input signal in and the current state, and a next state output from the arithmetic circuit C1. And a calculation circuit C2 including a combinational circuit for realizing a function func2 for obtaining a current output from a current state output from the storage element S.

図15は、従来のミーリ型ステートマシンの原理を示す構成図である。
ミーリ型ステートマシン3は、入力信号inと現在の状態とから次の状態を求める関数func1を実現するための組み合わせ回路からなる演算回路C1と、この演算回路C1から出力される次の状態を保持する記憶素子Sと、この記憶素子Sから出力される現在の状態と入力信号inから現在の出力を求める関数func2を実現するための組み合わせ回路からなる演算回路C2とにより構成されている。
FIG. 15 is a block diagram showing the principle of a conventional Mealy state machine.
The Mealy type state machine 3 holds an arithmetic circuit C1 composed of a combinational circuit for realizing a function func1 for obtaining the next state from the input signal in and the current state, and the next state output from the arithmetic circuit C1. And a calculation circuit C2 including a combinational circuit for realizing a function func2 for obtaining a current output from the current state and the input signal in.

図16は、従来のステートマシンを有する半導体集積回路の原理を示す構成図である。
この図16には、半導体集積回路10をステートマシン1で制御する際の一般的な構成が示されている。ここで想定している半導体集積回路10は、クロック信号clkの立ち上がりエッジ(=立ち上がりのタイミング)に同期して動作するものとする。即ち、半導体集積回路10に対する入力信号in、及び、半導体集積回路内の全ての要素(ステートマシン1の状態stateや制御信号cs、半導体集積回路10の出力信号out)がクロック信号clkの立ち上がりエッジから、ある遅延時間後に変化するものとする。
FIG. 16 is a block diagram showing the principle of a semiconductor integrated circuit having a conventional state machine.
FIG. 16 shows a general configuration when the semiconductor integrated circuit 10 is controlled by the state machine 1. Assume that the semiconductor integrated circuit 10 assumed here operates in synchronization with the rising edge (= rising timing) of the clock signal clk. In other words, the input signal in to the semiconductor integrated circuit 10 and all the elements in the semiconductor integrated circuit (the state state and control signal cs of the state machine 1 and the output signal out of the semiconductor integrated circuit 10) from the rising edge of the clock signal clk. Suppose that it changes after a certain delay time.

図17は、図16の半導体集積回路10における動作を示すタイミングチャートである。
この図17において、PDは、被制御回路11が制御信号csを利用できる期間である。ステートマシン1の状態stateや出力信号out(即ち、制御対象に対する制御信号cs)が変化するタイミングは、信号の伝播遅延等の影響でクロック信号clkの立ち上がりエッジから少し遅れて変化する。被制御回路11が、ステートマシン1からの制御信号csを使ってクロック信号clkの次の立ち上がりエッジまでに機能に応じた演算処理を行い、出力信号outを生成するものとすると、ステートマシン1から出力される制御信号csはなるべく速く変化するのが望ましい。
FIG. 17 is a timing chart showing an operation in the semiconductor integrated circuit 10 of FIG.
In FIG. 17, PD is a period during which the controlled circuit 11 can use the control signal cs. The timing at which the state state of the state machine 1 and the output signal out (that is, the control signal cs for the control target) change changes slightly after the rising edge of the clock signal clk due to the influence of signal propagation delay or the like. Assuming that the controlled circuit 11 uses the control signal cs from the state machine 1 to perform arithmetic processing according to the function until the next rising edge of the clock signal clk and generates the output signal out, the state machine 1 It is desirable that the output control signal cs changes as quickly as possible.

しかしながら、従来のステートマシン1では、次のような課題があった。
図16に示すように、ステートマシン1を使って半導体集積回路10を制御する場合、通常、半導体集積回路10の内部構造は固定したものになるので、その中のステートマシン1の制御内容を変更したり修正するときには、ハードウェアを設計し直すことになる。例えば、大規模集積回路(以下「LSI」という。)ならば、設計から製造までの工程をやり直さなければいけない。プログラムすることができるLSI(Field Programmable Gate Array、以下「FPGA」という。)を用いれば、ハードウェアの回路構成を変更することができるが、FPGAはそのために複雑な構造をしており、コストも高く、変更作業に数分〜数時間掛かり、回路構成を変更するために専用のツールが必要になる場合もある。
However, the conventional state machine 1 has the following problems.
As shown in FIG. 16, when the semiconductor integrated circuit 10 is controlled using the state machine 1, the internal structure of the semiconductor integrated circuit 10 is usually fixed, so that the control contents of the state machine 1 in the semiconductor integrated circuit 10 are changed. When doing or modifying, the hardware is redesigned. For example, in the case of a large scale integrated circuit (hereinafter referred to as “LSI”), the process from design to manufacturing must be repeated. Using a programmable LSI (Field Programmable Gate Array, hereinafter referred to as “FPGA”), the hardware circuit configuration can be changed, but the FPGA has a complicated structure and costs. In some cases, the change operation takes several minutes to several hours, and a dedicated tool is required to change the circuit configuration.

又、特許文献2に記載されたステートマシン制御回路では、レジスタ群に格納された状態遷移情報を書き換えることで、制御内容を変更できるようになっているが、現在のステート番号及び入力信号を入力して、次のステート番号の状態遷移情報を格納するレジスタを選択するためのセレクト信号を出力する機能を有する組み合わせ論理回路等が、ハードウェアで構成されているので、制御内容の変更も一定の範囲内に制限される。   In the state machine control circuit described in Patent Document 2, the control contents can be changed by rewriting the state transition information stored in the register group, but the current state number and input signal are input. Since the combinational logic circuit or the like having a function of outputting a select signal for selecting a register for storing the state transition information of the next state number is configured by hardware, the control content can be changed constantly. Limited within range.

従って、従来の技術では、簡単で低コストなハードウェア構成で、且つ、ハードウェアの回路構成を変更せずにステートマシンの制御内容を任意に変更することが困難であった。   Therefore, with the conventional technology, it is difficult to arbitrarily change the control contents of the state machine with a simple and low-cost hardware configuration and without changing the hardware circuit configuration.

本発明のステートマシンでは、セレクタとクロック同期型メモリとを用いて、ムーア型ステートマシンを実現している。   In the state machine of the present invention, a Moore state machine is realized by using a selector and a clock synchronous memory.

ここで、前記セレクタは、ライトアドレス(書き込みアドレス)を入力すると共に、下位ビット又は上位ビットからなる前記ステートマシンに対する入力信号と、前記入力信号に対して異なる位置のビットにより構成され、前記ステートマシンの現在の状態を表す第1のデータとが組み合わされた第1の信号を入力し、第1及び第2の論理レベルに遷移するライトイネーブル信号が前記第1の論理レベルの時には前記ライトアドレスを選択し、前記ライトイネーブル信号が前記第2の論理レベルの時には前記第1の信号を選択するものである。   Here, the selector is configured to input a write address (write address), and is configured by an input signal to the state machine composed of lower bits or upper bits and bits at different positions with respect to the input signal. A first signal combined with first data representing the current state of the first and second logic levels is input, and when the write enable signal transitioning to the first and second logic levels is at the first logic level, the write address is set. The first signal is selected when the write enable signal is at the second logic level.

前記クロック同期型メモリは、複数の番地(アドレス)からなる記憶領域を有し、前記ライトイネーブル信号が前記第1の論理レベルの時に、クロック信号に同期してライトデータを取り込んで前記記憶領域の各アドレスに、前記ステートマシンの次の状態を表す第2のデータと、前記ステートマシンの出力信号を表す第3のデータとを格納し、前記ライトイネーブル信号が前記第2の論理レベルの時に、前記クロック信号に同期して前記クロック信号の1周期内に、前記セレクタにより選択された前記第1の信号により指定される前記記憶領域のアドレスから、前記第2及び第3のデータを有するリードデータを読み出し(リードし)、前記リードデータ中の前記第2のデータを前記第1のデータとして前記セレクタへ与えると共に、前記第3のデータを前記ステートマシンの出力信号として外部に出力するメモリである。   The clock synchronous memory has a storage area composed of a plurality of addresses (addresses). When the write enable signal is at the first logic level, the clock synchronous memory captures write data in synchronization with the clock signal and stores the write data in the storage area. In each address, second data representing the next state of the state machine and third data representing the output signal of the state machine are stored, and when the write enable signal is at the second logic level, Read data having the second and third data from the address of the storage area specified by the first signal selected by the selector within one cycle of the clock signal in synchronization with the clock signal Is read (read), the second data in the read data is supplied to the selector as the first data, and the The third data is a memory to be output to the outside as an output signal of the state machine.

本発明の他のステートマシンでは、第1のセレクタと、クロック同期型メモリと、第2のセレクタと、非同期型メモリとを用いて、ミーリ型ステートマシンを実現している。   In another state machine of the present invention, a memory type state machine is realized by using a first selector, a clock synchronous memory, a second selector, and an asynchronous memory.

ここで、前記第1のセレクタは、ライトアドレスを入力すると共に、下位ビット又は上位ビットからなる前記ステートマシンに対する入力信号と、前記入力信号に対して異なる位置のビットにより構成され、ステートマシンの現在の状態を表す第1のデータとが組み合わされた第1の信号を入力し、第1及び第2の論理レベルに遷移する第1のライトイネーブル信号が前記第1の論理レベルの時には前記ライトアドレスを選択し、前記第1のライトイネーブル信号が前記第2の論理レベルの時には前記第1の信号を選択するものである。   Here, the first selector inputs a write address, and is composed of an input signal for the state machine consisting of lower bits or upper bits and bits at different positions with respect to the input signal, and the current state machine When the first signal that is combined with the first data representing the state of the first input is input and the first write enable signal that transitions to the first and second logic levels is the first logic level, the write address And when the first write enable signal is at the second logic level, the first signal is selected.

前記クロック同期型メモリは、複数のアドレスからなる第1の記憶領域を有し、前記第1のライトイネーブル信号が前記第1の論理レベルの時に、クロック信号に同期して第1のライトデータを取り込んで前記第1の記憶領域の各アドレスに、前記ステートマシンの次の状態を表す第2のデータを格納し、前記第1のライトイネーブル信号が前記第2の論理レベルの時に、前記クロック信号に同期して前記クロック信号の1周期内に、前記第1のセレクタにより選択された前記第1の信号により指定される前記第1の記憶領域のアドレスから、前記第2のデータをリードして前記第1のデータとして前記第1のセレクタへ与えるメモリである。   The clock synchronous memory has a first storage area consisting of a plurality of addresses, and when the first write enable signal is at the first logic level, the first write data is synchronized with the clock signal. When the second data representing the next state of the state machine is stored in each address of the first storage area and the first write enable signal is at the second logic level, the clock signal is stored. The second data is read from the address of the first storage area designated by the first signal selected by the first selector within one cycle of the clock signal in synchronization with A memory provided as the first data to the first selector.

前記第2のセレクタは、前記ライトアドレスを入力すると共に、前記入力信号と前記第2のデータとが組み合わされた第2の信号を入力し、第1及び第2の論理レベルに遷移する第2のライトイネーブル信号が前記第1の論理レベルの時には前記ライトアドレスを選択し、前記第2のライトイネーブル信号が前記第2の論理レベルの時には前記第2の信号を選択するものある。   The second selector receives the write address and a second signal obtained by combining the input signal and the second data, and makes a transition to the first and second logic levels. When the write enable signal is at the first logic level, the write address is selected, and when the second write enable signal is at the second logic level, the second signal is selected.

前記非同期型メモリは、複数アドレスからなる第2の記憶領域を有し、第1及び第2の論理レベルに遷移する第3のライトイネーブル信号が前記第1の論理レベルの時に、第2のライトデータを取り込んで前記第2の記憶領域の各アドレスに、前記ステートマシンの現在の出力信号を表す第3のデータを格納し、前記第2のライトイネーブル信号が前記第2の論理レベルの時に、前記第2のセレクタにより選択された前記第2の信号により指定される前記第2の記憶領域のアドレスから、前記第3のデータをリードして前記ステートマシンの出力信号として外部に出力するメモリである。   The asynchronous memory has a second storage area having a plurality of addresses, and a second write area when a third write enable signal for transitioning to the first and second logic levels is at the first logic level. The third data representing the current output signal of the state machine is stored in each address of the second storage area by fetching data, and when the second write enable signal is at the second logic level, A memory that reads the third data from an address of the second storage area designated by the second signal selected by the second selector and outputs the third data as an output signal of the state machine to the outside; is there.

本発明の半導体集積回路では、前記発明のステートマシンと、前記ステートマシンの出力により制御され、前記クロック信号に同期して所定の処理を行う被制御回路とを備えている。   The semiconductor integrated circuit of the present invention includes the state machine of the present invention and a controlled circuit that is controlled by the output of the state machine and performs predetermined processing in synchronization with the clock signal.

本発明のステートマシンによれば、クロック同期型メモリの各アドレスにステートマシンの状態を表すデータを格納しておき、ステートマシンに対する入力信号と、そのクロック同期型メモリのリードデータ中の状態を表すデータとを組み合わせて、そのクロック同期型メモリのアドレスに入力することで、クロック信号に同期して状態を変化させながら動作するステートマシンとして振る舞わせる構成にしたので、簡単で低コストなハードウェア構成で、且つ、ハードウェアの回路構成を変更せずにステートマシンの制御内容を任意に変更することが可能なムーア型ステートマシンやミーリ型ステートマシンを提供できる。   According to the state machine of the present invention, data representing the state of the state machine is stored at each address of the clock synchronous memory, and the state of the input signal to the state machine and the read data of the clock synchronous memory is represented. Combined with data and input to the address of the clock-synchronous memory, it is configured to behave as a state machine that operates while changing its state in synchronization with the clock signal, so a simple and low-cost hardware configuration In addition, it is possible to provide a Moore state machine or a Mealy state machine that can arbitrarily change the control content of the state machine without changing the hardware circuit configuration.

本発明の半導体集積回路によれば、ステートマシン内のメモリの内容を半導体集積回路の外部、更には、半導体集積回路を組み込んだ製品の外部から書き換えて、ステートマシンの制御内容を変更することにより、その制御内容に対するハードウェアレベルの変更を容易に行うことが可能になる。   According to the semiconductor integrated circuit of the present invention, the contents of the memory in the state machine are rewritten from outside the semiconductor integrated circuit, and further from the outside of the product incorporating the semiconductor integrated circuit, thereby changing the control contents of the state machine. It becomes possible to easily change the hardware level for the control content.

ステートマシンは、クロック同期型メモリを備え、このメモリの各アドレスにステートマシンの状態を表すデータを格納しておき、ステートマシンに対する入力信号と、そのメモリのリードデータ中の状態を表すデータとを組み合わせて、そのメモリのアドレスに入力することで、クロック信号に同期して状態を変化させながら動作するムーア型ステートマシンとして振る舞わせることができる。   The state machine has a clock synchronous memory, and stores data representing the state of the state machine at each address of the memory, and receives an input signal to the state machine and data representing the state in the read data of the memory. By combining and inputting to the address of the memory, it can behave as a Moore state machine that operates while changing its state in synchronization with the clock signal.

(実施例1の構成)
図1は、本発明の実施例1を示すものであってクロック同期型メモリを使用して実現されたムーア型ステートマシンの概略の構成図である。
(Configuration of Example 1)
FIG. 1 shows a first embodiment of the present invention, and is a schematic configuration diagram of a Moore state machine realized using a clock synchronous memory.

このムーア型ステートマシン20は、jビット(bit)の入力信号in[j-1:0]を入力してkビットの出力信号out[k-1:0]を出力するものであり、アドレス信号addr[n:0]を選択して出力するセレクタ21と、そのアドレス信号addr[n:0]により指定されたアドレス(番地)に対してデータのライト(書き込み)及びリード(読み出し)が行われるクロック同期型メモリ30等とにより、構成されている。   This Moore type state machine 20 inputs a j-bit input signal in [j-1: 0] and outputs a k-bit output signal out [k-1: 0], and an address signal Data is written (written) and read (read) to the selector 21 that selects and outputs addr [n: 0] and the address (address) specified by the address signal addr [n: 0]. The clock synchronous memory 30 and the like are used.

セレクタ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に与えるものである。   The selector 21 inputs an n + 1 bit write address waddr [n: 0] to the clock synchronous memory 30 and inputs a lower bit or an upper bit (for example, lower j bit) to the state machine 20. The signal in [j-1: 0] and the first data rdata [m: k] representing the state machine state of, for example, the upper i bits of the read data rdata [m: 0] from the clock synchronous memory 30 The address selection is made up of a write enable signal we that receives a first signal IN combined with and transitions to a first logic level (eg, “1”) and a second logic level (eg, “0”). When the signal is “1”, the write address waddr [n: 0] is selected, and when the address selection signal (we) is “0”, the first signal IN is selected, and the address signal as a result of this selection is selected. addr [n: 0] is output and the clock synchronous memory 30 is output. It is intended to give.

クロック同期型メモリ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]として出力される。   The clock synchronous memory 30 enters the write mode when the write enable signal we is “1” at the edge (for example, rising edge) of the clock signal clk, and the n + 1 bit write address waddr [n: 0] at this time. Write data wdata [m: 0] is written to the address indicated, and when the write enable signal we is “0” at the rising edge of the clock signal clk, the read mode is entered, the address signal addr [n: 0] is taken in, and the clock After a certain delay time (read data output delay) from the rising edge of the signal clk, the stored contents of the address specified by the address signal addr [n: 0] are output as read data rdata [m: 0]. The read data rdata [m: 0] is data in which the first data rdata [m: k] of the upper i bits represents the state of the state machine 20, and the second data rdata [k-1: of lower k bits. 0] is output as the output signal out [k-1: 0] of the state machine 20.

このクロック同期型メモリ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により選択される。   The address signal addr [n: 0] to the clock synchronous memory 30 is input by the selector 21 when the write enable signal we is “1” (that is, at the time of writing), write data waddr [n: 0]. As shown, when the write enable signal we is “0” (that is, when reading), the upper i bits are the first data rdata [m: k], and the lower j bits are the input signal. The signal is selected by the write enable signal we so that the first signal IN such as in [j-1: 0] is input.

図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]を出力する回路である。
FIG. 2 is a schematic configuration diagram showing the clock synchronous memory 30 in FIG.
The clock synchronous memory 30 is configured by a semiconductor memory or the like that can read the read data rdata [m: 0] within one cycle of the clock signal clk in synchronization with the rising edge of the clock signal clk. The clock synchronous memory 30 includes, for example, an address decoder 31 that decodes the address signal addr [n: 0] given from the selector 21 in synchronization with the rising edge of the clock signal clk. A storage area 32 having an address 2 (n + 1) is connected. The storage area 32 includes a memory cell array having a plurality of static random access memory cells (hereinafter referred to as “SRAM cells”) that can read and write data, or a plurality of registers. Each address includes upper i-bit first data rdata [m: k] representing a state machine state and lower k-bit second data rdda [k-1: 0] representing a state machine output signal. Stored. An input / output circuit 33 is connected to the storage area 32. When the write enable signal we is “1”, the input / output circuit 33 inputs the write data (wdata [m: 0]) in synchronization with the rising edge of the clock signal clk and applies the write data to the storage area 32. This is a circuit for outputting read data rdata [m: 0] from the storage area 32 in synchronization with the rising edge of the clock signal clk when we is “0”.

図3は、図2のクロック同期型メモリ30に対するアドレス信号addr[n:0]を示す概略の構成図である。   FIG. 3 is a schematic configuration diagram showing the address signal addr [n: 0] for the clock synchronous memory 30 of FIG.

アドレス信号addr[n:0]は、ステートマシン20の現在の状態を示す上位iビット(bit)のデータ[n:j]と、ステートマシン20に対する現在の入力を示す下位jビット(bit)のデータ[j-1:0]とにより、構成されている。   The address signal addr [n: 0] includes data [n: j] of upper i bits (bit) indicating the current state of the state machine 20 and lower j bits (bit) indicating the current input to the state machine 20. Data [j-1: 0].

図4は、図2のクロック同期型メモリ30のリードデータrdata[m:0]を示す概略の構成図である。   FIG. 4 is a schematic configuration diagram showing the read data rdata [m: 0] of the clock synchronous memory 30 of FIG.

リードデータrdata[m:0]は、ステートマシン20の次の状態を示す上位iビット(bit)のデータ[m:k]と、ステートマシン20の次の状態における出力を示す下位kビット(bit)のデータ[k-1:0]とにより、構成されている。   The read data rdata [m: 0] includes upper-order i-bit (bit) data [m: k] indicating the next state of the state machine 20 and lower-order k bits (bits) indicating the output of the state machine 20 in the next state. ) Data [k-1: 0].

(実施例1の動作)
本実施例1のムーア型ステートマシン20では、以下のようなクロック同期型メモリ30に対するライト動作(1)と、リード動作であるステートマシンの動作(2)とが行われる。
(Operation of Example 1)
In the Moore state machine 20 of the first embodiment, the following write operation (1) to the clock synchronous memory 30 and the read state operation (2) of the state machine are performed.

(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) Write Operation to Memory 30 FIG. 5 is a timing chart showing a write operation to the memory 30 in FIG.
In FIG. 5, times t1, t2, t3,... Of rising edges of the clock signal clk are sample timings of the memory 30. S1, S2, S3,... In {S1, I1}, {S2, I2}, {S3, I3},..., Which are write addresses waddr [n: 0], are Moore state machines to be realized. 20 states are indicated, and I1, I2, I3,... Indicate their input signals. WDATA1, WDATA2, WDATA3,..., Which is the write data wdata [m: 0], is expressed as the following expression (1) by the functions func1, func2.
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の各アドレスにライトされる。   The write data wdata [m: 0] of Equation (1) calculated in advance is written to each address of the memory 30 in the following procedure.

図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に入力される。   In the Moore state machine 20 of FIG. 1, the write enable signal we becomes “1”, the memory 30 enters the write mode, and the selector 21 switches to the write address waddr [n: 0] side. The write address waddr [n: 0] and the write data wdata [m: 0] are input to the state machine 20 in synchronization with the sample timing times t1, t2, t3,... At the rising edge of the clock signal clk. The input write address waddr [n: 0] is selected by the selector 21, and an address signal addr [n: 0] as a selection result is input to the memory 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は「現在の状態」から「現在の出力」を決めるための関数である。ライトする値は、予め計算されている。   In the memory 30 of FIG. 2, the input address waddr [n: 0] is decoded by the address decoder 31, and the address of the storage area 32 is designated by the decoding result. The input write data wdata [m: 0] is taken in by the input / output circuit 33 and written to a specified address in the storage area 32. At this time, {func1 (S, I), func2 (func1 The value (S, I))} is written. func1 is a function for determining "next state" from "current state" and "current input", and func2 is a function for determining "current output" from "current state". The value to be written is calculated in advance.

(2) メモリ30のリード動作(ステートマシンの動作)
図6は、図1中のメモリ30のリード動作であるステートマシンの動作を示すタイミングチャートである。
(2) Memory 30 read operation (state machine operation)
FIG. 6 is a timing chart showing the operation of the state machine, which is the read operation of the memory 30 in FIG.

図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の出力遅延時間である。   In FIG. 6, t11, t12, t13,... Are times of rising edges of the clock signal clk, and T is one cycle of the clock signal clk. In the address signal addr [j-1: 0] as the input signal in [j-1: 0], I1, I2, I3,... Indicate each input of the Moore type state machine 20, and the address signal addr [n : j], the upper i-bit read data rdata [m: k], S1, S2, S3,... indicate each state of the state machine 20. O1, O2, O3,... In the output signal out [k-1: 0] of the state machine 20 which is the lower k-bit read data rdata [k-1: 0] indicates each output. DL is the output delay time of the memory 30 from the time t11,... Of the rising edge of the clock signal clk.

各状態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)
Each state S2, S3,... And each output O1, O2, O3,... Is expressed by the function func1, func2 as in the following equation (2).
S2 = func1 (S1, I1) O1 = func2 (S1)
S3 = func1 (S2, I2) O2 = func2 (S2)
O3 = func2 (S3)
... (2)

前記(1)のライト動作によってメモリ30の内容が設定されると、以下の手順で、メモリ30のアドレスに「現在の状態」と「現在の入力」を入力することにより、次のサイクルにおいて、「次の状態」と「次の状態における出力」がメモリ30からリードされる。   When the contents of the memory 30 are set by the write operation of (1), the “current state” and the “current input” are input to the addresses of the memory 30 in the following procedure in the following cycle. “Next state” and “output in the next state” are read from the memory 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に入力される。   In the Moore state machine 20 of FIG. 1, after the write operation to the memory 30 is completed, when the write enable signal we is set to “0”, the memory 30 enters the read mode, and the selector 21 switches to the first signal IN side. . If the clock signal clk and the input signal in [j-1: 0] are input to the state machine 20, the lower-order j bits of the clock signal clk are synchronized with the times t11, t12, t13,. A first signal IN in which the input signal in [j-1: 0] and the upper i-bit read data rdata [m: k] are combined is selected by the selector 21, and the address signal addr [n as a result of this selection is selected. : 0] is input to the memory 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から出力される。   In the memory 30 of FIG. 2, the input address addr [n: 0] is decoded by the address decoder 31, and the address of the storage area 32 is designated by the decoding result. From the designated address, the clock signal clk At each rising edge time t11, t12, t13,..., The read data rdata [m: 0] (that is, the states S2, S3,... And the outputs O2, O3,. Read and output from the input / output circuit 33. Of the output read data rdata [m: 0], the upper i-bit read data rdata [m: k] is data representing the states S2, S3,... Of the state machine 20 and is fed back to the selector 21. Input low-order k-bit read data [k-1: 0] is data representing the output O2, O3,... Of the state machine 20, and is output to the outside as an output signal out [k-1: 0]. Is done. At this time, only reading is repeated for the memory 30. By repeating this reading, the “next state” and the “output in the next state” are sequentially read from the memory 30 and the input / output circuit 33. Is output from.

(実施例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)のような効果がある。
(Effect of Example 1)
According to the first embodiment, the clock synchronous memory 30 is used, data representing the state S of the Moore state machine 20 is stored in each address of the memory 30, and the input signal in [j− 1: 0] and the data rdata [m: k] representing the state S in the read data rdata [m: 0] of the memory 30 are combined and input to the address of the memory 30 to generate the clock signal clk. Since it is configured to behave as the Moore state machine 20 that operates while changing the state S in synchronization, the following effects (a) to (c) are obtained.

(a) メモリ30に書き込むデータを変更することで、同一のハードウェア構成で、ステートマシン20の振る舞い(即ち、単位時間毎の状態Sと出力O)を変更することができる。ステートマシン20の入力信号数、出力信号数、状態数は、ステートマシン20の制御内容が複雑になるほど大きくなるが、メモリ30のアドレス/リードデータ/ライトデータのビット数の大きいメモリを用いれば、複雑なステートマシン20を実現できる。   (A) By changing the data to be written in the memory 30, the behavior of the state machine 20 (that is, the state S and the output O per unit time) can be changed with the same hardware configuration. The number of input signals, the number of output signals, and the number of states of the state machine 20 increase as the control contents of the state machine 20 become more complicated. However, if a memory having a large number of bits of address / read data / write data is used, A complicated state machine 20 can be realized.

(b) 従来のステートマシンの場合、ステートマシンの制御内容(即ち、状態と出力信号を決めるための関数)の複雑さによってステートマシンの動作速度(即ち、クロック周波数)の上限値が変わるので、ステートマシンのクロック周波数の上限値を知るために、タイミング解析という作業が必要になる。これに対し、本実施例1では、メモリ30のAC特性の1つであるリードデータ出力遅延(DL)によってクロック周波数の上限値が決まるので、ステートマシン20の制御内容の複雑さに依存せず、予めクロック周波数の上限値を知ることができる。なお、メモリ30へのライト動作は、通常はシステム起動時等に1回だけ行われるものなので、ライト時間に時間が掛かったとしても問題にはならない。   (B) In the case of a conventional state machine, the upper limit value of the operation speed (ie, clock frequency) of the state machine changes depending on the complexity of the control contents of the state machine (ie, the function for determining the state and the output signal). In order to know the upper limit of the clock frequency of the state machine, work called timing analysis is required. On the other hand, in the first embodiment, the upper limit value of the clock frequency is determined by the read data output delay (DL) which is one of the AC characteristics of the memory 30, so it does not depend on the complexity of the control contents of the state machine 20. The upper limit value of the clock frequency can be known in advance. Note that the write operation to the memory 30 is normally performed only once at the time of system startup or the like, so it does not matter even if the write time is long.

(c) 前記(a)及び(b)により、簡単で低コストなハードウェア構成で、且つ、ハードウェアの回路構成を変更せずにステートマシンの制御内容を任意に変更することが可能なムーア型ステートマシン20を提供できる。   (C) According to the above (a) and (b), a Moore that has a simple and low-cost hardware configuration and can arbitrarily change the control contents of the state machine without changing the hardware circuit configuration. A mold state machine 20 can be provided.

(実施例2の構成)
図7は、本発明の実施例2を示すものであってクロック同期型メモリ及び非同期型メモリを使用して実現されたミーリ型ステートマシンの概略の構成図であり、実施例1を示す図1中の要素と共通の要素には共通の符号が付されている。
(Configuration of Example 2)
FIG. 7 shows a second embodiment of the present invention, and is a schematic configuration diagram of a memory type state machine realized by using a clock synchronous memory and an asynchronous memory, and shows the first embodiment. Elements common to the elements inside are given common reference numerals.

このミーリ型ステートマシン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等とにより、構成されている。   This Mealy state machine 20A inputs a j-bit input signal in [j-1: 0] and outputs a k-bit output signal out [k-1: 0]. The first address signal A first selector 21 that selects and outputs addr1 [n: 0], and a clock synchronous type in which data is written to and read from an address specified by the first address signal addr1 [n: 0] The memory 30A, a second selector 22 connected to the output side of the clock synchronous memory 30A, selecting and outputting the second address signal addr2 [n: 0], and the second address signal addr2 [n [0]], an asynchronous memory 40 and the like in which data is written to and read from the address designated by [0].

第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に与えるものである。   As in the first embodiment, the first selector 21 inputs the n + 1-bit write address waddr [n: 0] to the clock synchronous memory 30A, and lower bits or upper bits (for example, the state machine 20A) A lower j bit) input signal in [j-1: 0] and read data rdata1 [i-1: 0] from the memory 30A, for example, a second state representing the current state of the upper i-bit state machine A first signal IN1 combined with data is input, and a first write enable signal we1 transitions to a first logic level (eg, “1”) and a second logic level (eg, “0”). When the address selection signal consisting of "1" is selected, the write address waddr [n: 0] is selected, and when the address selection signal (we1) is "0", the first signal IN1 is selected and the selection result Output the first address signal addr1 [n: 0] This is given to the memory 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]として出力するものである。   Similar to the clock synchronous memory 30 of the first embodiment, the clock synchronous memory 30A has a first storage area composed of a plurality of addresses, and the first write is performed at the edge (for example, the rising edge) of the clock signal clk. When the enable signal we1 is “1”, the write mode is set. At this time, the n + 1-bit write address waddr [n: 0] indicates the first storage area address indicated by the i + 1-bit first write data wdata1 [ i-1: 0] is written, and when the first write enable signal we1 is “0” at the rising edge of the clock signal clk, the read mode is entered, and the first address signal addr1 [n: 0] is fetched. After a certain delay time (read data output delay) from the rising edge of the clock signal clk, the stored contents of the address in the first storage area specified by the first address signal addr1 [n: 0] are read data rdat. It is output as a1 [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により選択される。   The first address signal addr1 [n: 0] for the memory 30A is output by the first selector 21 when the first write enable signal we1 is “1” (that is, during writing). When the address waddr [i-1: 0] is input and when the first write enable signal we1 is “0” (that is, at the time of reading), the upper i bits are the second data rdata1 [ j-1: 0] and selected by the first write enable signal we1 so that the first signal IN1 whose lower j bits are the input signal in [j-1: 0] is input. The

第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へ与えるものである。   The second selector 22 inputs the write address waddr [n: 0], the upper i-bit second data rdata1 [i-1: 0], and the lower j-bit input signal in [j-1: 0]. And a second write enable signal we2 that transitions to a first logic level (eg, “1”) and a second logic level (eg, “0”). For example, when the address is “1”, the write address waddr [n: 0] is selected, and when the second write enable signal we2 is “0”, the second signal IN2 is selected. The address signal addr2 [n: 0] is output and given to the asynchronous memory 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]として出力するものである。   Asynchronous memory 40 has a second storage area composed of a plurality of addresses in substantially the same manner as clock synchronous memory 30A, and has a first logic level (for example, “1”) and a second logic level (for example, For example, when the third write enable signal we3 transitioning to “0” is “1”, the second write data wdata2 [k-1: 0] is fetched and the address of the state machine is stored in each address of the second storage area. The third data rdata2 [k-1: 0] representing the current output signal is stored, and the second signal IN2 selected by the second selector 22 when the second write enable signal we2 is “0”. After a certain delay time (read data output delay) from the address of the second storage area specified by, the third data rdata2 [k-1: 0] is read and the output signal out [k-1: 0] Is output as

本実施例2のクロック同期型メモリ30Aは、実施例1の図2に示すクロック同期型メモリ30とほぼ同様に、SRAMや、或いは複数のレジスタ等により構成されている。又、非同期型メモリ40は、例えば、図2において、クロック信号clkが削除され、アドレスデコーダ31及び入/出力回路33がクロック信号clkに対して非同期に動作するような構成になっている。   The clock synchronous memory 30A according to the second embodiment is configured by an SRAM, a plurality of registers, or the like in substantially the same manner as the clock synchronous memory 30 shown in FIG. 2 according to the first embodiment. Further, the asynchronous memory 40 is configured such that, for example, in FIG. 2, the clock signal clk is deleted, and the address decoder 31 and the input / output circuit 33 operate asynchronously with respect to the clock signal clk.

図8は、図7のクロック同期型メモリ30A及び非同期型メモリ40に対する第1のアドレス信号addr1[n:0]及び第2のアドレス信号addr2[n:0]を示す概略の構成図である。   FIG. 8 is a schematic configuration diagram showing the first address signal addr1 [n: 0] and the second address signal addr2 [n: 0] for the clock synchronous memory 30A and the asynchronous memory 40 of FIG.

各アドレス信号addr1[n:0],addr2[n:0]は、ステートマシン20Aの現在の状態を示す上位iビットのデータ[n:j]と、ステートマシン20Aに対する現在の入力を示す下位jビットのデータ[j-1:0]とにより、構成されている。   The address signals addr1 [n: 0] and addr2 [n: 0] are high-order i-bit data [n: j] indicating the current state of the state machine 20A and low-order j indicating the current input to the state machine 20A. It consists of bit data [j-1: 0].

(実施例2の動作)
本実施例2のミーリ型ステートマシン20Aでは、以下のようなクロック同期型メモリ30Aに対するライト動作(1)と、非同期型メモリ40に対するライト動作(2)と、クロック同期型メモリ30A及び非同期型メモリ40のリード動作であるステートマシンの動作(3)とが行われる。
(Operation of Example 2)
In the memory type state machine 20A of the second embodiment, the following write operation (1) for the clock synchronous memory 30A, write operation (2) for the asynchronous memory 40, the clock synchronous memory 30A, and the asynchronous memory The state machine operation (3), which is 40 read operations, is performed.

(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) Write Operation to Memory 30A FIG. 9 is a timing chart showing a write operation to the memory 30A in FIG.
9, times t1, t2, t3,... Of rising edges of the clock signal clk are write timings of the memory 30A. S1, S2, S3,... In {S1, I1}, {S2, I2}, {S3, I3},..., Which are write addresses waddr [n: 0], are memory state machines to be realized. Each state of 20A is shown, and I1, I2, I3,. The first write data wdata1 [i-1: 0] is represented by functions func1 (S1, I1), func1 (S2, I2), funcl (S3, I3),.

第1のライトデータwdata1[i-1:0]は、以下の手順でメモリ30Aの各アドレスにライトされる。   The first write data wdata1 [i-1: 0] is written to each address of the memory 30A by the following procedure.

図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に入力される。   In the Mealy state machine 20A of FIG. 7, the first write enable signal we1 becomes “1”, the memory 30A enters the write mode, and the first selector 21 switches to the write address waddr [n: 0] side. In synchronization with the write timing times t1, t2, t3,... Of the rising edge of the clock signal clk, the write address waddr [n: 0] and the first write data wdata1 [i-1: 0] are stored in the state machine 20A. Is input. The input write address waddr [n: 0] is selected by the selector 21, and the first address signal addr1 [n: 0] as the selection result is input to the memory 30A.

メモリ30Aにおいて、入力された第1のアドレス信号addr1[n:0]により第1の記憶領域のアドレスが指定される。入力された第1のライトデータwdata1[i-1:0]は、第1の記憶領域における指定されたアドレスへライトされる。この際、実現したいステートマシン20Aの各状態S、及び、各入力信号Iの全ての組み合わせについて、メモリ30Aの{S,I}アドレスに関数func1(S,I)という値がライトされる。func1は「現在の状態」と「現在の入力」から「次の状態」を決めるための関数である。   In the memory 30A, the address of the first storage area is designated by the input first address signal addr1 [n: 0]. The input first write data wdata1 [i-1: 0] is written to a specified address in the first storage area. At this time, the value of the function func1 (S, I) is written to the {S, I} address of the memory 30A for each combination of the state S and each input signal I of the state machine 20A to be realized. func1 is a function for determining "next state" from "current state" and "current input".

(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) Write Operation to Memory 40 FIG. 10 is a timing chart showing a write operation to the memory 40 in FIG.
10, times t1, t2, t3,... Of rising edges of the third write enable signal we3 are write timings of the memory 40. The second write data wdata2 [k-1: 0] is represented by functions func2 (S1, I1), func2 (S2, I2), func3 (S3, I3),.

第2のライトデータwdata2[k-1:0]は、以下の手順でメモリ40の各アドレスにライトされる。   The second write data wdata2 [k-1: 0] is written to each address of the memory 40 in the following procedure.

図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に入力される。   In the memory type state machine 20A of FIG. 7, when the second write enable signal we2 is “1”, the memory 40 is in the write mode, and the second selector 22 is switched to the write address waddr [n: 0] side. In synchronization with the write timing times t1, t2, t3,... Of the rising edge of the third write enable signal we3, the write address waddr [n: 0] and the second write data wdata2 [k-1: 0] Is input to the state machine 20A. The input write address waddr [n: 0] is selected by the selector 22, and the second address signal addr2 [n: 0] as the selection result is input to the memory 40.

メモリ40において、入力された第2のアドレス信号waddr2[n:0]により第2の記憶領域のアドレスが指定される。入力された第2のライトデータwdata2[k-1:0]は、第2の記憶領域における指定されたアドレスへライトされる。この際、実現したいミーリ型ステートマシン20Aの各状態S、及び、各入力信号Iの全ての組み合わせについて、メモリ40の{S,I}アドレスに関数func2(S,I)という値がライトされる。func2は「現在の状態」と「現在の入力」から「現在の出力」を決めるための関数である。   In the memory 40, the address of the second storage area is designated by the input second address signal waddr2 [n: 0]. The input second write data wdata2 [k-1: 0] is written to a specified address in the second storage area. At this time, the value of the function func2 (S, I) is written to the {S, I} address of the memory 40 for each combination of the state S and each input signal I of the memory type state machine 20A to be realized. . func2 is a function for determining "current output" from "current state" and "current input".

(3) メモリ30A及び40のリード動作(ステートマシンの動作)
図11は、図7中のメモリ30A及び40のリード動作であるステートマシンの動作を示すタイミングチャートである。
(3) Read operation of the memories 30A and 40 (state machine operation)
FIG. 11 is a timing chart showing the operation of the state machine, which is the read operation of the memories 30A and 40 in FIG.

図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の出力遅延時間である。   In FIG. 11, t11, t12, t13,... Are times of rising edges of the clock signal clk, and T is one cycle of the clock signal clk. I1, I2, I3,... In the address signals addr1 [j-1: 0], addr2 [j-1: 0], which are the input signals in [j-1: 0], are each of the memory type state machine 20A. S1, S2, S3,... In the read data rdata1 [i-1: 0] as the address signal addr1 [n: j] and the address signal addr2 [n: j] are indicated in the state machine 20A. Indicates the state. O1, O2, O3,... In the output signal out [k-1: 0], which is the read data rdata2 [k-1: 0], indicates each output of the state machine 20A. DL1 is the output delay time of the memory 30A from the time t11,... Of the rising edge of the clock signal clk, and DL2 is the output delay time of the memory 40 after the output delay time DL1.

各状態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)
Each state S2, S3,... And each output O1, O2, O3,... Is expressed by the function func1, func2 as in the following equation (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からリードされる。   When the contents of the memory 30A are set by the write operation of (1), in the next cycle, by inputting “current state” and “current input” to the address of the memory 30A in the following procedure, The “next state” is read from the memory 30A. Further, when the contents of the memory 40 are set by the write operation of (2), the “current state” and “current input” are input to the addresses of the memory 40 by the following procedure, thereby The “current output” is read from the memory 40 after the read data output delay time DL2.

図7のミーリ型ステートマシン20Aにおいて、メモリ30Aとメモリ40に対するライト動作が完了した後、第1、第2のライトイネーブル信号we1,we2を“0”、第3のライトイネーブル信号we3を“1”にすると、メモリ30A及び40がリードモードになり、第1のセレクタ21が第1の信号IN1側に切り替わり、第2のセレクタ22が第2の信号IN2側に切り替わる。   In the memory type state machine 20A of FIG. 7, after the write operation to the memory 30A and the memory 40 is completed, the first and second write enable signals we1, we2 are set to “0”, and the third write enable signal we3 is set to “1”. Then, the memories 30A and 40 are in the read mode, the first selector 21 is switched to the first signal IN1 side, and the second selector 22 is switched to the second signal IN2 side.

クロック信号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]として出力される。   If the clock signal clk and the input signal in [j-1: 0] are input to the state machine 20A, the input signal in [j-1: 0] and the read data rdada1 [i-1 are generated at every rising edge of the clock signal clk. : 0] is selected by the first selector 21 and the first address signal addr1 [n: 0], which is the selection result, is input to the memory 30A. State machine states S1, S2, S3,... Are read. The second signal IN2 in which the states S1, S2, S3,... And the input signal in [j-1: 0] are combined is selected by the second selector 22, and the second result, which is the result of this selection, is selected. Address signal addr2 [n: 0] is input to the memory 40, and the outputs O1, O2, O3,. At this time, only reading is repeated for the memory 30A and the memory 40, and by repeating this reading, the "current output" is sequentially read from the memory 40 and the output signal out [k- 1: 0].

(実施例2の効果)
本実施例2によれば、クロック同期型メモリ30Aと非同期型メモリ40を用いて、クロック信号clkに同期して状態Sを変化させながら動作するミーリ型ステートマシン20Aとして振る舞わせる構成にしたので、実施例1とほぼ同様の効果がある。
(Effect of Example 2)
According to the second embodiment, the clock synchronous memory 30A and the asynchronous memory 40 are used to behave as a memory type machine 20A that operates while changing the state S in synchronization with the clock signal clk. There are almost the same effects as in the first embodiment.

図12は、本発明の実施例3を示すステートマシンを搭載したシステムの概略の構成図である。   FIG. 12 is a schematic configuration diagram of a system including a state machine according to the third embodiment of the present invention.

このシステム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内に設けられるメモリへの書き込み等を制御するものである。   The system 50 includes an LSI, a board, and the like, and has a central processing unit (hereinafter referred to as “CPU”) 51 that performs program control of the entire system. A system bus 52 is connected to the CPU 51, and a communication module 53 for performing communication with the outside and reading data and a memory controller 54 are connected to the system bus 52. One or a plurality of semiconductor integrated circuits (for example, two modules) 60-1 and 60-2 are connected to the memory controller 54. The modules 60-1 and 60-2 include state machines 20-1 and 20-2 shown in FIGS. 1 and 7, and controlled circuits controlled by the state machines 20-1 and 20-2, respectively. 61-1, 61-2, etc. are provided respectively. The memory controller 54 controls writing to a memory provided in the state machines 20-1 and 20-2 of the modules 60-1 and 60-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の制御内容に対するハードウェアレベルの変更を容易に行うことが可能になる。   In the system 50 having such a configuration, for example, the CPU 51 controls the communication module 53 to externally write data to be written to the memories in the state machines 20-1 and 20-2 of the modules 60-1 and 60-2. The state machine 20 of each module 60-1, 60-2 in the system 50 is written by writing the read data into the memory in the state machine 20-1, 20-2 of each module 60-1, 60-2. The control contents of -1 and 20-2 can be easily changed. For example, a server or the like on the Internet communicates with the CPU 51 in the system 50 to easily change the hardware level for the control contents of the state machines 20-1 and 20-2 in the modules 60-1 and 60-2. It becomes possible to do.

(変形例)
本発明は、上記実施例に限定されず、例えば、図1及び図7におけるクロック同期型メモリ30,30Aを、クロック信号clkの立ち下がりエッジに同期して動作する構成に変更したり、クロック同期型メモリ30,30A及び非同期型メモリ40を、図2以外の他の回路構成に変更したり、或いは、図1のムーア型ステートマシン20内や図7のミーリ型ステートマシン20A内に、他の回路を付加して機能の拡張を図る等、種々の利用形態や変形が可能である。
(Modification)
The present invention is not limited to the above embodiment. For example, the clock synchronous memories 30 and 30A in FIGS. 1 and 7 are changed to a configuration that operates in synchronization with the falling edge of the clock signal clk, The type memories 30 and 30A and the asynchronous type memory 40 are changed to other circuit configurations other than those shown in FIG. 2, or other types in the Moore type state machine 20 shown in FIG. 1 and the Melee type state machine 20A shown in FIG. Various usage forms and modifications are possible, such as adding a circuit to expand the function.

本発明の実施例1を示すものであってクロック同期型メモリを使用して実現されたムーア型ステートマシンの概略の構成図である。BRIEF DESCRIPTION OF THE DRAWINGS It is Example 1 of this invention, Comprising: It is a schematic block diagram of the Moore type state machine implement | achieved using the clock synchronous memory. 図1中のクロック同期型メモリ30を示す概略の構成図である。It is a schematic block diagram which shows the clock synchronous memory 30 in FIG. 図2のクロック同期型メモリ30に対するアドレス信号addr[n:0]を示す概略の構成図である。FIG. 3 is a schematic configuration diagram showing an address signal addr [n: 0] for the clock synchronous memory 30 of FIG. 2. 図2のクロック同期型メモリ30のリードデータrdata[m:0]を示す概略の構成図である。FIG. 3 is a schematic configuration diagram showing read data rdata [m: 0] of the clock synchronous memory 30 of FIG. 2. 図1中のメモリ30に対するライト動作を示すタイミングチャートである。2 is a timing chart showing a write operation with respect to a memory 30 in FIG. 1. 図1中のメモリ30のリード動作であるステートマシンの動作を示すタイミングチャートである。3 is a timing chart showing an operation of the state machine, which is a read operation of the memory 30 in FIG. 1. 本発明の実施例2を示すものであってクロック同期型メモリ及び非同期型メモリを使用して実現されたミーリ型ステートマシンの概略の構成図である。FIG. 9 is a schematic configuration diagram of a memory type state machine according to a second embodiment of the present invention, which is realized by using a clock synchronous memory and an asynchronous memory. 図7のクロック同期型メモリ30A及び非同期型メモリ40に対する第1のアドレス信号addr1[n:0]及び第2のアドレス信号addr2[n:0]を示す概略の構成図である。FIG. 8 is a schematic configuration diagram showing a first address signal addr1 [n: 0] and a second address signal addr2 [n: 0] for the clock synchronous memory 30A and the asynchronous memory 40 of FIG. 図7中のメモリ30Aに対するライト動作を示すタイミングチャートである。8 is a timing chart showing a write operation with respect to a memory 30A in FIG. 図7中のメモリ40に対するライト動作を示すタイミングチャートである。8 is a timing chart showing a write operation with respect to a memory 40 in FIG. 図7中のメモリ30A及び40のリード動作であるステートマシンの動作を示すタイミングチャートである。It is a timing chart which shows operation | movement of the state machine which is read operation | movement of the memories 30A and 40 in FIG. 本発明の実施例3を示すステートマシンを搭載したシステムの概略の構成図である。It is a schematic block diagram of the system carrying the state machine which shows Example 3 of this invention. ステートマシンの原理を説明するための構成及び動作を示す図である。It is a figure which shows the structure and operation | movement for demonstrating the principle of a state machine. 従来のムーア型ステートマシンの原理を示す構成図である。It is a block diagram which shows the principle of the conventional Moore type state machine. 従来のミーリ型ステートマシンの原理を示す構成図である。It is a block diagram which shows the principle of the conventional Miley type | mold state machine. ステートマシンを有する半導体集積回路の原理を示す構成図である。It is a block diagram which shows the principle of the semiconductor integrated circuit which has a state machine. 図16の半導体集積回路10における動作を示すタイミングチャートである。17 is a timing chart showing an operation in the semiconductor integrated circuit 10 of FIG.

符号の説明Explanation of symbols

20 ムーア型ステートマシン
20A ミーリ型ステートマシン
20−1,20−2 ステートマシン
21,22 セレクタ
30,30A クロック同期型メモリ
40 非同期型メモリ
50 システム
60−1,60−2 モジュール
20 Moore State Machine 20A Mealy State Machine 20-1, 20-2 State Machine 21, 22 Selector 30, 30A Clock Synchronous Memory 40 Asynchronous Memory 50 System 60-1, 60-2 Module

Claims (3)

ライトアドレスを入力すると共に、下位ビット又は上位ビットからなるステートマシンに対する入力信号と、前記入力信号に対して異なる位置のビットにより構成され、前記ステートマシンの現在の状態を表す第1のデータとが組み合わされた第1の信号を入力し、第1及び第2の論理レベルに遷移するライトイネーブル信号が前記第1の論理レベルの時には前記ライトアドレスを選択し、前記ライトイネーブル信号が前記第2の論理レベルの時には前記第1の信号を選択するセレクタと、
複数番地からなる記憶領域を有し、前記ライトイネーブル信号が前記第1の論理レベルの時に、クロック信号に同期してライトデータを取り込んで前記記憶領域の各番地に、前記ステートマシンの次の状態を表す第2のデータと、前記ステートマシンの出力信号を表す第3のデータとを格納し、前記ライトイネーブル信号が前記第2の論理レベルの時に、前記クロック信号に同期して前記クロック信号の1周期内に、前記セレクタにより選択された前記第1の信号により指定される前記記憶領域の番地から、前記第2及び第3のデータを有するリードデータを読み出し、前記リードデータ中の前記第2のデータを前記第1のデータとして前記セレクタへ与えると共に、前記第3のデータを前記ステートマシンの出力信号として外部に出力するクロック同期型メモリとを備えたことを特徴とするステートマシン。
The write address is input, and an input signal to the state machine composed of lower bits or upper bits, and first data that is composed of bits at different positions with respect to the input signal and that represents the current state of the state machine, When the combined first signal is input and the write enable signal transitioning to the first and second logic levels is the first logic level, the write address is selected, and the write enable signal is the second enable signal. A selector for selecting the first signal at a logic level;
A storage area having a plurality of addresses, and when the write enable signal is at the first logic level, the write data is fetched in synchronization with a clock signal, and the next state of the state machine is stored in each address of the storage area. And second data representing the output signal of the state machine are stored, and when the write enable signal is at the second logic level, the clock signal is synchronized with the clock signal. In one cycle, read data having the second and third data is read from the address of the storage area specified by the first signal selected by the selector, and the second data in the read data is read out. Is supplied to the selector as the first data, and the third data is output to the outside as an output signal of the state machine. State machine which is characterized in that a lock synchronous memory.
ライトアドレスを入力すると共に、下位ビット又は上位ビットからなるステートマシンに対する入力信号と、前記入力信号に対して異なる位置のビットにより構成され、前記ステートマシンの現在の状態を表す第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のデータを読み出して前記ステートマシンの出力信号として外部に出力する非同期型メモリとを備えたことを特徴とするステートマシン。
The write address is input, and an input signal to the state machine composed of lower bits or upper bits, and first data that is composed of bits at different positions with respect to the input signal and that represents the current state of the state machine, When the combined first signal is input and the first write enable signal transitioning to the first and second logic levels is the first logic level, the write address is selected, and the first write enable is selected. A first selector that selects the first signal when the signal is at the second logic level;
A first storage area having a plurality of addresses, and when the first write enable signal is at the first logic level, the first write data is fetched in synchronization with a clock signal. The second data representing the next state of the state machine is stored in each address of the state machine, and when the first write enable signal is at the second logic level, the clock signal is synchronized with the clock signal. Within one cycle, the second data is read from the address of the first storage area designated by the first signal selected by the first selector, and the first data is used as the first data. A clock-synchronized memory for the selector
A second write enable that inputs the write address and inputs a second signal that is a combination of the input signal to the state machine and the second data, and makes a transition to the first and second logic levels. A second select that selects the write address when a signal is at the first logic level, and selects the second signal when the second write enable signal is at the second logic level;
A second storage area having a plurality of addresses, and when the third write enable signal transitioning to the first and second logic levels is at the first logic level, the second write data is fetched and the second The third data representing the output signal of the state machine is stored in each address of the second storage area, and is selected by the second selector when the second write enable signal is at the second logic level. And an asynchronous memory that reads out the third data from the address of the second storage area specified by the second signal and outputs it as an output signal of the state machine. State machine.
請求項1又は2記載のステートマシンと、
前記ステートマシンの出力により制御され、前記クロック信号に同期して所定の処理を行う被制御回路とを備えたことを特徴とする半導体集積回路。
The state machine according to claim 1 or 2,
A semiconductor integrated circuit comprising: a controlled circuit that is controlled by an output of the state machine and performs predetermined processing in synchronization with the clock signal.
JP2007319617A 2007-12-11 2007-12-11 State machine and semiconductor integrated circuit using it Pending JP2009145957A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007319617A JP2009145957A (en) 2007-12-11 2007-12-11 State machine and semiconductor integrated circuit using it

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007319617A JP2009145957A (en) 2007-12-11 2007-12-11 State machine and semiconductor integrated circuit using it

Publications (1)

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

Family

ID=40916533

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007319617A Pending JP2009145957A (en) 2007-12-11 2007-12-11 State machine and semiconductor integrated circuit using it

Country Status (1)

Country Link
JP (1) JP2009145957A (en)

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 (en) * 1974-04-16 1975-10-28
JPS5354937A (en) * 1976-10-28 1978-05-18 Nec Corp Non-synchronous sequence circuit
JPS63107249A (en) * 1986-10-22 1988-05-12 Yokogawa Hewlett Packard Ltd Traffic measuring equipment
JPH01269103A (en) * 1988-04-20 1989-10-26 Fuji Xerox Co Ltd Condition transition control device
JPH05252051A (en) * 1991-10-04 1993-09-28 Sony Broadcast & Commun Ltd Serial data decoder
JPH09114748A (en) * 1995-10-13 1997-05-02 Nec Ibaraki Ltd Memory error correction circuit
JP2001125606A (en) * 1999-10-29 2001-05-11 Fuji Photo Film Co Ltd State machine

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS50135953A (en) * 1974-04-16 1975-10-28
JPS5354937A (en) * 1976-10-28 1978-05-18 Nec Corp Non-synchronous sequence circuit
JPS63107249A (en) * 1986-10-22 1988-05-12 Yokogawa Hewlett Packard Ltd Traffic measuring equipment
JPH01269103A (en) * 1988-04-20 1989-10-26 Fuji Xerox Co Ltd Condition transition control device
JPH05252051A (en) * 1991-10-04 1993-09-28 Sony Broadcast & Commun Ltd Serial data decoder
JPH09114748A (en) * 1995-10-13 1997-05-02 Nec Ibaraki Ltd Memory error correction circuit
JP2001125606A (en) * 1999-10-29 2001-05-11 Fuji Photo Film Co Ltd State machine

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 (en) Semiconductor memory
US9425800B2 (en) Reconfigurable logic device
JP2017038247A (en) Reconfigurable semiconductor device
US20140068231A1 (en) Central processing unit and arithmetic unit
JP2014116054A (en) Integrated circuit
JP2009145957A (en) State machine and semiconductor integrated circuit using it
CN100527109C (en) Memory access apparatus
JP2007233842A (en) Generation method for reset operation verification circuit
US9058436B1 (en) Method and system for reducing the effect of component aging
JP2002245778A (en) Semiconductor device
JP6405262B2 (en) Reconfigurable logical device
JP2014106969A (en) Data processing apparatus and method in plc system
JP4327482B2 (en) Synchronous semiconductor memory device
TWI285836B (en) Method and/or architecture implemented in hardware for the adjustment of messages with indeterministic length
JP5545054B2 (en) Debug circuit and debug system
JP2004327483A (en) Semiconductor integrated circuit and circuit designing device
JP5467512B2 (en) Behavioral synthesis apparatus, behavioral synthesis method, and behavioral synthesis program
JP4829598B2 (en) Multi-bit storage device and multi-bit storage method
JP2011028790A (en) Semiconductor memory device and refresh control method
JP2012078240A (en) Driver waveform generation circuit in semiconductor testing device
JP2008283396A (en) Memory, shift register, integrated circuit and processor
JP5344634B2 (en) Semiconductor memory device and control method thereof
TW202232501A (en) Semiconductor integrated circuit, design method of the semiconductor integrated circuit, design support system of the semiconductor integrated circuit, and non-transitory computer readable medium
JP5233543B2 (en) Data processing circuit, image processing apparatus, and data processing method
JP2022119157A (en) Semiconductor integrated circuit and design method thereof, design support system, and program

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