ASIC和FPGA区别及建模概念

数字硬件建模systemverilog(二)-asic和fpga的建模概念  
在进行今天文章之前,先简单介绍一下sv可综合概念。
systemverilog的rtl综合子集 systemverilog既是一种硬件设计语言,也是一种硬件验证语言。ieee systemverilog官方标准没有区分这两个目标,也没有指定完整systemverilog语言的可综合子集。相反,ieee让提供rtl综合编译器的公司来定义特定产品支持哪些systemverilog语言结构。
由于缺乏systemverilog综合标准,每个综合编译器可能支持systemverilog标准的不同子集。这意味着设计工程师在编写用于综合的sv模型时需要小心。必须参考要使用的综合编译器的文档,并遵循为一个综合编译器编写的编译器模型的语言子集,使用不同的综合编译器可能需要根据综合器特性进行修改。
接下来看下今天的主角-fpga建模概念
fpga的建模 本文的目的是了解systemverilog建模风格如何受到asic和fpga技术的影响。有关asic和fpga实现的详细信息以及这些技术的适当应用留给其他工程书籍讨论。然而,为了实现rtl建模最佳实践的目标,理解asic和fpga的基本概念非常重要。
标准单元asic asic是专用集成电路的缩写。与可执行多种功能(如微处理器)的通用ic不同,asic设计用于执行特定任务(因此得名为“application specific”)。控制器、音频格式转换和视频处理是适用于asic的示例。asic还可以包括一个或多个嵌入式处理器,以便执行特定任务同时可以进行通用操作。带有嵌入式处理器的asic通常被称为片上系统(soc,主流设计)。
提供asic的公司称为asic供应商(asic vendors)。其中一些供应商提供asic技术并进行ics实际制造和生产的一部分。其他asic供应商为asic提供技术,但将制造和生产留给其他公司。
大多数asic技术使用标准单元(standard cells),这些单元是预先设计的逻辑块,由一到几个逻辑门组成。asic单元库可能有几百个标准单元,如and、nand、or、nor、exclusive-or, exclusive-nor,2-to-l mux- 2选1 mux、d型触发器、锁存器等。每个单元都有明确的电气特性,如传播延迟、建立和保持时间以及寄生电容。
设计asic涉及从库中选择合适的单元,并将它们连接在一起以执行所需的功能。在整个过程中使用eda软件工具进行设计。asic设计的典型流程如图1-5所示:
图1-5:典型的基于rtl的asic设计流程
图1-5所示的步骤是:
1、当然,第一步是说明设计的意图。 2、所需的功能在抽象的rtl建模级别进行建模。在这个阶段,重点是功能,而不是物理实现。 3、仿真并验证功能。 4、综合,将rtl功能映射到适合目标asic类型的标准单元。综合的输出称为门级网表(gate-level netlist),该综合过程在后面有更详细的描述。 5、仿真或逻辑等价检查器(logic equivalence checkers)(形式验证的一种形式)用于验证门级实现在功能上等同于rtl功能。 6、时钟树合成用于在整个设计中均匀分布时钟驱动。通常,扫描链插入到工具中以增加设计的可测试性。 7、place and route(放置和布线)软件计算如何在实际硅中布局,以及如何布线。place and route软件的输出是一个图形数据系统文件(gdsii,发音为gee dee ess two)。gdsii是一种二进制格式,其中包含有关实际在硅中构建ic所需的几何形状(多边形polygons)和其他数据的信息。 8、进行设计规则检查(drc),以确保asic制造厂定义的所有规则均得到遵守,如加载门扇出, 9、在考虑互连网络和时钟树倾斜的延迟效应后,执行静态时序分析(sta)以确保满足建立/保持时间。 10、最后一步是将gdsii文件和其他数据发送给制造厂,用于制造asic。将这些文件传递给制造厂被称为“taping out”asic,因为在asic设计的早期,是使用磁带将这些文件发送给铸造厂: 在本文中,asic设计流程中的这些步骤已被概括。有许多细节被遗漏了,并不是所有的公司都遵循这个确切的流程。有时,步骤9(静态时序分析)在设计流程的早期执行,并且可能在流程中执行多次。
本文的重点是用于仿真和合成的rtl建模,图1-5中的步骤2和步骤3。此级别的建模处于设计过程的前端。时钟树、扫描链和时序分析等设计细节将在设计流程的后面介绍,不在本文的范围之内。在rtl级别,设计工程师专注于实现所需的功能;而不是实施细节。然而,理解在建模、仿真和合成的前端步骤之后会发生什么仍然很重要。rtl编码风格会影响设计流程中后期使用的工具的有效性。
还有其他类型的asic技术不使用标准单元,如全定制、门阵列和结构化asic。systemverilog可以以类似的方式用于设计这些其他类型的asic,尽管所涉及的软件工具可能有所不同。所使用的综合编译器——以及这些编译器支持的systemverilog语言结构——可能与这些其他技术非常不同。
fpga fpga是现场可编程门阵列(field programmable gate array)的缩写。fpga是一种集成电路,包含固定数量的逻辑块,可在ic制造后进行重新配置(而asic的内容和布局必须在制造前确定)。从历史上看,fpga不能包含asic那么多的功能,只能以较慢的时钟速度运行,这是rtl级设计时的重要考虑因素。fpga技术的最新进展显著缩小了fpga和asic之间的差异。通常,fpga可用于实现与asic相同的功能。
fpga包含一系列称为可配置逻辑块(clb)的小型逻辑元件。一些fpga供应商将这些块称为逻辑阵列块(labs)。典型的clb可能包含一个或多个查找表(lut)、一些多路复用器(mux)和存储元件(如d型触发器)。大多数fpga中的查找表都是用逻辑运算(如and、or和xor)编程的小型ram。从lut中选择所需的操作允许以多种方式使用clb,从简单的and或xor门到更复杂的组合功能。某些fpga中的clb还可能具有其他功能,例如加法器。mux允许组合结果直接从clb输出(异步输出),或在存储单元中输出(同步输出)。
fpga使用包含数百或数千个clb的阵列进行制造,以及可“编程”到所需clb配置的可配置互连-fpga还包含i/o焊盘,可配置为连接到clb阵列的一列或一行。
复杂fpga的典型设计流程如图1-6所示。
图1-6:典型的基于rtl的fpga设计
fpga的前端设计流程类似于asic,但后端不同。fpga的后端部分与asic的主要区别在于fpga的布局和布线。对于asic,place and route软件决定ic的制造方式。对于fpga,综合和布局布线软件详细说明了如何对fpga进行编程。本文重点介绍前端步骤2和3,rtl建模和仿真,其中asic和fpga设计之间几乎没有区别。
asic和fpga的rtl编码样式 理想情况下,相同的rtl代码可以同时用于asic或fpga。在“rtl级别”工作时,工程重点是设计和验证功能,而不必关心实施细节。综合编译器的作用是将rtl功能映射到特定的asic或fpga技术。
对于asic和fpga来说,大多数(但不是全部)rtl代码都能很好地综合。然而,这种普遍性也有例外。rtl模型的一些方面需要考虑设计是在asic还是fpga中进行综合,这些方面包括:
向量/矢量大小。asic在最大矢量宽度和矢量运算方面基本不受限制。在大向量上进行复杂操作需要大量逻辑门,但大多数asic中使用的标准单元架构可以适应这些操作。fpga在这方面比较严格。由于可用clb的数量或clb之间互连路由的复杂性,预定义的clb数量及其在fpga中的位置可能会限制在非常大的向量上实现复杂操作的能力。asic和fpga之间的这种差异意味着,即使在rtl抽象级别,设计工程师也必须牢记设计的功能会受到设备的限制。
复位。大多数asic单元库包括同步和异步复位触发器。设计工程师可以使用被认为最适合设计的复位类型来编写rtl模型,一些fpga没有那么灵活,只有一种复位类型的触发器(通常是同步的)。虽然综合编译器可以将带有异步复位的rtl模型映射到门级同步复位中,或者反之亦然,但需要额外的逻辑门。许多fpga还支持asic不具备的全局复位功能和预置上电上电触发器的状态。后面会更详细地讨论复位建模。

全球主要通信运营商均青睐泰克通信公司的解决方案
可支持超过30倍智能变焦的4K会议摄像机工程的应用分析
谷歌将强制要求PWA应用提供离线体验
分享一款状态机自动生成工具
WitsView指出,iPhone X销售状况不如预期 OLED面板风潮却已经成形
ASIC和FPGA区别及建模概念
焊接贴片电阻的关键步骤
宽范围高稳晶振频率稳定度测试系统的设计
三相四线漏电保护如何接线才不跳闸?
比特币ETF将刺激市场突破历史新高
自制遥控车DIY图解
CadenceLIVE China 2023丨验证专题 1 议程揭晓
解密2023年三大汽车传感器趋势!
如何打造一款能轻松上手的PCIe测试工具?
铜线焊接机的挑选需要考虑什么
爆iPhone 12手机内置36块磁铁,只为无线充电功能
智能座舱域控制器技术发展趋势分析
小米新子品牌手机曝光,定价1999,自诩最强人像摄影手机,矛头直指O、V旗舰
大功率可调稳压电源,Adjustable DC Power Supply
瑞萨电子减少能源消耗,承诺2050年实现碳中和