kitune-sanの日記: 8259をSystemVerilogで書いてみる #2
日記 by
kitune-san
おとといの続き
# バスの制御
外部からのバス入力(A0, D0-7, /WE, /RE, /CS)からチップ内部のレジスタ書き込むためのフラグを立てたり、レジスタ読み取りのフラグを立てたりするブロック。
これまで作ってきた8255などのブロックを流用した。オリジナルとは違い、クロック同期の動作とした。
書き換えするレジスタの選択はアドレス(A0)とデータの一部で決まるが、ICW2-4とOCW1のように条件が重なる場合がある。
これは、ICW1更新後にICW2-4の書き換え処理に移行し、この間はOCWの書き換えはされないからである。
これらの初期化中・OCW書き換え禁止フラグは、CONTROL LOGIC内に記述しようと考えている。
また、読み取り信号もOCWレジスタの設定によってポーリングモードであったり、割り込みレジスタの内容だったり変化するため、
ここでは読み取り要求のフラグを立てるのみとした。
---
また、おととい作成した優先順位解決ブロックは、ビット回転の箇所を関数(function)にして共通化をおこなった。LEの数が減るわけでもないけどね。
8259をSystemVerilogで書いてみる #2 More ログイン