利用这种结构的FPGA资源实现通用电路,需要专门的综合和版图设计支持。如前所述,可以采用Synplicity公司的Synplify工具进行综合,而用Xilinx公司的Alliance布局和布线工具进行版图设计。Alliance工具的独特功能包括代码翻译、映射、时序分析、布局和布线以及最终的时序分析。
GUI的考虑
相对于ASIC设计来说,FPGA设计工具稍微不同。FPGA工具更加着重于图形用户界面(GUI)的使用。因此,Synplify和Alliance工具的使用比大多数ASIC工具都容易,但是批处理工作模式并不总具备无缝连接的特性。
例如,以批处理方式进行试验时,发现Synplify工具不能从网络服务器上导入设计文件。Synplify工具的GUI在交互运行时,不存在检索文件问题,并且从本地磁盘上导入设计文件也不存在问题。因为我们总是从计算机的磁盘上运行基准测试程序以避免网络阻塞造成的故障,此外,当藉由键盘从Synplify工具退出时,NT的任务监视进程表仍然显示该任务持续执行了几分钟,表明系统难以退出运行状态。可是,当Synplify完成一次正常运行后,程序就会立刻退出,因而能记录精确的运行时间。
让Alliance自动运行存在一些问题,因为现在还不能以批处理命令控制所有功能。然而,可以藉由宏来实现这些功能,并用脚本初始化该宏。在标准测试程序中,无法实现Alliance的时序分析器功能,因为在退出时该工具弹出一个对话框,询问是否确认退出,而批处理文件却不知道如何选择“是或否”。
脚本对基准测试过程十分重要,我们仔细嵌套的各种脚本还具备一致测试工具执行时间的基础。如果设计工具不能及时退出,我们就无法精确计时,于是只能把时序分析器放在基准测试程序之外。
如果不进行基准测试,当设计过程很短且迭代次数较少时,就可更多地依赖GUI。开发只使用几次的脚本之目的在于,以工程师期望的方式设置FPGA工具,其运行也只是几次而已。
传统的FPGA比较小,足以实现快速的设计流程,但是,随着FPGA容量的提高,特别是百万闸FPGA的出现,要求广泛采用依赖于批处理模式的计算机农场(computer farm)。