将双端口 RAM 替换为两个单端口 RAM,用于 Altera FPGA 上的 J1 Forth CPU



出色的J1 Forth CPU(Verilog源代码)用于在Xilinx FPGA上工作。我试图将其移植到Altera Cyclone II FPGA。

我很难让 Altera 双端口 RAM 大型功能正常工作。从Verilog代码来看,我可以使用两个单端口RAM而不是双端口RAM吗?

真正的问题是,J1 Forth 在运行时会修改自己的代码吗?如果没有,为什么不将双端口RAM分成代码RAM(由{_pc}寻址)和数据RAM(由_st0[15:1]寻址)?

现在,为 J1 生成代码的编译器(您应该已经获得了一些在 Gforth 下运行的 Forth 代码)假设数据和代码都来自同一个 RAM 空间。 为了分离代码和数据(您必须这样做才能为每个代码和数据使用单独的 RAM 库),您必须修改编译器以将使用 CREATE 完成的任何操作放入数据 RAM 中。

您还必须更改 ! 和 @ 的定义才能从相应的 RAM 库中获取。忘记实现任何类型的交互式提示,允许您定义任何新单词,因为这需要写入包含代码的RAM库,或者能够将PC指向数据RAM组,这首先违背了拥有两个RAM库的目的。

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

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

相关内容

  • 没有找到相关文章

最新更新