フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
webadm | 投稿日時: 2006-12-2 11:03 |
Webmaster 登録日: 2004-11-7 居住地: 投稿: 3089 |
結局2ビットしか出力できない デザインをちょっと修正して8ビット出力できるようにしてみたところ、Behavioral SimulationではMSBを除いて7bitは出力しているように見える。
しかし、Post-fit Simulationをしてみると最後の2bitしか正しく出力されなていないことが判明。 だから2ビットしか出力しない仕様にしてあるのか。 もともとSCLの立ち下がりでデータを変化させるのだが同時にビット位置のカウンタも進めなければならない。論理的にHold time 0の設計になってしまうし、しかも1ビットクロックずれている。 最初のMSBの出力はその直前のACKを出力するビット位置カウント(9)の時に出せばよいがどうもうまくいかない。根本的にまずいのだろう。 もともとSCLとSDAの2つの信号の立ち上がりと立ち下がりの両方のエッジで動作する複数クロック設計(非同期設計ともいう)なので簡単なようで難しい。 むしろゼロから単一クロックでSCLとSDAをサンプルしてその状態変化をトラッキングして動くステートマシンとして設計すれば楽だが、面倒。高速のレートで動作させる場合には基本クロックをその10倍ぐらいにしておかないと出力信号が遅れてホスト側のデータサンプル時のsetup時間を満たせなくなってしまいかねない。 今回は市販されていない1MHzぐらいのレートで動くI2Cデバイスをエミュレートしたいので10MHzぐらいの基本クロックを使用することになる。 あと単一クロックにすると非同期設計よりも回路規模は大きくなりがち。 |
フラット表示 | 前のトピック | 次のトピック |
投稿するにはまず登録を | |