ひととおりRAMボードのターゲット機能が動くようになったので、何か実用的?なアプリケーションをと考えて思いついたのが(♪タターン♪)簡易PCIバスアナライザです。
まあ、実用でも何でもないのですが、自分でPCIバス上のデータが見られるのも面白いし、今後のデバッグにも役立つかと思ったので作ってみることにしました。
ブロック図は以下のようになっていて、前回よりはモジュール化できてきました。
アドレスデコーダと7セグディスプレイをPCIコアから分離し、全体を管理するpcibrdというエンティティをかぶせました。その上で、PCIバスにPCIコアと並列につながる形でトレーサを用意しています。
トレーサは、PCIクロックに同期して、AD(32bit)、C/BE#、FRAME#、DEVSEL#、IRDY#、TRDY#、STOP#の各PCI信号をトレースします(下図)。
XilinxのROMは最大36ビット(うちパリティ4bit)しか作れないことと、通常のPCIメモリ空間からの32bit幅アクセスと整合性を取るため、32bit幅のRAMを二つ用意しています。余ったビットはタイムスタンプとして使用しています。
トレース時には両RAMに一度に32bitづつ計64bitのデータを書き込み、読み出すときは偶数ワード、奇数ワードに分けてアクセスします。
0 件のコメント:
コメントを投稿