0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ASIC和FPGA的RTL编码样式

jf_78858299 来源:OpenFPGA 作者:碎碎思 2023-03-31 14:45 次阅读

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单元库包括同步和异步复位触发器。设计工程师可以使用被认为最适合设计的复位类型来编写RTL模型,一些FPGA没有那么灵活,只有一种复位类型的触发器(通常是同步的)。虽然综合编译器可以将带有异步复位的RTL模型映射到门级同步复位中,或者反之亦然,但需要额外的逻辑门。许多FPGA还支持ASIC不具备的全局复位功能和预置上电上电触发器的状态。后面会更详细地讨论复位建模。
  • 向量/矢量大小。ASIC在最大矢量宽度和矢量运算方面基本不受限制。在大向量上进行复杂操作需要大量逻辑门,但大多数ASIC中使用的标准单元架构可以适应这些操作。FPGA在这方面比较严格。由于可用CLB的数量或CLB之间互连路由的复杂性,预定义的CLB数量及其在FPGA中的位置可能会限制在非常大的向量上实现复杂操作的能力。ASIC和FPGA之间的这种差异意味着,即使在RTL抽象级别,设计工程师也必须牢记设计的功能会受到设备的限制。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IEEE
    +关注

    关注

    7

    文章

    344

    浏览量

    46336
  • asic
    +关注

    关注

    34

    文章

    1158

    浏览量

    119264
  • 硬件
    +关注

    关注

    11

    文章

    2922

    浏览量

    64801
  • Verilog
    +关注

    关注

    28

    文章

    1327

    浏览量

    109302
  • System
    +关注

    关注

    0

    文章

    161

    浏览量

    36572
收藏 人收藏

    评论

    相关推荐

    ASICFPGA的优势与劣势

    ASICFPGA具有不同的价值主张,在作出选择前必须仔细评估。两种种技术对比。这里介绍了ASICFPGA 的优势与劣势。
    发表于 03-31 17:30 5407次阅读
    <b class='flag-5'>ASIC</b>和<b class='flag-5'>FPGA</b>的优势与劣势

    典型的基于RTLASIC设计流程分析

    FPGA的前端设计流程类似于ASIC,但后端不同。FPGA的后端部分与ASIC的主要区别在于FPGA的布局和布线。对于
    的头像 发表于 06-20 16:24 4782次阅读
    典型的基于<b class='flag-5'>RTL</b>的<b class='flag-5'>ASIC</b>设计流程分析

    到底什么是ASICFPGA

    Programmable Gate Array,现场可编程门阵列。 FPGA这些年在行业里很火,势头比ASIC还猛,甚至被人称为“万能芯片”。 其实,简单来说,FPGA就是可以重构的芯片。它可以根据
    发表于 01-23 19:08

    FPGA_ASIC高性能数字系统设计

    FPGA/ASIC高性能数字系统设计 状态机与数据路径 1 有限状态机 1.1 基本概念 1.2 状态机分类 1.3 状态机描述方法 1.4 状态机的编码风格 1.5 可综合的fsm编码
    发表于 03-02 09:35

    cogoask讲解fpgaASIC是什么意思

    cogoask讲解fpgaASIC是什么意思FPGA入门知识,什么是FPGAFPGA是英文Field Programmable Gat
    发表于 02-27 17:46

    怎么利用Synphony HLS为ASICFPGA架构生成最优化RTL代码?

    相比,能够为通信和多媒体应用提供高达10倍速的更高的设计和验证能力。Synphony HLS为ASICFPGA的应用、架构和快速原型生成最优化的RTL。Synphony HLS解决方案架构图
    发表于 08-13 08:21

    ASICFPGA有什么区别

      1、概念区别:  ASIC(专用集成电路)是一种在设计时就考虑了设计用途的IC。  FPGA(现场可编程门阵列)也是一种IC。顾名思义,只要有合适的工具和适当的专业基础,工程师就可以对FPGA
    发表于 12-01 17:41

    FPGAASIC,异曲同工还是南辕北辙?

    问题,毕竟ASIC设计中可以自由配置scratchpad的大小。  综上所述,FPGAASIC在面向AI的专用设计中,虽然表面都是写RTL,但是在具体架构和思想上已经有了较大的差异
    发表于 03-28 11:14

    ASIC设计转FPGA时的注意事项

    FPGA原型验证和其他验证方法是不同的,任何一种其他验证方法都是ASIC验证中的一个环节,而FPGA验证却是一个过程。由于FPGAASIC
    发表于 09-10 17:22 996次阅读

    探析FPGAASIC的原理和区别

    FPGA是可编程ASICASIC:专用集成电路,它是面向专门用途的电路,专门为一个用户设计和制造的。
    的头像 发表于 12-15 09:58 5226次阅读

    FPGA对比 ASIC你看好谁?

    FPGA vs. ASIC 你看好谁?
    的头像 发表于 01-15 16:10 4137次阅读

    H.265/HEVC超低延迟编码/解码FPGA/ASIC IP

    H.265/HEVC低延迟编码/解码FPGA/ASIC IP, 整体延迟30ms以内,恒速编码不掉帧
    发表于 02-24 15:01 822次阅读

    FPGAASIC技术对比

    FPGA要取代ASIC了,这是FPGA厂商喊了十多年的口号。可是,FPGA地盘占了不少,ASIC也依旧玩得愉快。那么,这两位仁兄到底有啥不一
    的头像 发表于 03-31 14:41 1222次阅读
    <b class='flag-5'>FPGA</b>、<b class='flag-5'>ASIC</b>技术对比

    什么是FPGA原型验证?如何用FPGAASIC进行原型验证

    FPGA原型设计是一种成熟的技术,用于通过将RTL移植到现场可编程门阵列(FPGA)来验证专门应用的集成电路(ASIC),专用标准产品(ASSP)和片上系统(SoC)的功能和性能。
    发表于 04-10 09:23 1003次阅读

    SRRC证书样式和代码编码规则即将施行

    为优化无线电发射设备型号核准证书样式和代码编码规则,根据《无线电发射设备管理规定》,近日,工业和信息化部修订发布了《无线电发射设备型号核准证书样式》和《无线电发射设备型号核准代码编码
    的头像 发表于 10-14 16:50 388次阅读
    SRRC证书<b class='flag-5'>样式</b>和代码<b class='flag-5'>编码</b>规则即将施行