对于编程FPGAS,是否可以编写自己的位置&路线惯例? [关键不是我的会更好;重点是我是否有这样做的自由] - 或者这个地方&路由阶段输出到未记录的位文件,迫使我使用专有工具?
谢谢!
答案 0 :(得分:9)
过去在comp.arch.fpga上对此进行了一些讨论。结论通常是,除非你想从FPGA公司吸引强烈的法律诉讼,否则你可能不想做这样的事情。位文件格式是FPGA公司严密保密的秘密,您可能必须了解文件格式才能执行您想要执行的操作。这意味着您需要对格式进行反向工程,并且(如果您以任何方式公开您的工具)会在短时间内为您提起诉讼。
我将补充说,可能存在中间文件,并且您可能不会读取或写入位文件本身以执行您想要执行的操作,但这些中间文件也往往没有文档。阅读用于FPGA综合工具的EULA(例如Xilinx的ISE) - 严格禁止任何类型的逆向工程。似乎我们在这个领域拥有开源替代品的唯一方法就是出现一个开源FPGA架构。
答案 1 :(得分:3)
我同意annccodeal,但为了放大一点,在Xilinx上,可能有几种方法可以做到这一点。 XDL文件格式允许(或用于允许)显式放置和路由。此外,应该可以编写FPGA编辑器脚本来实现自定义路由。
关于布局,有一个丰富的基础设施来约束逻辑到基元的技术映射并控制这些基元的放置。例如,LUT_MAP约束可以控制技术映射,LOC和RLOC约束可以确定放置。在实践中,这些允许有经验的设计师很好地控制设计的实现方式,而不需要他们复制人类世纪的软件开发来直接生成比特流。
您可能还会发现当前最先进的FPGA CAD研究软件VPR。在我看来,这些都是为了跟上供应商自己的工具所面临的挑战,这些工具必须应对具有可拆分6-LUT,DSP模块等的现代异构FPGA。
快乐的黑客攻击。