Verilog 用两个单端口RAM替换Altera FPGA上第四个CPU的双端口RAM

Verilog 用两个单端口RAM替换Altera FPGA上第四个CPU的双端口RAM,verilog,forth,Verilog,Forth,给出了在XilinxFPGA上工作的CPU()。我想把它移植到Altera Cyclone II FPGA上 我很难让Altera双端口RAM megafunction正常工作。从Verilog代码判断,我可以使用两个单端口RAM而不是双端口RAM吗 真正的问题是,j1forth是否在运行时修改自己的代码?如果没有,为什么不将双端口RAM分为代码RAM(由{u pc}寻址)和数据RAM(由{u st0[15:1]寻址)?现在,为J1生成代码的编译器(您应该得到一些在Gforth下运行的Forth

给出了在XilinxFPGA上工作的CPU()。我想把它移植到Altera Cyclone II FPGA上

我很难让Altera双端口RAM megafunction正常工作。从Verilog代码判断,我可以使用两个单端口RAM而不是双端口RAM吗


真正的问题是,j1forth是否在运行时修改自己的代码?如果没有,为什么不将双端口RAM分为代码RAM(由{u pc}寻址)和数据RAM(由{u st0[15:1]寻址)?

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

您还必须更改的定义!和@从适当的RAM库获取。忘记实现任何类型的交互式提示,允许您定义任何新词,因为这需要要么写入包含代码的RAM库,要么能够将PC指向数据RAM库,这就违背了最初拥有两个RAM库的目的

否则,您必须连接某种逻辑以保持两个RAM组同步


J1与双端口RAM组的概念紧密相连。

您是否可以访问单端口RAM,对任意两个地址进行并行读写?