我有兴趣在FPGA项目中使用J1 CPU。
我知道要使用J1 CPU本身,我需要合成(等(Verilog代码,并将比特流加载到我的FPGA中。我可以使用IceStorm或FPGA供应商自己的工具来完成这项工作。没有问题。
我不知道如何编译一个可以上传到FPGA存储器并执行的Forth程序。
运行什么命令将Forth程序编译为.hex文件?
我知道SwapForth,我认为它是一个在J1 CPU本身上运行的Forth解释器
你错了。SwapForth是一个交互式编译器,而不是解释器。
也许它做的比你需要的更多——处理字典,接受来自UART的新代码(毕竟,这是一个完整的Forth系统(,你可能根本不需要,但这并不意味着它是一个解释器。
要编译自己的代码,请运行gforth cross.fs basewords.fs your_prog.fs
。注意,cross.fs
是非常简约的,甚至不提供variable
/value
单词。但是您可以很容易地将这些(以及更多(直接添加到cross.fs
中。
请查看带有swapforth的github存储库。它包含了像J1A和J1B这样的FPGA的完整实现。
使用J1B,我甚至创建了一个用于初始化和诊断相对复杂的基于FPGA的板的完整系统——AFCK_J1B_FORTH。
为了用新词编译代码,我使用J1B的Verilator仿真。因此,您不需要在硬件中使用真正的J1B来准备代码。整个过程也在AFCK_J1B_FORTH的README中进行了描述。
它是一个解释器,也可以编译,在你的电脑上尝试模拟的swapforth,在python上运行。或者你可以在电脑上编写源代码来加载/解释/编译。