JP2002182973A - メモリインターフェースおよびその信号処理方法 - Google Patents
メモリインターフェースおよびその信号処理方法Info
- Publication number
- JP2002182973A JP2002182973A JP2000380836A JP2000380836A JP2002182973A JP 2002182973 A JP2002182973 A JP 2002182973A JP 2000380836 A JP2000380836 A JP 2000380836A JP 2000380836 A JP2000380836 A JP 2000380836A JP 2002182973 A JP2002182973 A JP 2002182973A
- Authority
- JP
- Japan
- Prior art keywords
- signal
- cpu
- wait
- output
- system clock
- 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
Links
Abstract
(57)【要約】
【課題】 同期式メモリに対して、クロックを切り替え
ずに、データ処理部からのアクセスも演算手段からのア
クセスもデータ処理部のシステムクロックのみで遂行す
ること。 【解決手段】 ウェイト信号生成部4−1−1は、CP
U4−4からのアクセス時に、CPUから出力される信
号をシステムクロックに基づいて一時的に保持させる為
のウェイト信号を生成し、CPUに出力する。これを受
けてCPUは、一時的保持を実行し、その間に、ウェイ
ト信号生成部は、システムクロックに同期した制御信号
を生成して、当該システムクロックに同期した制御信号
をCPUからのアドレスおよびデータとともにメモリ4
−4に送出する。
ずに、データ処理部からのアクセスも演算手段からのア
クセスもデータ処理部のシステムクロックのみで遂行す
ること。 【解決手段】 ウェイト信号生成部4−1−1は、CP
U4−4からのアクセス時に、CPUから出力される信
号をシステムクロックに基づいて一時的に保持させる為
のウェイト信号を生成し、CPUに出力する。これを受
けてCPUは、一時的保持を実行し、その間に、ウェイ
ト信号生成部は、システムクロックに同期した制御信号
を生成して、当該システムクロックに同期した制御信号
をCPUからのアドレスおよびデータとともにメモリ4
−4に送出する。
Description
【0001】
【発明の属する技術分野】本発明は、同期式メモリを含
むデータ処理装置において、データ処理部とのデータア
クセスと、CPUとのデータアクセスを同期式メモリに
対して遂行するメモリインターフェースおよびその信号
処理方法に関する。
むデータ処理装置において、データ処理部とのデータア
クセスと、CPUとのデータアクセスを同期式メモリに
対して遂行するメモリインターフェースおよびその信号
処理方法に関する。
【0002】
【従来の技術】電子機器のデジタルデータ処理の過程
で、クロック同期型のメモリが目的に応じて使用される
が、このメモリに対しては、データ処理部からのリード
・ライトアクセスが遂行されるのは勿論、それ以外に
も、CPUからデータのリード・ライトアクセスが遂行
されることがある。
で、クロック同期型のメモリが目的に応じて使用される
が、このメモリに対しては、データ処理部からのリード
・ライトアクセスが遂行されるのは勿論、それ以外に
も、CPUからデータのリード・ライトアクセスが遂行
されることがある。
【0003】これに対応して、CPUからのアクセスが
許可されたときに、メモリインターフェース部では、メ
モリのアドレス信号、データ信号、ライトイネーブル信
号の各ラインを、CPUからの各送信ラインに切り替え
られるような構成がとられる。そして、このとき同時に
メモリに入力されるクロックもデータ処理部のシステム
クロックからCPUクロックへと切り替えられる。この
際、切り替えタイミングが、データ処理部のシステムク
ロック、CPUクロックに対して同期がとれていない
と、メモリのクロック入力端子にスパイクが入力される
可能性がある。メモリは、そのクロック入力端子にスパ
イクが入力されると、保持しているデータが破壊されて
しまうおそれがある。
許可されたときに、メモリインターフェース部では、メ
モリのアドレス信号、データ信号、ライトイネーブル信
号の各ラインを、CPUからの各送信ラインに切り替え
られるような構成がとられる。そして、このとき同時に
メモリに入力されるクロックもデータ処理部のシステム
クロックからCPUクロックへと切り替えられる。この
際、切り替えタイミングが、データ処理部のシステムク
ロック、CPUクロックに対して同期がとれていない
と、メモリのクロック入力端子にスパイクが入力される
可能性がある。メモリは、そのクロック入力端子にスパ
イクが入力されると、保持しているデータが破壊されて
しまうおそれがある。
【0004】このデータ破壊を防止するためには、例え
ば、図1に示すクロック切り替え回路を用いて、図2の
タイミングチャートに示すようにスパイクを生じること
なくシステムクロックとCPUクロックを切り替えて、
メモリCLKとしてメモリのクロック入力端子に入力す
るといった構成がとられる。
ば、図1に示すクロック切り替え回路を用いて、図2の
タイミングチャートに示すようにスパイクを生じること
なくシステムクロックとCPUクロックを切り替えて、
メモリCLKとしてメモリのクロック入力端子に入力す
るといった構成がとられる。
【0005】この回路の動作について、以下に説明す
る。
る。
【0006】初期状態が、CPUFLAGのレベルが0
であり、そのレベルがCPUSWに伝播して、セレクタ
1−8でシステムCLKが選択されて、メモリCLKと
してメモリのクロック入力端子に入力されている状態と
する。この状態で、CPUFLAGのレベルが1とな
り、CPUからのアクセスが許可されると、まず、メモ
リCLKの立ち下がりによってDFF1−1、DFF1
−2を経由して、XNORゲート1−10に図2のタイ
ミングチャート上の時刻t1で、レベル1が入力され
る。このとき、XNORゲート1−10のもう一方の入
力には、初期状態のレベル0が残っているので、XNO
R1−10はレベル0をANDゲート1−11に対して
出力する。このレベル0によってメモリCLKは、次の
立ち上がりからマスクがかけられ、一旦出力停止状態と
なる。
であり、そのレベルがCPUSWに伝播して、セレクタ
1−8でシステムCLKが選択されて、メモリCLKと
してメモリのクロック入力端子に入力されている状態と
する。この状態で、CPUFLAGのレベルが1とな
り、CPUからのアクセスが許可されると、まず、メモ
リCLKの立ち下がりによってDFF1−1、DFF1
−2を経由して、XNORゲート1−10に図2のタイ
ミングチャート上の時刻t1で、レベル1が入力され
る。このとき、XNORゲート1−10のもう一方の入
力には、初期状態のレベル0が残っているので、XNO
R1−10はレベル0をANDゲート1−11に対して
出力する。このレベル0によってメモリCLKは、次の
立ち上がりからマスクがかけられ、一旦出力停止状態と
なる。
【0007】また、時刻t1では、DFF1−2の出力
レベル1によって、セレクタ1−7で、CPUCLKに
よってDFF1−3、1−4を経由して伝播されるデー
タがCPUSWとして選択される状態となり、この状態
で1−3、1−4にCPUCLKの立ち上がりが2回入
力されると、時刻t2で、CPUSWは、レベルが0か
ら1に変化し、これを受けて、セレクタ1−8では、シ
ステムCLKに代わって、CPUCLKが選択される。
この選択されたCPUCLKの立ち下がりによって、時
刻t3で、DFF1−9の出力が0から1に変化し、X
NOR1−10に入力される。XNOR1−10のもう
一方の入力にはすでにレベル1が入力されているので、
XNOR1−10はレベル1を出力し、これを受けてA
NDゲート1−11は次のCPUCLKの立ち上がりか
らメモリCLKとしてCPUCLKを出力する。
レベル1によって、セレクタ1−7で、CPUCLKに
よってDFF1−3、1−4を経由して伝播されるデー
タがCPUSWとして選択される状態となり、この状態
で1−3、1−4にCPUCLKの立ち上がりが2回入
力されると、時刻t2で、CPUSWは、レベルが0か
ら1に変化し、これを受けて、セレクタ1−8では、シ
ステムCLKに代わって、CPUCLKが選択される。
この選択されたCPUCLKの立ち下がりによって、時
刻t3で、DFF1−9の出力が0から1に変化し、X
NOR1−10に入力される。XNOR1−10のもう
一方の入力にはすでにレベル1が入力されているので、
XNOR1−10はレベル1を出力し、これを受けてA
NDゲート1−11は次のCPUCLKの立ち上がりか
らメモリCLKとしてCPUCLKを出力する。
【0008】この状態から、今度はCPUFLAGのレ
ベルを0にして、CPUからのアクセスを禁止すると、
メモリCLKの立ち下がりによってDFF1−1、DF
F1−2を経由して、XNORゲート1−10に時刻t
4で、レベル0が入力される。このとき、XNOR1−
10のもう一方の入力はレベル1であるので、XNOR
1−10はレベル0をANDゲート1−11に対して出
力する。このレベル0によってメモリCLKは、次の立
ち上がりからマスクがかけられ、一旦出力停止状態とな
る。
ベルを0にして、CPUからのアクセスを禁止すると、
メモリCLKの立ち下がりによってDFF1−1、DF
F1−2を経由して、XNORゲート1−10に時刻t
4で、レベル0が入力される。このとき、XNOR1−
10のもう一方の入力はレベル1であるので、XNOR
1−10はレベル0をANDゲート1−11に対して出
力する。このレベル0によってメモリCLKは、次の立
ち上がりからマスクがかけられ、一旦出力停止状態とな
る。
【0009】また、時刻t4では、DFF1−2の出力
レベル0によって、セレクタ1−7で、システムCLK
によってDFF1−5、DFF1−6を経由して伝播さ
れるデータがCPUSWとして選択される状態となり、
この状態でDFF1−5、DFF1−6にシステムCL
Kの立ち上がりが2回入力されると、時刻t5で、CP
USWは、レベルが1から0に変化し、これを受けて、
セレクタ1−8では、CPUCLKに代わって、システ
ムCLKが選択される。この選択されたシステムCLK
の立ち下がりによって、時刻t6で、DFF1−9の出
力が1から0に変化し、XNOR1−10に入力され
る。XNOR1−10のもう一方の入力にはすでにレベ
ル0が入力されているので、XNOR1−10はレベル
1を出力し,これを受けてANDゲート1−11は次の
システムCLKの立ち上がりからメモリCLKとしてシ
ステムCLKを出力する。以上のように、スパイクを生
じることなくシステムCLKとCPUCLKの切り替え
動作が遂行される。
レベル0によって、セレクタ1−7で、システムCLK
によってDFF1−5、DFF1−6を経由して伝播さ
れるデータがCPUSWとして選択される状態となり、
この状態でDFF1−5、DFF1−6にシステムCL
Kの立ち上がりが2回入力されると、時刻t5で、CP
USWは、レベルが1から0に変化し、これを受けて、
セレクタ1−8では、CPUCLKに代わって、システ
ムCLKが選択される。この選択されたシステムCLK
の立ち下がりによって、時刻t6で、DFF1−9の出
力が1から0に変化し、XNOR1−10に入力され
る。XNOR1−10のもう一方の入力にはすでにレベ
ル0が入力されているので、XNOR1−10はレベル
1を出力し,これを受けてANDゲート1−11は次の
システムCLKの立ち上がりからメモリCLKとしてシ
ステムCLKを出力する。以上のように、スパイクを生
じることなくシステムCLKとCPUCLKの切り替え
動作が遂行される。
【0010】このクロック切り替え回路を含めたメモリ
インターフェースを図3に示す。図3の3−1は上述し
たクロック切り替え回路である。3−2は、データ処理
部側、CPU側それぞれのアドレス、データ、書き込み
イネーブルをラッチするフリップフロップ群、3−3
は、クロック切り替え回路3−1から出力されるCPU
SWのレベルによって、データ処理部側か、CPU側ど
ちらかのアドレス、データ、書き込みイネーブルを選択
するセレクタ群である。3−4はメモリで、この従来例
では同期式のシングルポートRAMとする。このRAM
は、WEN端子がレベル0のとき、AD端子に入力され
るアドレスに、DIN端子に入力されるデータを、CL
K端子に入力されるメモリCLKの立ち上がりに同期し
て書き込む。また、WEN端子がレベル1のとき、AD
端子に入力されるアドレスに格納されているデータを、
CLK端子に入力されるメモリCLKの立ち上がりに同
期してDOUT端子に出力する。3−5はメモリの読み
出しデータをラッチするフリップフロップである。
インターフェースを図3に示す。図3の3−1は上述し
たクロック切り替え回路である。3−2は、データ処理
部側、CPU側それぞれのアドレス、データ、書き込み
イネーブルをラッチするフリップフロップ群、3−3
は、クロック切り替え回路3−1から出力されるCPU
SWのレベルによって、データ処理部側か、CPU側ど
ちらかのアドレス、データ、書き込みイネーブルを選択
するセレクタ群である。3−4はメモリで、この従来例
では同期式のシングルポートRAMとする。このRAM
は、WEN端子がレベル0のとき、AD端子に入力され
るアドレスに、DIN端子に入力されるデータを、CL
K端子に入力されるメモリCLKの立ち上がりに同期し
て書き込む。また、WEN端子がレベル1のとき、AD
端子に入力されるアドレスに格納されているデータを、
CLK端子に入力されるメモリCLKの立ち上がりに同
期してDOUT端子に出力する。3−5はメモリの読み
出しデータをラッチするフリップフロップである。
【0011】このメモリインターフェース構成におい
て、データ処理部側からメモリへのデータアクセスが遂
行される場合は、CPUFLAGのレベル0によって、
CPUSWがレベル0に設定され、メモリCLKとして
システムCLKが選択される。この状態で、システムC
LKに同期して変化するデータ処理部側のアドレス、デ
ータ、書き込みイネーブルがメモリに入力され、リード
・ライトアクセスが遂行される。また、CPU側からメ
モリへのデータアクセスが遂行される場合は、CPUF
LAGのレベル1によって、CPUSWがレベル1に設
定され、メモリCLKとしてCPUCLKが選択され
る。この状態で、CPUCLKに同期した所定フォーマ
ットで変化するCPU側のアドレス、データ、書き込み
イネーブルがメモリに入力され、リード・ライトアクセ
スが遂行される。
て、データ処理部側からメモリへのデータアクセスが遂
行される場合は、CPUFLAGのレベル0によって、
CPUSWがレベル0に設定され、メモリCLKとして
システムCLKが選択される。この状態で、システムC
LKに同期して変化するデータ処理部側のアドレス、デ
ータ、書き込みイネーブルがメモリに入力され、リード
・ライトアクセスが遂行される。また、CPU側からメ
モリへのデータアクセスが遂行される場合は、CPUF
LAGのレベル1によって、CPUSWがレベル1に設
定され、メモリCLKとしてCPUCLKが選択され
る。この状態で、CPUCLKに同期した所定フォーマ
ットで変化するCPU側のアドレス、データ、書き込み
イネーブルがメモリに入力され、リード・ライトアクセ
スが遂行される。
【0012】
【発明が解決しようとする課題】デジタルシステムがL
SI化される場合、フリップフロップ間のセットアップ
エラー及びホールドエラーを回避する為に、クロックラ
インに、タイミング調整用ツールによってクロックバッ
ファが自動挿入される。
SI化される場合、フリップフロップ間のセットアップ
エラー及びホールドエラーを回避する為に、クロックラ
インに、タイミング調整用ツールによってクロックバッ
ファが自動挿入される。
【0013】図3に示した従来例の構成のように、3−
1のクロック切り替え回路内部で、図1に示す1−8の
セレクタでクロックを切り替えており、さらにANDゲ
ート1−11のANDゲートを介してメモリ3−4にク
ロックが配信されている。これに対し、3−2、3−5
のフリップフロップ群には、前記セレクタ1−8、AN
Dゲート1−11を通る前のシステムCLK及びCPU
CLKが配信されているが、前記タイミング調整用ツー
ルの中には、このようなゲートで切られているクロック
ラインに対して、ゲートの前のラインと後のラインは、
別ラインとみなして、クロックバッファの自動挿入を行
わないものもある為、設計者は、マニュアル操作のクロ
ックバッファの挿入によるタイミング調整を強いられる
こととなる。
1のクロック切り替え回路内部で、図1に示す1−8の
セレクタでクロックを切り替えており、さらにANDゲ
ート1−11のANDゲートを介してメモリ3−4にク
ロックが配信されている。これに対し、3−2、3−5
のフリップフロップ群には、前記セレクタ1−8、AN
Dゲート1−11を通る前のシステムCLK及びCPU
CLKが配信されているが、前記タイミング調整用ツー
ルの中には、このようなゲートで切られているクロック
ラインに対して、ゲートの前のラインと後のラインは、
別ラインとみなして、クロックバッファの自動挿入を行
わないものもある為、設計者は、マニュアル操作のクロ
ックバッファの挿入によるタイミング調整を強いられる
こととなる。
【0014】この設計者によるタイミング調整が不十分
であると、フリップフロップ群3−2へのクロックに対
しメモリ3−4へのクロックには、セレクタ1−8及び
ANDゲート1−11によるディレイが生じる為、ホ−
ルドエラーにより、データの書き込みが正常に遂行され
ない。
であると、フリップフロップ群3−2へのクロックに対
しメモリ3−4へのクロックには、セレクタ1−8及び
ANDゲート1−11によるディレイが生じる為、ホ−
ルドエラーにより、データの書き込みが正常に遂行され
ない。
【0015】また、メモリが複数存在するとき、メモリ
個別にCPUアクセスを許可できるようにするには、メ
モリの個数分だけ前述のスパイク防止用のクロック切り
替え回路が必要となり、コストアップを招いてしまう。
個別にCPUアクセスを許可できるようにするには、メ
モリの個数分だけ前述のスパイク防止用のクロック切り
替え回路が必要となり、コストアップを招いてしまう。
【0016】そこで、本発明の目的は、以上のような問
題を解消したメモリインターフェースおよびその信号処
理方法を提供することにある。
題を解消したメモリインターフェースおよびその信号処
理方法を提供することにある。
【0017】
【課題を解決するための手段】請求項1の発明は、シス
テムクロックによって同期制御されるデータ処理部から
出力される信号および前記システムクロックとは別のク
ロックによって同期制御されるCPUから出力される信
号のいずれかを選択する選択手段と、前記選択手段によ
って選択された信号をクロック同期型メモリに出力する
ことによって当該メモリに対するアクセスを実行するた
めの出力手段と、一時的に保持させる為のウェイト信号
を当該CPUに出力するウェイト信号生成手段とを備
え、前記データ処理部、前記CPUのいずれのメモリに
対するアクセスも、前記システムクロックのみを用いて
遂行し、且つ前記CPUによるアクセス時には、前記ウ
ェイト信号生成手段からウェイト信号を出力することを
特徴とする。
テムクロックによって同期制御されるデータ処理部から
出力される信号および前記システムクロックとは別のク
ロックによって同期制御されるCPUから出力される信
号のいずれかを選択する選択手段と、前記選択手段によ
って選択された信号をクロック同期型メモリに出力する
ことによって当該メモリに対するアクセスを実行するた
めの出力手段と、一時的に保持させる為のウェイト信号
を当該CPUに出力するウェイト信号生成手段とを備
え、前記データ処理部、前記CPUのいずれのメモリに
対するアクセスも、前記システムクロックのみを用いて
遂行し、且つ前記CPUによるアクセス時には、前記ウ
ェイト信号生成手段からウェイト信号を出力することを
特徴とする。
【0018】請求項2の発明は、請求項1において、前
記CPUから出力される信号は、データ、アドレスおよ
び制御信号を含むことを特徴とする。
記CPUから出力される信号は、データ、アドレスおよ
び制御信号を含むことを特徴とする。
【0019】請求項3の発明は、請求項2において、前
記ウェイト信号生成手段は、前記CPUからのアクセス
時に、前記ウェイト信号を受信した前記CPUが当該ウ
ェイト信号に応答して前記一時的保持を実行している間
に、前記システムクロックに同期した制御信号を生成し
て、当該システムクロックに同期した制御信号を前記C
PUからのアドレスおよびデータとともに前記メモリに
送出することを特徴とする。
記ウェイト信号生成手段は、前記CPUからのアクセス
時に、前記ウェイト信号を受信した前記CPUが当該ウ
ェイト信号に応答して前記一時的保持を実行している間
に、前記システムクロックに同期した制御信号を生成し
て、当該システムクロックに同期した制御信号を前記C
PUからのアドレスおよびデータとともに前記メモリに
送出することを特徴とする。
【0020】請求項4の発明は、請求項2または3にお
いて、前記ウェイト信号生成手段は、前記CPUから送
信されるリードイネーブル信号を前記システムクロック
でラッチして同期リードイネーブル信号として出力する
リードイネーブルラッチ手段と、前記同期リードイネー
ブル信号がアクティブ状態の時、前記システムクロック
に同期してカウントアップを行い、非アクティブ状態の
時、前記システムクロックに同期してカウント値をリセ
ットするリードウェイトカウンタと、前記リードウェイ
トカウンタのカウント値に基づいて、前記メモリからの
読み出しデータのラッチを許可するリードイネーブル信
号を前記システムクロックに同期して所定期間出力する
リードイネーブル信号生成部と、前記CPUから出力さ
れるチップセレクト信号がアクティブ状態であるとき、
前記リードウェイトカウンタのカウント値に基づいて、
前記システムクロックに同期してリードウェイト解除信
号を出力し、前記CPUから出力されるチップセレクト
信号が非アクティブ状態のとき、リードウェイト解除信
号を前記に同期してリセットするリードウェイト解除信
号生成部と、前記演算手段から出力されるライトイネー
ブル信号を前記システムクロックでラッチして同期ライ
トイネーブル信号として出力するライトイネーブルラッ
チ手段と、前記同期ライトイネーブル信号がアクティブ
状態の時、前記システムクロックに同期してカウントア
ップを行い、非アクティブ状態の時、前記システムクロ
ックに同期してカウント値をリセットするライトウェイ
トカウンタと、前記ライトウェイトカウンタのカウント
値に基づいて、前記CPUから出力されるデータの前記
メモリへの書き込みを許可するライトイネーブル信号を
前記システムクロックに同期して所定期間出力するライ
トイネーブル信号生成部と、前記CPUから出力される
チップセレクト信号がアクティブ状態であるとき、前記
ライトウェイトカウンタのカウント値に基づいて、前記
システムクロックに同期してライトウェイト解除信号を
出力し、前記CPUから出力されるチップセレクト信号
が非アクティブ状態のとき、ライトウェイト解除信号を
前記システムクロックに同期してリセットするライトウ
ェイト解除信号生成部と、前記CPUから出力されるチ
ップセレクト信号を、前記CPUから出力されるクロッ
クでラッチし、このラッチ信号をウェイト信号として前
記CPUに戻し、前記リードウェイト解除信号および前
記ライトウェイト解除信号により前記ウェイト信号をリ
セットするウェイト信号出力手段と、を具えたことを特
徴とする。
いて、前記ウェイト信号生成手段は、前記CPUから送
信されるリードイネーブル信号を前記システムクロック
でラッチして同期リードイネーブル信号として出力する
リードイネーブルラッチ手段と、前記同期リードイネー
ブル信号がアクティブ状態の時、前記システムクロック
に同期してカウントアップを行い、非アクティブ状態の
時、前記システムクロックに同期してカウント値をリセ
ットするリードウェイトカウンタと、前記リードウェイ
トカウンタのカウント値に基づいて、前記メモリからの
読み出しデータのラッチを許可するリードイネーブル信
号を前記システムクロックに同期して所定期間出力する
リードイネーブル信号生成部と、前記CPUから出力さ
れるチップセレクト信号がアクティブ状態であるとき、
前記リードウェイトカウンタのカウント値に基づいて、
前記システムクロックに同期してリードウェイト解除信
号を出力し、前記CPUから出力されるチップセレクト
信号が非アクティブ状態のとき、リードウェイト解除信
号を前記に同期してリセットするリードウェイト解除信
号生成部と、前記演算手段から出力されるライトイネー
ブル信号を前記システムクロックでラッチして同期ライ
トイネーブル信号として出力するライトイネーブルラッ
チ手段と、前記同期ライトイネーブル信号がアクティブ
状態の時、前記システムクロックに同期してカウントア
ップを行い、非アクティブ状態の時、前記システムクロ
ックに同期してカウント値をリセットするライトウェイ
トカウンタと、前記ライトウェイトカウンタのカウント
値に基づいて、前記CPUから出力されるデータの前記
メモリへの書き込みを許可するライトイネーブル信号を
前記システムクロックに同期して所定期間出力するライ
トイネーブル信号生成部と、前記CPUから出力される
チップセレクト信号がアクティブ状態であるとき、前記
ライトウェイトカウンタのカウント値に基づいて、前記
システムクロックに同期してライトウェイト解除信号を
出力し、前記CPUから出力されるチップセレクト信号
が非アクティブ状態のとき、ライトウェイト解除信号を
前記システムクロックに同期してリセットするライトウ
ェイト解除信号生成部と、前記CPUから出力されるチ
ップセレクト信号を、前記CPUから出力されるクロッ
クでラッチし、このラッチ信号をウェイト信号として前
記CPUに戻し、前記リードウェイト解除信号および前
記ライトウェイト解除信号により前記ウェイト信号をリ
セットするウェイト信号出力手段と、を具えたことを特
徴とする。
【0021】請求項5の発明は、システムクロックによ
って同期制御されるデータ処理部から出力される信号お
よび前記システムクロックとは別のクロックによって同
期制御されるCPUから出力される信号のいずれかを選
択し、前記選択された信号をクロック同期型メモリに出
力することによって当該メモリに対するアクセスを実行
する際に、前記CPUからのアクセスに対して、当該C
PUから出力される信号を前記システムクロックに基づ
いて一時的に保持させる為のウェイト信号を当該演算手
段に出力することを特徴とする。
って同期制御されるデータ処理部から出力される信号お
よび前記システムクロックとは別のクロックによって同
期制御されるCPUから出力される信号のいずれかを選
択し、前記選択された信号をクロック同期型メモリに出
力することによって当該メモリに対するアクセスを実行
する際に、前記CPUからのアクセスに対して、当該C
PUから出力される信号を前記システムクロックに基づ
いて一時的に保持させる為のウェイト信号を当該演算手
段に出力することを特徴とする。
【0022】
【発明の実施の形態】本発明の実施例について説明す
る。はじめに、実施例の構成について説明する。
る。はじめに、実施例の構成について説明する。
【0023】図4は、本発明のメモリインターフェース
と、その周辺の構成を示している。図4において4−1
は本発明の特徴であるメモリインターフェースである。
4−2はクロック同期型シングルポートRAMで、4−
3はデータ処理部で、4−4はCPUで、4−5は双方
向バッファで、4−6はORゲートである。メモリイン
ターフェース4−1の内部には、ウェイト信号生成部4
−1−1、セレクタ4−1−2〜4−1−4、Dフリッ
プフロップ4−1−5〜4−1−8が存在する。
と、その周辺の構成を示している。図4において4−1
は本発明の特徴であるメモリインターフェースである。
4−2はクロック同期型シングルポートRAMで、4−
3はデータ処理部で、4−4はCPUで、4−5は双方
向バッファで、4−6はORゲートである。メモリイン
ターフェース4−1の内部には、ウェイト信号生成部4
−1−1、セレクタ4−1−2〜4−1−4、Dフリッ
プフロップ4−1−5〜4−1−8が存在する。
【0024】上記構成の接続関係について説明する。
【0025】4−1のメモリインタフェースには、4−
3のデータ処理部から、システムクロックに同期して出
力されるMビットのアドレスPADRがセレクタ4−1
−2へ、NビットのデータPDATAがセレクタ4−1
−3へ、書き込みイネーブルPWENがセレクタ4−1
−4へ入力される。例えば、データ処理部4−3が画像
データ処理装置である場合は、WENによって有効画像
領域に相当するデータが規定されて出力される。また、
メモリインターフェース4−1には、4−4のCPUか
ら、MビットのアドレスCPUADRが入力され、Nビ
ットのデータCPUDATAが4−5の双方向バッファ
を経由してNビットのデータCPU_WDATAとして
入力される。又、CPUCLKと、これに同期した、チ
ップセレクトCS、CPU書き込みイネーブルCPUW
EN、CPU読み出しイネーブルCPURENが、内部
のウェイト信号生成部4−1−1に入力される。ウェイ
ト信号生成部4−1−1では、CPUWENをもとに、
後述するように書き込みイネーブル信号WAIT_WE
Nが生成されてセレクタ4−1−4に入力される。ま
た、CPURENをもとに、後述するように読み出しイ
ネーブル信号WAIT_RENが生成されてDフリップ
フロップ4−1−8にイネーブル信号として入力され
る。さらに、後述するようにウェイト信号WAITが生
成されてCPU4−4に入力される。セレクタ4−1−
2では、CPUFLAGがレベル0のときにはPADR
が、CPUFLAGがレベル1のときにはCPUADR
がそれぞれ選択されて、システムCLKの立ち上がりに
同期してDフリップフロップ4−1−5より、Mビット
のアドレスMEM_ADRとして出力され、RAM4−
2のアドレス端子ADへ入力される。セレクタ4−1−
3では、CPUFLAGがレベル0のときにはPDAT
Aが、CPUFLAGがレベル1のときにはCPU_W
DATAがそれぞれ選択されて、システムCLKの立ち
上がりに同期してDフリップフロップ4−1−6より、
NビットのデータMEM_WDATAとして出力され、
RAM4−2のデータ入力端子DINへ入力される。セ
レクタ4−1−4では、CPUFLAGがレベル0のと
きにはPWENが、CPUFLAGがレベル1のときに
はWAIT_WENがそれぞれ選択されて、システムC
LKの立ち上がりに同期してDフリップフロップ4−1
−7より、MEM_WENとして出力され、RAM4−
2の書き込みイネーブル端子WENへ入力される。RA
M4−2では、MEM_WENがレベル1のとき、ME
M_ADRに格納されているデータがシステムクCLK
に同期してDOUT端子よりNビットの読み出しデータ
MEM_RDATAとして出力され、メモリインターフ
ェース4−1とデータ処理部4−3に入力される。メモ
リインターフェース4−1では、内部のDフリップフロ
ップ4−1−8で、WAIT_RENがレベル0のとき
のみ、システムCLKに同期してMEM_RDATAが
ラッチされ、NビットのデータCPU_RDATAとし
て出力される。この時、CS=0、CPUREN=0に
よりORゲート4−6がDIR=0を出力し、これを受
けた双方向バッファ4−5の読み出しバッファはイネー
ブル状態となり、CPU_RDATAは双方向バッファ
4−5を経由して、CPUDATAとしてCPUに送出
される。また、データ処理部4−3では、システムCL
Kに同期して、内部に取り込まれる。
3のデータ処理部から、システムクロックに同期して出
力されるMビットのアドレスPADRがセレクタ4−1
−2へ、NビットのデータPDATAがセレクタ4−1
−3へ、書き込みイネーブルPWENがセレクタ4−1
−4へ入力される。例えば、データ処理部4−3が画像
データ処理装置である場合は、WENによって有効画像
領域に相当するデータが規定されて出力される。また、
メモリインターフェース4−1には、4−4のCPUか
ら、MビットのアドレスCPUADRが入力され、Nビ
ットのデータCPUDATAが4−5の双方向バッファ
を経由してNビットのデータCPU_WDATAとして
入力される。又、CPUCLKと、これに同期した、チ
ップセレクトCS、CPU書き込みイネーブルCPUW
EN、CPU読み出しイネーブルCPURENが、内部
のウェイト信号生成部4−1−1に入力される。ウェイ
ト信号生成部4−1−1では、CPUWENをもとに、
後述するように書き込みイネーブル信号WAIT_WE
Nが生成されてセレクタ4−1−4に入力される。ま
た、CPURENをもとに、後述するように読み出しイ
ネーブル信号WAIT_RENが生成されてDフリップ
フロップ4−1−8にイネーブル信号として入力され
る。さらに、後述するようにウェイト信号WAITが生
成されてCPU4−4に入力される。セレクタ4−1−
2では、CPUFLAGがレベル0のときにはPADR
が、CPUFLAGがレベル1のときにはCPUADR
がそれぞれ選択されて、システムCLKの立ち上がりに
同期してDフリップフロップ4−1−5より、Mビット
のアドレスMEM_ADRとして出力され、RAM4−
2のアドレス端子ADへ入力される。セレクタ4−1−
3では、CPUFLAGがレベル0のときにはPDAT
Aが、CPUFLAGがレベル1のときにはCPU_W
DATAがそれぞれ選択されて、システムCLKの立ち
上がりに同期してDフリップフロップ4−1−6より、
NビットのデータMEM_WDATAとして出力され、
RAM4−2のデータ入力端子DINへ入力される。セ
レクタ4−1−4では、CPUFLAGがレベル0のと
きにはPWENが、CPUFLAGがレベル1のときに
はWAIT_WENがそれぞれ選択されて、システムC
LKの立ち上がりに同期してDフリップフロップ4−1
−7より、MEM_WENとして出力され、RAM4−
2の書き込みイネーブル端子WENへ入力される。RA
M4−2では、MEM_WENがレベル1のとき、ME
M_ADRに格納されているデータがシステムクCLK
に同期してDOUT端子よりNビットの読み出しデータ
MEM_RDATAとして出力され、メモリインターフ
ェース4−1とデータ処理部4−3に入力される。メモ
リインターフェース4−1では、内部のDフリップフロ
ップ4−1−8で、WAIT_RENがレベル0のとき
のみ、システムCLKに同期してMEM_RDATAが
ラッチされ、NビットのデータCPU_RDATAとし
て出力される。この時、CS=0、CPUREN=0に
よりORゲート4−6がDIR=0を出力し、これを受
けた双方向バッファ4−5の読み出しバッファはイネー
ブル状態となり、CPU_RDATAは双方向バッファ
4−5を経由して、CPUDATAとしてCPUに送出
される。また、データ処理部4−3では、システムCL
Kに同期して、内部に取り込まれる。
【0026】次に、図4に示したウェイト信号生成部の
内部構成を図5に示す。
内部構成を図5に示す。
【0027】図5において、5−1は、CPUから送出
される読み出しイネーブル信号CPURENを、システ
ムCLKの立ち上がりに同期させて、REN_REGと
して出力させるDフリップフロップである。5−2はリ
ードWAITカウンタで、Dフリップフロップ5−1か
らの出力REN_REGがレベル1のときは、出力R_
WAIT_CNTの値が0にリセットされ、REN_R
EGがレベル0のときは、R_WAIT_CNTの値が
システムCLKの立ち上がり毎に、所定値に至るまで1
インクリメントされていく。
される読み出しイネーブル信号CPURENを、システ
ムCLKの立ち上がりに同期させて、REN_REGと
して出力させるDフリップフロップである。5−2はリ
ードWAITカウンタで、Dフリップフロップ5−1か
らの出力REN_REGがレベル1のときは、出力R_
WAIT_CNTの値が0にリセットされ、REN_R
EGがレベル0のときは、R_WAIT_CNTの値が
システムCLKの立ち上がり毎に、所定値に至るまで1
インクリメントされていく。
【0028】5−3は読み出しイネーブル生成部で、R
_WAIT_CNTが所定値のとき、WAIT_REN
のレベルを、システムCLKの立ち上がりに同期させて
0とする。5−4はリードWAIT解除信号生成部で、
CSがレベル1のときは、出力R_WAIT_UPがレ
ベル0にリセットされ、R_WAIT_CNTが所定値
に達するとR_WAIT_UPがシステムCLKの立ち
上がりに同期してレベル1にセットされる。5−5は、
CPUから送出される書き込みイネーブル信号CPUW
ENを、システムCLKの立ち上がりに同期させて、W
EN_REGとして出力させるDフリップフロップであ
る。5−6はライトWAITカウンタで、Dフリップフ
ロップ5−5からの出力WEN_REGがレベル1のと
きは、出力W_WAIT_CNTの値が0にリセットさ
れ、WEN_REGがレベル0のときは、W_WAIT
_CNTの値が、システムCLKの立ち上がり毎に、所
定値に至るまで1インクリメントされていく。5−7は
書き込みイネーブル生成部で、W_WAIT_CNTが
所定値のとき、WAIT_WENのレベルを、システム
CLKの立ち上がりに同期させて0とする。5−8はラ
イトWAIT解除信号生成部で、CSがレベル1のとき
は、出力W_WAIT_UPがレベル0にリセットさ
れ、W_WAIT_CNTが所定値に達するとW_WA
IT_UPがシステムCLKの立ち上がりに同期してレ
ベル1にセットされる。5−9は3入力のORゲート
で、R_WAIT_UP、W_WAIT_UP、CSが
入力される。5−10はORゲート5−9からの出力
を、CPUCLKの立ち下がりでラッチするDフリップ
フロップであり、このDフリップフロップの出力WAI
Tがウェイト信号として、CPUに送出される。
_WAIT_CNTが所定値のとき、WAIT_REN
のレベルを、システムCLKの立ち上がりに同期させて
0とする。5−4はリードWAIT解除信号生成部で、
CSがレベル1のときは、出力R_WAIT_UPがレ
ベル0にリセットされ、R_WAIT_CNTが所定値
に達するとR_WAIT_UPがシステムCLKの立ち
上がりに同期してレベル1にセットされる。5−5は、
CPUから送出される書き込みイネーブル信号CPUW
ENを、システムCLKの立ち上がりに同期させて、W
EN_REGとして出力させるDフリップフロップであ
る。5−6はライトWAITカウンタで、Dフリップフ
ロップ5−5からの出力WEN_REGがレベル1のと
きは、出力W_WAIT_CNTの値が0にリセットさ
れ、WEN_REGがレベル0のときは、W_WAIT
_CNTの値が、システムCLKの立ち上がり毎に、所
定値に至るまで1インクリメントされていく。5−7は
書き込みイネーブル生成部で、W_WAIT_CNTが
所定値のとき、WAIT_WENのレベルを、システム
CLKの立ち上がりに同期させて0とする。5−8はラ
イトWAIT解除信号生成部で、CSがレベル1のとき
は、出力W_WAIT_UPがレベル0にリセットさ
れ、W_WAIT_CNTが所定値に達するとW_WA
IT_UPがシステムCLKの立ち上がりに同期してレ
ベル1にセットされる。5−9は3入力のORゲート
で、R_WAIT_UP、W_WAIT_UP、CSが
入力される。5−10はORゲート5−9からの出力
を、CPUCLKの立ち下がりでラッチするDフリップ
フロップであり、このDフリップフロップの出力WAI
Tがウェイト信号として、CPUに送出される。
【0029】次に、本実施例メモリインターフェースの
動作を周辺の構成と絡めて説明する。
動作を周辺の構成と絡めて説明する。
【0030】本発明においては、CPUFLAGがレベ
ル0で、データ処理部4−3からのメモリ4−2へのデ
ータアクセス時は、従来例におけるデータ処理部からの
メモリへのデータアクセス時と同様の動作となる為、そ
の説明を省略し、CPUFLAGがレベル1のときの、
CPUからのアクセス時の動作のみ以下に説明してい
く。
ル0で、データ処理部4−3からのメモリ4−2へのデ
ータアクセス時は、従来例におけるデータ処理部からの
メモリへのデータアクセス時と同様の動作となる為、そ
の説明を省略し、CPUFLAGがレベル1のときの、
CPUからのアクセス時の動作のみ以下に説明してい
く。
【0031】はじめに、読み出しタイミングについて、
図6のタイミングチャートを参照しながら説明する。
図6のタイミングチャートを参照しながら説明する。
【0032】図6のタイミングチャートは、CPUが、
メモリからデータを読み出すときのアドレス、コントロ
ール信号の送出タイミングと、それらのタイミングに呼
応して、メモリインターフェースが、ウェイト信号およ
び読み出しデータを出力するタイミングを示す。図6の
時刻T0で、4−4のCPUは、CPUCLKの立ち上
がりに同期して、CSをレベル0とし、又、アクセスす
るメモリのアドレス値を送出する。CPUADR上のア
ドレス値は、セレクタ4−1−2を介して、レジスタ4
−1−5で、システムCLKの立ち上がりで同期がとら
れ、MEM_ADR上に出力される。時刻T1で、CP
UはCPUCLKの立ち下がりに同期してCPUREN
を送出する。同時に、4−1−1のウェイト信号生成部
内の5−10のDフリップフロップは、時刻T0で送出
されたCSのレベル0を5−9のORゲートを介して、
CPUCLKの立ち下がりでラッチし、WAITをレベ
ル0としてCPUに対して送出する。時刻T2で、5−
1のDフリップフロップは、システムCLKの立ち上が
りでCPURENのレベル0をラッチし、REN_RE
G=0を出力する。時刻T3で、CPU4−4は、CP
UCLKの立ち下がりでWAIT=0を検知してウェイ
ト状態にはいり、その後WAIT=1を検知するまで、
CPUは有効となるアドレス値、CPUREN=0を出
力し続ける。そして、その期間REN_REG=0を受
けて、5−2のリードWAITカウンタは、システムC
LKの立ち上がりに同期して、そのカウンタ値R_WA
IT_CNTをカウンタ値2までインクリメントしてい
く。時刻T4で、5−3の読み出しイネーブル生成部で
は、R_WAIT_CNT=1を受けて、読み出しイネ
ーブルWAIT_RENをシステムCLKの立ち上がり
でWAIT_REN=0とし、時刻T5で、R_WAI
T_CNT=2を受けて、WAIT_REN=1とす
る。T4、T5間のWAIT_REN=0によって、D
フリップフロップ4−1−8がイネーブル状態となる。
そして、時刻T5で、Dフリップフロップ4−1−8
は、MEM_RDATAライン上に存在する、有効アド
レスから読み出されたデータを、システムCLKの立ち
上がりで、CPU_RDATAとしてラッチする。
メモリからデータを読み出すときのアドレス、コントロ
ール信号の送出タイミングと、それらのタイミングに呼
応して、メモリインターフェースが、ウェイト信号およ
び読み出しデータを出力するタイミングを示す。図6の
時刻T0で、4−4のCPUは、CPUCLKの立ち上
がりに同期して、CSをレベル0とし、又、アクセスす
るメモリのアドレス値を送出する。CPUADR上のア
ドレス値は、セレクタ4−1−2を介して、レジスタ4
−1−5で、システムCLKの立ち上がりで同期がとら
れ、MEM_ADR上に出力される。時刻T1で、CP
UはCPUCLKの立ち下がりに同期してCPUREN
を送出する。同時に、4−1−1のウェイト信号生成部
内の5−10のDフリップフロップは、時刻T0で送出
されたCSのレベル0を5−9のORゲートを介して、
CPUCLKの立ち下がりでラッチし、WAITをレベ
ル0としてCPUに対して送出する。時刻T2で、5−
1のDフリップフロップは、システムCLKの立ち上が
りでCPURENのレベル0をラッチし、REN_RE
G=0を出力する。時刻T3で、CPU4−4は、CP
UCLKの立ち下がりでWAIT=0を検知してウェイ
ト状態にはいり、その後WAIT=1を検知するまで、
CPUは有効となるアドレス値、CPUREN=0を出
力し続ける。そして、その期間REN_REG=0を受
けて、5−2のリードWAITカウンタは、システムC
LKの立ち上がりに同期して、そのカウンタ値R_WA
IT_CNTをカウンタ値2までインクリメントしてい
く。時刻T4で、5−3の読み出しイネーブル生成部で
は、R_WAIT_CNT=1を受けて、読み出しイネ
ーブルWAIT_RENをシステムCLKの立ち上がり
でWAIT_REN=0とし、時刻T5で、R_WAI
T_CNT=2を受けて、WAIT_REN=1とす
る。T4、T5間のWAIT_REN=0によって、D
フリップフロップ4−1−8がイネーブル状態となる。
そして、時刻T5で、Dフリップフロップ4−1−8
は、MEM_RDATAライン上に存在する、有効アド
レスから読み出されたデータを、システムCLKの立ち
上がりで、CPU_RDATAとしてラッチする。
【0033】この時、双方向バッファ4−5のクロック
ドバッファには、CS=0、CPUREN=0を受けた
ORゲート4−6の出力DIR=0が入力されているの
で、CPU_RDATAはそのままCPUDATAとし
てCPUに送出される。更に、時刻T5では、5−4の
リードWAIT解除信号生成部がR_WAIT_CNT
=2を受けてR_WAIT_UP=1を出力する。時刻
T6で、Dフリップフロップ5−10はORゲート5−
9を介してR_WAIT_UP=1をCPUCLKの立
ち下がりでラッチして、WAIT=1として出力する。
時刻T7のCPUCLKの立ち下がりで、CPUはこの
WAIT=1を検知し、時刻T8のCPUCLKの立ち
上がりで、CS=1、CPUREN=1とし、又、有効
アドレスの出力を解除し、更に、読み出しデータを内部
に取り込む。時刻T9でシステムCLKの立ち上がり
で、CPUREN=1がDフリップフロップ5−1でラ
ッチされ、REN_REG=1となる。又同時に、CS
=1を受けて、リードWAIT解除信号生成部5−4
は、R_WAIT_UP=0とする。最後に時刻T10
のシステムCLKの立ち上がりで、リードWAITカウ
ンタ5−2がREN_REG=1を受けて、R_WAI
T_CNTのカウント値を0にリセットする。ここで、
時刻T0以前の初期状態に戻る。以上のようなシーケン
スを経て、CPUへのメモリの所定アドレスのデータの
読み出しが完了する。
ドバッファには、CS=0、CPUREN=0を受けた
ORゲート4−6の出力DIR=0が入力されているの
で、CPU_RDATAはそのままCPUDATAとし
てCPUに送出される。更に、時刻T5では、5−4の
リードWAIT解除信号生成部がR_WAIT_CNT
=2を受けてR_WAIT_UP=1を出力する。時刻
T6で、Dフリップフロップ5−10はORゲート5−
9を介してR_WAIT_UP=1をCPUCLKの立
ち下がりでラッチして、WAIT=1として出力する。
時刻T7のCPUCLKの立ち下がりで、CPUはこの
WAIT=1を検知し、時刻T8のCPUCLKの立ち
上がりで、CS=1、CPUREN=1とし、又、有効
アドレスの出力を解除し、更に、読み出しデータを内部
に取り込む。時刻T9でシステムCLKの立ち上がり
で、CPUREN=1がDフリップフロップ5−1でラ
ッチされ、REN_REG=1となる。又同時に、CS
=1を受けて、リードWAIT解除信号生成部5−4
は、R_WAIT_UP=0とする。最後に時刻T10
のシステムCLKの立ち上がりで、リードWAITカウ
ンタ5−2がREN_REG=1を受けて、R_WAI
T_CNTのカウント値を0にリセットする。ここで、
時刻T0以前の初期状態に戻る。以上のようなシーケン
スを経て、CPUへのメモリの所定アドレスのデータの
読み出しが完了する。
【0034】次に、書き込みタイミングについて、図7
のタイミングチャートを参照しながら説明する。
のタイミングチャートを参照しながら説明する。
【0035】図7のタイミングチャートは、CPUが、
メモリへデータを書き込むときのアドレス、コントロー
ル信号の送出タイミングと、それらのタイミングに呼応
して、メモリインターフェースが、ウェイト信号および
読み出しデータを出力するタイミングを示す。図7の時
刻T0で、4−4のCPUは、CPUCLKの立ち上が
りに同期して、CSをレベル0とし、又、アクセスする
メモリのアドレス値を送出する。CPUADR上のアド
レス値は、セレクタ4−1−2を介して、レジスタ4−
1−5で、システムCLKの立ち上がりで同期がとら
れ、MEM_ADR上に出力される。時刻T1で、CP
UはCPUCLKの立ち下がりに同期してCPUDAT
Aライン上に書き込みデータを送出する。このデータ
は、双方向バッファ4−5、セレクタ4−1−3を介し
て、レジスタ4−1−6で、システムCLKの立ち上が
りで同期がとられ、MEM_WDATAラインに出力さ
れる。同時に、4−1−1のウェイト信号生成部内の5
−10のDフリップフロップは、時刻T0で送出された
CSのレベル0を5−9のORゲートを介して、CPU
CLKの立ち下がりでラッチし、WAITをレベル0と
してCPUに対して送出する。時刻T2で、CPU4−
4はCPUCLKの立ち上がりに同期してCPUWEN
を送出する。時刻T3で、5−5のDフリップフロップ
は、システムCLKの立ち上がりでCPUWENのレベ
ル0をラッチし、WEN_REG=0を出力する。時刻
T4で、CPUは、CPUCLKの立ち下がりでWAI
T=0を検知してウェイト状態にはいり、その後WAI
T=1を検知するまで、CPUは有効となるアドレス
値、書き込みデータ、CPUWEN=0を出力し続け
る。そして、その期間WEN_REG=0を受けて、5
−6のライトWAITカウンタは、システムCLKの立
ち上がりに同期して、そのカウンタ値W_WAIT_C
NTをカウンタ値2までインクリメントしていく。時刻
T5で、5−7の書き込みイネーブル生成部では、W_
WAIT_CNT=1を受けて、書き込みイネーブルW
AIT_WENをシステムCLKの立ち上がりでWAI
T_WEN=0とし、時刻T6で、W_WAIT_CN
T=2を受けて、WAIT_WEN=1とする。又、時
刻T6では、5−8のライトWAIT解除信号生成部が
W_WAIT_CNT=2を受けてW_WAIT_UP
=1を出力する。時刻T7で、Dフリップフロップ5−
10はORゲート5−9を介してW_WAIT_UP=
1をCPUCLKの立ち下がりでラッチして、WAIT
=1として出力する。T5、T6間のWAIT_WEN
=0がセレクタ4−1−4を介して、Dフリップフロッ
プ4−1−7で、システムCLK1周期分遅らされて、
MEM_WENライン上に出力されると、時刻T8のシ
ステムCLKの立ち上がりで、MEM_WDATA上の
データがRAM4−2のMEM_ADRで指定したアド
レスに書き込まれる。時刻T9のCPUCLKの立ち下
がりで、CPUはWAIT=1を検知し、時刻T10の
CPUCLKの立ち下がりでCPUWEN=1とし、時
刻T12のCPUCLKの立ち上がりでCS=1とし、
又、有効アドレス及び書き込みデータの出力を解除す
る。時刻T11のシステムCLKの立ち上がりで、CP
UWEN=1がDフリップフロップ5−5でラッチさ
れ、WEN_REG=1となる。最後に時刻T13のシ
ステムCLKの立ち上がりで、ライトWAITカウンタ
5−6がWEN_REG=1を受けて、W_WAIT_
CNTのカウント値を0にリセットする。ここで、時刻
T0以前の初期状態に戻る。以上のようなシーケンスを
経て、CPUからメモリの所定アドレスへのデータの書
き込みが完了する。
メモリへデータを書き込むときのアドレス、コントロー
ル信号の送出タイミングと、それらのタイミングに呼応
して、メモリインターフェースが、ウェイト信号および
読み出しデータを出力するタイミングを示す。図7の時
刻T0で、4−4のCPUは、CPUCLKの立ち上が
りに同期して、CSをレベル0とし、又、アクセスする
メモリのアドレス値を送出する。CPUADR上のアド
レス値は、セレクタ4−1−2を介して、レジスタ4−
1−5で、システムCLKの立ち上がりで同期がとら
れ、MEM_ADR上に出力される。時刻T1で、CP
UはCPUCLKの立ち下がりに同期してCPUDAT
Aライン上に書き込みデータを送出する。このデータ
は、双方向バッファ4−5、セレクタ4−1−3を介し
て、レジスタ4−1−6で、システムCLKの立ち上が
りで同期がとられ、MEM_WDATAラインに出力さ
れる。同時に、4−1−1のウェイト信号生成部内の5
−10のDフリップフロップは、時刻T0で送出された
CSのレベル0を5−9のORゲートを介して、CPU
CLKの立ち下がりでラッチし、WAITをレベル0と
してCPUに対して送出する。時刻T2で、CPU4−
4はCPUCLKの立ち上がりに同期してCPUWEN
を送出する。時刻T3で、5−5のDフリップフロップ
は、システムCLKの立ち上がりでCPUWENのレベ
ル0をラッチし、WEN_REG=0を出力する。時刻
T4で、CPUは、CPUCLKの立ち下がりでWAI
T=0を検知してウェイト状態にはいり、その後WAI
T=1を検知するまで、CPUは有効となるアドレス
値、書き込みデータ、CPUWEN=0を出力し続け
る。そして、その期間WEN_REG=0を受けて、5
−6のライトWAITカウンタは、システムCLKの立
ち上がりに同期して、そのカウンタ値W_WAIT_C
NTをカウンタ値2までインクリメントしていく。時刻
T5で、5−7の書き込みイネーブル生成部では、W_
WAIT_CNT=1を受けて、書き込みイネーブルW
AIT_WENをシステムCLKの立ち上がりでWAI
T_WEN=0とし、時刻T6で、W_WAIT_CN
T=2を受けて、WAIT_WEN=1とする。又、時
刻T6では、5−8のライトWAIT解除信号生成部が
W_WAIT_CNT=2を受けてW_WAIT_UP
=1を出力する。時刻T7で、Dフリップフロップ5−
10はORゲート5−9を介してW_WAIT_UP=
1をCPUCLKの立ち下がりでラッチして、WAIT
=1として出力する。T5、T6間のWAIT_WEN
=0がセレクタ4−1−4を介して、Dフリップフロッ
プ4−1−7で、システムCLK1周期分遅らされて、
MEM_WENライン上に出力されると、時刻T8のシ
ステムCLKの立ち上がりで、MEM_WDATA上の
データがRAM4−2のMEM_ADRで指定したアド
レスに書き込まれる。時刻T9のCPUCLKの立ち下
がりで、CPUはWAIT=1を検知し、時刻T10の
CPUCLKの立ち下がりでCPUWEN=1とし、時
刻T12のCPUCLKの立ち上がりでCS=1とし、
又、有効アドレス及び書き込みデータの出力を解除す
る。時刻T11のシステムCLKの立ち上がりで、CP
UWEN=1がDフリップフロップ5−5でラッチさ
れ、WEN_REG=1となる。最後に時刻T13のシ
ステムCLKの立ち上がりで、ライトWAITカウンタ
5−6がWEN_REG=1を受けて、W_WAIT_
CNTのカウント値を0にリセットする。ここで、時刻
T0以前の初期状態に戻る。以上のようなシーケンスを
経て、CPUからメモリの所定アドレスへのデータの書
き込みが完了する。
【0036】
【発明の効果】以上説明したように本発明によれば、同
期式メモリに対して、クロックを切り替えずに、データ
処理部からのアクセスも演算手段からのアクセスもデー
タ処理部のシステムクロックのみで遂行することがで
き、この為、クロックタイミング調整用ツールによるク
ロックバッファの自動挿入が遂行され、同期式メモリ
と、周辺のDフリップフロップ間のクロック入力タイミ
ングが保証され、データアクセスの誤動作を回避でき
る。
期式メモリに対して、クロックを切り替えずに、データ
処理部からのアクセスも演算手段からのアクセスもデー
タ処理部のシステムクロックのみで遂行することがで
き、この為、クロックタイミング調整用ツールによるク
ロックバッファの自動挿入が遂行され、同期式メモリ
と、周辺のDフリップフロップ間のクロック入力タイミ
ングが保証され、データアクセスの誤動作を回避でき
る。
【0037】また、スパイク防止用のクロック切り替え
回路が不要となり、その分のコストアップも回避でき
る。
回路が不要となり、その分のコストアップも回避でき
る。
【図1】従来例のメモリインターフェースにおけるクロ
ック切り替え回路の構成を示す図である。
ック切り替え回路の構成を示す図である。
【図2】従来例のメモリインターフェースにおけるクロ
ック切り替え回路のタイミングチャートを示す図であ
る。
ック切り替え回路のタイミングチャートを示す図であ
る。
【図3】従来例のメモリインターフェースの構成及びメ
モリとの接続関係を示す図である。
モリとの接続関係を示す図である。
【図4】本発明のメモリインターフェースの構成及び周
辺装置との接続関係を示す図である。
辺装置との接続関係を示す図である。
【図5】本発明のウェイト信号生成部の構成を示す図で
ある。
ある。
【図6】本発明のCPU側のデータのリードアクセスを
示すタイミングチャート図である。
示すタイミングチャート図である。
【図7】本発明のCPU側のデータのライトアクセスを
示すタイミングチャート図である。
示すタイミングチャート図である。
4−1−1 ウェイト信号生成部 4−1−2〜4−1−4 セレクタ 4−1−5〜4−1−7 Dフリップフロップ 4−1−8 イネーブル端子付きDフリップフロップ 5−1、5−5、5−10 Dフリップフロップ 5−2 リードWAITカウンタ 5−3 読み出しイネーブル生成部 5−4 リードWAIT解除信号生成部 5−6 ライトWAITカウンタ 5−7 書き込みイネーブル生成部 5−8 ライトWAIT解除信号生成部 5−9 3入力ORゲート
Claims (5)
- 【請求項1】 システムクロックによって同期制御され
るデータ処理部から出力される信号および前記システム
クロックとは別のクロックによって同期制御されるCP
Uから出力される信号のいずれかを選択する選択手段
と、 前記選択手段によって選択された信号をクロック同期型
メモリに出力することによって当該メモリに対するアク
セスを実行するための出力手段と、 当該CPUから出力される信号を一時的に保持させる為
のウェイト信号を当該CPUに出力するウェイト信号生
成手段とを備え、 前記データ処理部、前記CPUのいずれのメモリに対す
るアクセスも、前記システムクロックのみを用いて遂行
し、且つ前記CPUによるアクセス時には、前記ウェイ
ト信号生成手段からウェイト信号を出力することを特徴
とするメモリインターフェース。 - 【請求項2】 前記CPUから出力される信号は、デー
タ、アドレスおよび制御信号を含むことを特徴とする請
求項1記載のメモリインターフェース。 - 【請求項3】 前記ウェイト信号生成手段は、前記演算
手段からのアクセス時に、前記ウェイト信号を受信した
前記CPUが当該ウェイト信号に応答して前記一時的保
持を実行している間に、前記システムクロックに同期し
た制御信号を生成して、当該システムクロックに同期し
た制御信号を前記CPUからのアドレスおよびデータと
ともに前記メモリに送出することを特徴とする請求項2
記載のメモリインターフェース。 - 【請求項4】 前記ウェイト信号生成手段は、 前記CPUから送信されるリードイネーブル信号を前記
システムクロックでラッチして同期リードイネーブル信
号として出力するリードイネーブルラッチ手段と、 前記同期リードイネーブル信号がアクティブ状態の時、
前記システムクロックに同期してカウントアップを行
い、非アクティブ状態の時、前記システムクロックに同
期してカウント値をリセットするリードウェイトカウン
タと、 前記リードウェイトカウンタのカウント値に基づいて、
前記メモリからの読み出しデータのラッチを許可するリ
ードイネーブル信号を前記システムクロックに同期して
所定期間出力するリードイネーブル信号生成部と、 前記CPUから出力されるチップセレクト信号がアクテ
ィブ状態であるとき、前記リードウェイトカウンタのカ
ウント値に基づいて、前記システムクロックに同期して
リードウェイト解除信号を出力し、前記CPUから出力
されるチップセレクト信号が非アクティブ状態のとき、
リードウェイト解除信号を前記に同期してリセットする
リードウェイト解除信号生成部と、 前記CPUから出力されるライトイネーブル信号を前記
システムクロックでラッチして同期ライトイネーブル信
号として出力するライトイネーブルラッチ手段と、 前記同期ライトイネーブル信号がアクティブ状態の時、
前記システムクロックに同期してカウントアップを行
い、非アクティブ状態の時、前記システムクロックに同
期してカウント値をリセットするライトウェイトカウン
タと、 前記ライトウェイトカウンタのカウント値に基づいて、
前記CPUから出力されるデータの前記メモリへの書き
込みを許可するライトイネーブル信号を前記システムク
ロックに同期して所定期間出力するライトイネーブル信
号生成部と、 前記CPUから出力されるチップセレクト信号がアクテ
ィブ状態であるとき、前記ライトウェイトカウンタのカ
ウント値に基づいて、前記システムクロックに同期して
ライトウェイト解除信号を出力し、前記CPUから出力
されるチップセレクト信号が非アクティブ状態のとき、
ライトウェイト解除信号を前記システムクロックに同期
してリセットするライトウェイト解除信号生成部と、 前記CPUから出力されるチップセレクト信号を、前記
CPUから出力されるクロックでラッチし、このラッチ
信号をウェイト信号として前記CPUに戻し、前記リー
ドウェイト解除信号および前記ライトウェイト解除信号
により前記ウェイト信号をリセットするウェイト信号出
力手段とを具えたことを特徴とする請求項2または請求
項3記載のメモリインターフェース。 - 【請求項5】 システムクロックによって同期制御され
るデータ処理部から出力される信号および前記システム
クロックとは別のクロックによって同期制御されるCP
Uから出力される信号のいずれかを選択し、 前記選択された信号をクロック同期型メモリに出力する
ことによって当該メモリに対するアクセスを実行する際
に、 前記CPUからのアクセスに対して、当該CPUから出
力される信号を前記システムクロックに基づいて一時的
に保持させる為のウェイト信号を当該CPUに出力する
ことを特徴とするメモリインターフェースにおける信号
処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000380836A JP2002182973A (ja) | 2000-12-14 | 2000-12-14 | メモリインターフェースおよびその信号処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000380836A JP2002182973A (ja) | 2000-12-14 | 2000-12-14 | メモリインターフェースおよびその信号処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002182973A true JP2002182973A (ja) | 2002-06-28 |
Family
ID=18848953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000380836A Pending JP2002182973A (ja) | 2000-12-14 | 2000-12-14 | メモリインターフェースおよびその信号処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2002182973A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100546097B1 (ko) * | 2001-11-21 | 2006-01-24 | 주식회사 하이닉스반도체 | 제어 및 어드레스 클럭 비분배형 메모리 시스템 |
US7346752B2 (en) | 2003-09-03 | 2008-03-18 | Brother Kogyo Kabushiki Kaisha | Memory controller and image forming device provided with the same |
JP2013196011A (ja) * | 2012-03-15 | 2013-09-30 | Fujitsu Semiconductor Ltd | クロック切替回路 |
-
2000
- 2000-12-14 JP JP2000380836A patent/JP2002182973A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100546097B1 (ko) * | 2001-11-21 | 2006-01-24 | 주식회사 하이닉스반도체 | 제어 및 어드레스 클럭 비분배형 메모리 시스템 |
US7346752B2 (en) | 2003-09-03 | 2008-03-18 | Brother Kogyo Kabushiki Kaisha | Memory controller and image forming device provided with the same |
JP2013196011A (ja) * | 2012-03-15 | 2013-09-30 | Fujitsu Semiconductor Ltd | クロック切替回路 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3856696B2 (ja) | 2倍データ速度同期式動的ランダムアクセスメモリのための構成可能同期装置 | |
US7058799B2 (en) | Apparatus and method for clock domain crossing with integrated decode | |
US6603706B1 (en) | Method and apparatus for synchronization of read data in a read data synchronization circuit | |
US6782459B1 (en) | Method and apparatus for controlling a read valid window of a synchronous memory device | |
JP2007525766A (ja) | マルチポートメモリシステムにおける衝突検出 | |
US10999050B1 (en) | Methods and apparatus for data synchronization in systems having multiple clock and reset domains | |
JPH0784863A (ja) | 情報処理装置およびそれに適した半導体記憶装置 | |
JP7299423B2 (ja) | テスト回路 | |
US6320818B1 (en) | Semiconductor storage device, and method for generating timing of signal for activating internal circuit thereof | |
US5371869A (en) | Micro-controller unit for selectively accessing an internal memory or an external extended memory using a read/write terminal | |
US20040075591A1 (en) | Circuit and method for generating mode register set code | |
JP2002182973A (ja) | メモリインターフェースおよびその信号処理方法 | |
US6640277B1 (en) | Input staging logic for latching source synchronous data | |
US7761729B2 (en) | Delay compensation | |
JP4206508B2 (ja) | 信号制御回路 | |
JP2007293845A (ja) | 直列データ源からのデータを並列フォーマットで読取る方法および装置 | |
JP3365283B2 (ja) | 半導体記憶装置 | |
US8489943B2 (en) | Protocol sequence generator | |
US7962698B1 (en) | Deterministic collision detection | |
JP3783890B2 (ja) | 半導体メモリ装置の内部カラムアドレス発生回路 | |
JP4190217B2 (ja) | クロック生成装置及びオーディオデータ処理装置 | |
JP3688137B2 (ja) | マイクロコンピュータ | |
US20230195661A1 (en) | Method for data communication between subregions of an fpga | |
JP2936807B2 (ja) | 集積回路 | |
JPH0215145B2 (ja) |