最近の更新 (Recent Changes)

2022-08-24
2015-11-04
2014-10-14
2014-07-01
2014-06-29

最新リリース情報

isesimutil (r230)2012-01-01 23:07
nbox_util (r247)2012-03-11 22:19
noodlybox (0012)2010-01-01 19:46
TimingChartViewer (r245)2012-02-15 00:10

Wikiガイド(Guide)

サイドバー (Side Bar)

新たなプロセッサに対応させる方法

この記事は名前付きパイプ版およびDPI-C版向けです。Tcl版には適合しません。

NOODLYBOXが模倣しているのは、厳密に言えばプロセッサではなくてメモリコントローラ(以降memcと略記)です。新たなマイコンに対応させるには、ハードウェアマニュアルなどからmemcについて書かれた部分を探し、memcが出す信号にどんなものがあり、どういったタイミングで変化するかという情報を得る必要があります。

memcの振る舞いがわかったら、それをもとに新規のC++ソースとHDLソースを作ります。雛形としてc/cSh7751.cppとmodel/SH7751.v(vhd)をコピーして使うとよいでしょう。

以降、C++ソースをcFoo.cpp、HDLソースをFOO.vとして説明します。

MPU.v(vhd)の持つ信号 CTRLIとCTRLOは32ビット幅であり、1ビット幅の信号にバラしたり、逆に束ねたりするのはFOO.vの仕事です。 ビット位置と信号名の対応表は、FOO.vとcFoo.cppとで同一にしなければなりません。 FOO.vには、出力信号を遅延させるための記述も必要です。

cFoo.cppは、ステートマシンをC++で実装したような形になります。 出力の制御信号を変化させるには、activate(CS_X)、deactivate(HIZ)のように、正/負の論理に関係なく記述します。制御信号の変化はactivate()メソッドの働きによってHigh/Lowの信号となって、CTRLOに束ねられたあとHDL側に通知されます。