【问题标题】:Intermediate representation for FPGA compilersFPGA 编译器的中间表示
【发布时间】:2014-02-03 19:27:09
【问题描述】:

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

【问题讨论】:

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

标签: compiler-construction fpga intermediate-language


【解决方案1】:

不是真的。综合工具已经非常了解架构,因此输出网表已经针对目标器件进行了定制。

最接近的方法是使用 ASIC 工具来定位一个简单的门和触发器库。这将产生一个“最小公分母”网表(尽管重新定位到 FPGA 作为从该表示返回到“它是一个加法器,所以我可以使用进位链”是不平凡。

更新 - 我看到你想开发一个实验性的 HDL...

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

如果您还没有,看看MyHDL 是如何做类似事情的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    • 2015-02-13
    • 1970-01-01
    相关资源
    最近更新 更多