FPGA : 工具篇

综合工具 - Synplicity

几乎是隔两个月就出一个新版本,其更新速度在EDA厂商中是相当惊人。
可能现在还有好多人在用7.2/7.5版本,但最新的已经出到了8.6,中间隔了大约10多个版本。

最初其产品线只有synplify和synplify pro,到8.1版本出了个proto, 多了对synopsys DesignWare模块的识别,所以可以直接处理使用DesignWare的 ASIC代码并在FPGA上生成原型,所以称作"PROTO type"。另一个产品方向是物理综合,很早就推出了Amplify,最常见的是3.7版,可以针对物理实现,比如P&R的位置之类作些约束。这些产品方向最后渐趋融合,到8.4版本终于统一成了synplify premier。这里面包含了pro,proto,amplify的所有功能。premier 也很快推出了更新,目前到8.6版本,这之前还推出过一个8.5版本,不过只是针对Virtex4的。

总的来说,synplicity 是个很令我满意的工具,界面作的非常方便实用,电路的图形化表述很清楚,包括约束等也可基于图形操作,
另外也提供了synbatch 这个命令行界面,可以说几乎找不出任何弱势。

布线工具 - Xilinx

说到FPGA自然得说说Xilinx,不过Xilinx提供的ISE软件的界面可说是比synplicity 差太多了,完全不是一个档次,
感觉ISE纯粹就是一堆命令行工具的统一窗口 ,也许他们专注在功能上,所有工具都只提供命令行界面,没有考虑界面问题。

版本方面,最早我用5.3,后来到6.1,这之间基本没有大的变化。6.1我用了很久,直到最后用Virtex4, 必须升级到7.1才能支持,7.1的界面方面也做了些改观。另外,ISE的补丁也实在令人叹为观止。7.1推出不到3个月就出了第一个补丁包,400多 M,一张光盘,而整个7.1版本才3张光盘,自此我不太敢用ISE的新版本,都要等他们出补丁包之后才开始用。

最近Xilinx推出了8.1版本,号称对于Virtex4系列可以提高70%的性能,我一直怀疑他们是不是7.1时过于仓促,没有做好优化,直到8.1才补上。
现在8.1补丁还没推出,所以…,不急着用:p

调试工具

按功能演变排序:

probe

可将某个信号拉到管脚上观察。算作一个功能,不过不作为独立的工具,synplicity 和 ise都支持该功能

FpgaEditor

Xilinx的fpga编辑工具,可以在布线之后,作些管脚分配以及内部逻辑的修改,改后不用全部重新布线,速度很快。

ChipScope

Xilinx的FPGA调试工具,本质也就是类似于probe,拉出一些信息,只是这些信息可以通过RAM保存下来,并且通过JTAG接口传导PC上通过波形窗口分析。另一个方向上,软件可以通过JTAG接口往FPGA写入一些值变更行为,并可设置信息捕捉的触发条件。

Identify

synplicity的FPGA调试工具

其特点在于通过JTAG传递信号之后,还可以把这些信号同源码联系起来,从而可以类似软件的调试,可以设置断点(对应实际硬件中的信号捕捉触发条件),这样就把调试工具又提高了一个层次。

不过现实没有理想那么美好,Identify 要求重新综合所有代码,而且比原先的综合还要更慢一些,并且我遇到好多次中途退出的情况,似乎不太稳定。

专业调试工具

EVE之类,用的不多,不做评论。

 

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.