如何为J1 CPU编译Forth代码?

时间:2018-11-09 22:19:19

标签: compilation fpga forth

我对在FPGA项目中使用J1 CPU感兴趣。

我了解要使用J1 CPU本身,我需要综合(等等)Verilog代码,并将位流加载到我的FPGA中。我可以使用IceStorm或FPGA供应商自己的工具进行此操作。没问题。

我不明白如何编译一个Forth程序,该程序可以上传到FPGA的内存并执行。

我知道SwapForth,我相信它是在J1 CPU本身上运行的Forth 解释器。这不是我想要的。我希望能够将PC上的Forth代码编译为J1机器代码,以便以后可以将其上载到FPGA的RAM中并在本地执行。

这样的工具存在吗?

2 个答案:

答案 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也描述了整个过程。