kitune-sanの日記: 8237をSystemVerilogで書いてみる #1
日記 by
kitune-san
8237AはDMAのチップだ。
ここまでで2つのブロックを作成した。
KF8237_Bus_Control_Logic.svは、内部バスの書き込み/読み取り信号を生成するブロック。
KF8237_Priority_Encoder.svは、DMA要求の優先度解決と優先度の回転を行うブロック。
優先度の回転処理は、KF8259と同じで、
ビット右回転→優先度解決→ビット左回転 という手順となっているが、もっといい方法があるような気がする。
オリジナルのデータシートのブロック図は自分にはわかりにくくて、そのまま真似して実装できそうになかった。
「PRIORITY ENCODER AND ROTATING PRIORITY LOGIC」からは、外部信号としてDACQ0-3、HLDA、HRQ、DACK0-3が出ているけど、
今回のKF8237_Priority_Encoder.svでは、DACQ0-3入力以外の信号処理は作らなかった。
次は、ステートマシンとモードに応じた信号の出力ブロックを作っていいこうと思うが、どんな構成にしようかな・・・。
8237をSystemVerilogで書いてみる #1 More ログイン