谈谈如何利用FPGA开发板进行ASIC原型开发
到提高。
*消除创新:如果一项ASIC设计适合单个的FPGA,然后设计和实现一块定制的电路板是相对简单的。比较起来,在一项要求两个FPGA的ASIC设计的情况下,该问题变得非常令人感兴趣;并且,当使用三个或更多的FPGA时,事情变得按指数规律增加复杂性。
*消除接口:如果一项ASIC设计适合单个的FPGA,然后有一些令人信服的原因来设计定制电路板。其中一个原因是,在同一块卡上按照任何接口逻辑实现该FPGA通常是有意义的。然而,在多个FPGA的原型开发板的解决方案中,通过使用很知名的现成电路板以及集中努力在特制的接口卡设计上,接口问题几乎总是很简单的。
*减少成本:设计和实现高端多个FPGA原型开发板要求大量的专业设计工程师和版图工程师,这将比简单的购买现成的电路板增加非常大的成本。
*减少产品推向市场的时间:即使对一家专业设计和实现多个FPGA原型开发板的公司而言,高端电路板的制作能够很容易的花费掉9个月(并且这假设多个工程师和版图设计师分多班倒班工作)的时间。不必惊讶,一个非专业的团队将几乎肯定花费更长的时间,这能够很容易的造成项目落后于它的进度表,并且失去它的市场空间。作为一个多个FPGA原型开发板设计问题复杂性的例子,考虑来自Dini集团的DN8000K10电路板。Dini集团是Synplicity原型开发计划的合作伙伴成员。
DN8000K10是一个USB 2.0主机逻辑原型系统,其能够用二到十六个高容量的FPGA来组装。在其最高的配置中,该电路板能够被用于代表保守值相当于24,000,000 ASIC门的原型设计。
DN8000K10的设计和实现共花费九个月的时间。最为该项目的一部分,六位版图工程师分两班轮班工作了几个月。最终的产品是28层的电路板,其芯片间通讯是在350 MHz下采用低压差分信号(LVDS)实现的。(在设计管脚受限的情况下,每个LVDS管脚对支持集成的SERDES,这能够提供高达10:1的复用。)在这一复杂度上,噪声的处理问题和信号完成性问题要求很高的知识和经验水平。这一水平的电路板完全超过了今天现成的自动布线工具能够找到解决方案的能力的一至两个数量级;所以,每个管脚是"手工挑选",并且每条路径是"手工连接"——没有使用自动布线(除了该电路板周围的外围设备之外)。
手工分割和综合多个FPGA设计
在手工分割的情况下,任何ASIC中心结构(门控时钟,Synopsys的DesignWare?实例等),在原始的RTL源代码中,在进行分割之前,不得不手工将它们翻译为与它们的FPGA相等同的代码。除其它东西之外,这直接导致了两个分离的代码流,这可能失去同步,从而导致在FPGA原型和ASIC之间所代表的功能不同。
当开始分割处理时,工程师们尝试将不同的功能模块组集合在一起,在这里每组在不同的FPGA上实现。这种组合(分割)以门级的传统方式实现。最近,一些流程支持在RTL级分组,此时每个分成的组通过传统的FPGA综合工具,并且仅在这一点上,不同FPGA的实际资源利用是已知的。
所有这些方案都有一个问题,就是对于不同组的面积和资源的影响而言,工程师们是"临时的盲人",这导致了许多耗时的迭代。首先,工程师根据"A模块可能将消耗‘xxx’的资源,而模块B可能要求‘yyy’的资源"而进行"估算"。这些估算是根据大量"分组"命令,然后综合(在基于RTL分割的情况下),然后是结果的分析,以及然后是大量的"取消组"和"再次分组"命令来估算不同的实现方式。
该任务由于这一事实而进一步混淆,该事实就是这些原型经常被FPGA上的I/O管脚的数量所限制;一个无效的解决方案很容易耗费一个器件上100%的I/O资源,然而与此同时,仅仅其相对少量的内部逻辑资源可以实现。为了克服这些I/O限制,I/O的多重分组和/或在多个FPGA中复制同一个逻辑模块是必要的。(为了达到特定的性能目标,逻辑复制也是经常要求的。)
假设在这种原型中使用的每个FPGA可能有超过1000个管脚,一项管理连接的电子表格方法能很容易地包含几千个单元。不足为奇地是,记录分配给每个FPGA的模块和连接矩阵(在不同FPGA之间的连接)是一项繁重的任务,这将是资源密集型的、耗时的以及容易出错的。
自动分割和综合多个FPGA设计
来自Synplicity的CerTIfy? RTL原型开发工具是业内时间最长和最强大的多个FPGA分割和综合工具。很令人感兴趣的是,当CerTIfy软件在上世纪90年代晚期创立时,对ASIC设计团队而言,没有任何现成的多个FPGA原型开发板能够得到。在那时,CerTIfy软件被设计成一个ASIC团队设计他们自己的定制的多个FPGA原型开发板的辅助工具。
使用Cer
- 安森美半导体配合中国消费类医疗市场趋势的半导体方案应用案例研究(07-20)
- 人工智能实现的流派 FPGA vs. ASIC看好谁?(08-27)
- 基于Xilinx Spartan-6 FPGA加速纹理映射的实现(09-08)
- 基于VHDL和CPLD的智能数字电压表设计(10-09)
- 浅谈降低100G系统功耗的六大关键技术(02-26)
- 赛灵思应用解决方案:ASIC原型与仿真(02-14)
