kitune-sanの日記: 8259をSystemVerilogで書いてみる #4(終)
日記 by
kitune-san
HDDが壊れて環境を作り直したり、やる気が入らなかったりといろいろあったけど、8259の実装をとりあえず完了した。
https://github.com/kitune-san/KF8259
前回から追加したモジュールは、Control_LogicとTOPレベルブロック。
他にも細かい修正をした。
ほとんどの機能を実装したが、オリジナルと動作が一緒である保証はない。
POLLコマンドなどの一部の機能はデータシートを見ても確実な動作が見えなかったので、想像で動作を実装している部分がある。
実際にチップに信号を入れて確認しようかと思ったけど、面倒になってしまったのでこのようになっている。すまぬ。
信号やレジスタの値の変化をガチャガチャ頭の中で動かしながらHDLを書いているのだが、このやり方は信号が増えてくるとかなり辛い。
特に、Control_Logic内に機能を集中させすぎてしまったので大変だった。ソフトの設計で言えば、複数の割り込みやタスク間で大量の変数が共有されているような感覚。
テストベンチを作るのも結構大変。網羅的にやりたいけども、難しい。信号の入力パターンだけでなくタイミングも考慮しなければいけない。カバレッジみたいな指標とかあるのだろうか。
C言語(C++?)を使用することができるみたいなので今度試してみようと思う。
バリバリ設計している人たちはすごいなぁと思いつつ、今の自分のやり方はまともな設計方法ではないと思うので、楽するためにももうちょっと勉強が必要だと思った。
さて、次はどうしよう。
残りの8257 (DMA) と 8088を作ればオンボートPC-XTが作れそうだけども・・・。
8259をSystemVerilogで書いてみる #4(終) More ログイン