我对在FPGA项目中使用J1 CPU感兴趣。
我了解要使用J1 CPU本身,我需要综合(等等)Verilog代码,并将位流加载到我的FPGA中。我可以使用IceStorm或FPGA供应商自己的工具进行此操作。没问题。
我不明白如何编译一个Forth程序,该程序可以上传到FPGA的内存并执行。
我知道SwapForth,我相信它是在J1 CPU本身上运行的Forth 解释器。这不是我想要的。我希望能够将PC上的Forth代码编译为J1机器代码,以便以后可以将其上载到FPGA的RAM中并在本地执行。
这样的工具存在吗?
答案 0 :(得分:2)
我知道SwapForth,我相信它是在J1 CPU本身上运行的Forth解释器
您在这里错了。 SwapForth是一个交互式编译器,而不是解释器。
也许它的作用超出了您的需要-处理字典,从UART接受新代码(毕竟,这是一个完整的Forth系统),您可能根本不需要,但这并不能使其成为解释器。 / p>
要编译自己的代码,请运行gforth cross.fs basewords.fs your_prog.fs
。请注意,cross.fs
非常简单,甚至不提供variable
/ value
个单词。但是您可以轻松地将这些(以及更多)直接添加到cross.fs
。
答案 1 :(得分:2)
请查看github repository with swapforth。它包含完整的FPGA实现,例如J1A和J1B。
使用J1B,我甚至创建了一个完整的系统,用于对相对复杂的基于FPGA的板-AFCK_J1B_FORTH进行初始化和诊断。
要使用新单词编译代码,我使用J1B的Verilator emulation。因此,您不需要硬件中真正的J1B即可编写代码。 in the README of AFCK_J1B_FORTH也描述了整个过程。