つながるワイヤレス通信機器の開発手法(12)  ──ASICを設計する(後編) CPUと周辺回路のインターフェース回路の実装

太田博之

tag: 組み込み 半導体

技術解説 2004年5月27日

●周辺回路からの出力を制御するリード・レジスタ

 CPUのリードに対する回路を図9に示す.アドレスとREをデコードし,該当するアドレスであれば3ステート・バッファの出力をスルーにして内部の信号を外部へ伝達し,CPUに読み取らせる.3ステート・バッファが出力をスルーにするまでの間は,データ・バス上は不定になる.

 非同期バスの場合,CPUは図8と同等の回路を内部に持ち,REの立ち上がりでバス上のデータを取り込む.CPUはデータ・バス上の信号を取り込んだ後,REを"H"に戻す.そして,3ステート・バッファを閉じる.これで,CPUのデータの取り込みが終わる.

 リード・レジスタ(周辺回路側から言えば,信号出力制御回路)には,該当アドレスごとに3ステート・バッファを置く方法(図9の例)と,3ステート・バッファをデータ・バスのビット数だけ置く方法の2種類がある.後者の場合,回路は図10のようになる.このとき,該当しないアドレス信号線をすべて"L"にして,該当アドレスの信号だけを出力するようにANDとORで回路を組む.

 図10の動作は次のとおりである.例えば,データ1の信号をCPUが選択する場合,アドレス信号をデコードした結果は8'b00000001になる.すなわち,デコード回路の出力D1のみが'1'になり,D2とD3は'0'になる.この結果,AND1,AND2の出力はすべて'0'になり,データ1の'1'になっているビットだけが'1'になる.そして,ORを通って3ステート・バッファの入力に入る.この状態でREが"L(アクティブ)"になると,データにデータ1の信号がそのまま出力されることと同じになる.

 どちらの回路も機能は同じである.図9の回路のほうがシンプルであるが,昔のFPGAのように3ステート・バッファの数や使用場所に制限がある場合には図10の回路がよく使用される.

f09_01.gif
〔図9〕リード・レジスタ回路
当該アドレスごとに3ステート・バッファを置く場合の回路を示す.3ステート・バッファが出力をスルーにするまでの間は,データ・バス上は不定になる.

f10_01.gif
〔図10〕3ステート・バッファをデータ・バスのビット数だけ置くリード・レジスタ回路
該当しないアドレス信号線をすべて"L"にして,該当アドレスの信号だけを出力するようにANDとORで回路を組む.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日