2

出色的 J1 Forth CPU(Verilog 源代码)可用于 Xilinx FPGA。我试图将它移植到 Altera Cyclone II FPGA。

我很难让 Altera 双端口 RAM 宏功能正常工作。从 Verilog 代码来看,我可以使用两个单端口 RAM,而不是双端口 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 库,这违背了拥有首先是两个 RAM 银行。

否则,您将不得不连接某种逻辑以使两个 RAM 组保持同步。

J1 与拥有双端口 RAM 组的想法紧密相关。

于 2014-03-25T20:10:01.727 回答