Compiler construction FPGA编译器的中间表示

Compiler construction FPGA编译器的中间表示,compiler-construction,fpga,intermediate-language,Compiler Construction,Fpga,Intermediate Language,在为标准计算机编写编译器时,可以针对现有的中间表示(如LLVM IR),而不必担心系统之间复杂的体系结构差异。FPGA是否存在类似的功能?不太可能。合成工具已经非常了解体系结构,因此输出网表已经针对目标设备进行了定制 最接近的方法是使用ASIC工具,以一个简单的门和触发器库为目标。这将产生一个“最小公分母”网表(尽管重新定位到FPGA是没有效率的,因为从该表示返回到“它是一个加法器,所以我可以使用进位链”是非常重要的 更新-我知道你想开发一个实验性的HDL 我建议,如果你想从实验性的HDL转换成

在为标准计算机编写编译器时,可以针对现有的中间表示(如LLVM IR),而不必担心系统之间复杂的体系结构差异。FPGA是否存在类似的功能?

不太可能。合成工具已经非常了解体系结构,因此输出网表已经针对目标设备进行了定制

最接近的方法是使用ASIC工具,以一个简单的门和触发器库为目标。这将产生一个“最小公分母”网表(尽管重新定位到FPGA是没有效率的,因为从该表示返回到“它是一个加法器,所以我可以使用进位链”是非常重要的

更新-我知道你想开发一个实验性的HDL

我建议,如果你想从实验性的HDL转换成比特流,你只需输出VHDL或Verilog,然后运行传统的工具。我的感觉是,你真的不想负责将(eg)加法器映射到LUTs+进位链,因为你需要数年的时间才能与当前的工具一样好


如果您还没有,请看一下类似的事情是如何进行的。

一个中间级别是纯结构RTL,它可以表示为例如EDIF网表(但通常它已经包含依赖于体系结构的块)。或者你是指数据流中的早期表示,即仍然包含一些行为方面?在某种程度上,Verilog/VHDL的可合成子集实际上在许多工具链中扮演着这个角色。我一直在寻找一些非行为的东西。我很想知道你为什么要这样做…?@MartinThompson开发了一个ex实验性HDL。@Dan-啊,有趣!答案更新。。。