给出了在Xilinx FPGA上工作的奇妙的J1 Forth CPU (Verilog source code)。我正试着把它移植到Altera Cyclone II FPGA上。
我很难让Altera双端口RAM的大功能正常工作。从Verilog代码判断,我可以使用两个单端口RAM,而不是双端口RAM吗?
真正的问题是,J1 Forth会在运行时修改自己的代码吗?如果不是,为什么不将双端口内存分为代码内存(由{_pc}寻址)和数据内存(由_st015:1寻址)?
发布于 2014-03-26 04:10:02
现在,为J1生成代码的编译器(您应该已经获得了一些在Gforth下运行的Forth代码)假定数据和代码都来自相同的内存空间。为了分离代码和数据(为了对每个代码使用单独的RAM库,您必须这样做),您必须修改编译器,以便将使用CREATE完成的任何操作放入数据RAM中。
您还必须更改!和@从适当的RAM库中取出。忘记实现允许您定义任何新词的任何类型的交互式提示,因为这将需要写入包含代码的RAM存储体,或者能够将PC指向数据RAM存储体,这与最初拥有两个RAM存储体的目的背道而驰。
否则,您将不得不连接某种类型的逻辑来保持两个RAM组同步。
J1与拥有双端口内存组的想法非常紧密地联系在一起。
https://stackoverflow.com/questions/19368314
复制相似问题