アダルト・ヴァイオリン May the force be with you..

2008年6月18日

SN/Xのパイプライン化

Filed under: Weblog — い~ぐる @ 5:27 PM

SN/Xはごく僅かの書き換えでパイプラインプロセッサになる。
ただ、パイプラインプロセッサにすると、LiveCygwinのテストベンチを動かす、IcarusVerilogのバグにあたるようで、テストベンチがうまく動かない。
そこで、テストベンチを少し手直しした。
パイプラインプロセッサを snxp.sfl として作成し、
テストベンチを mainp.v としておけば、
make P=p sim1
となどとして、合成からシミュレーションまでを実行可能。

main.v ⇒ mainp.v のもっとも大きな違いは、always @(negedge m_clock) のブロックの中に、複数のif文を入れいていたのを、1ブロック1if文に修正したことだ。
Icarusは、elseなしで、複数の同時実行対象のif文があると、どうも扱いがまずいらしい。参考までに、パッチファイルを上げておこう。

Powered by WordPress