2

ザイリンクス FPGA で動作する素晴らしい J1 Forth CPU ( Verilog ソース コード) が提供されています。それを Altera Cyclone II FPGA に移植しようとしていました。

アルテラのデュアルポート RAM メガファンクションを正しく動作させるのに苦労しています。Verilog コードから判断すると、デュアル ポート RAM の代わりに 2 つのシングル ポート RAM を使用できますか?

本当の問題は、J1 Forth が実行中に自身のコードを変更するかどうかです。そうでない場合は、デュアルポート RAM をコード RAM ({_pc} でアドレス指定) とデータ RAM (_st0[15:1] でアドレス指定) に分けてみませんか?

4

1 に答える 1

0

現在、J1 用のコードを生成するコンパイラー (Gforth で実行される Forth コードを取得しているはずです) は、データとコードの両方が同じ RAM スペースからのものであると想定しています。コードとデータを分離するには (それぞれに個別の RAM バンクを使用するために必要です)、コンパイラを変更して、CREATE で行われたすべての処理をデータ RAM に配置する必要があります。

! の定義も変更する必要があります。@ は、適切な RAM バンクからフェッチします。また、コードを含む RAM バンクに書き込むか、PC をデータ RAM バンクに向ける必要があるため、新しい単語を定義できるような対話型プロンプトを実装することを忘れてしまいます。そもそも2つのRAMバンク。

そうしないと、2 つの RAM バンクの同期を維持するために何らかのロジックを配線する必要があります。

J1 は、デュアルポート RAM バンクを持つという考えにかなり密接に結びついています。

于 2014-03-25T20:10:01.727 に答える