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

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

3天内不再提示

逻辑综合与物理综合

sally100 来源:数字ICer 作者:数字ICer 2022-11-28 16:02 次阅读

1.逻辑综合

利用工具将RTL代码转化为门级网表的过程称为逻辑综合。综合一个设计的过程,从读取RTL代码开始,通过时序约束关系,映射产生一个门级网表。

0f60afc2-6e07-11ed-8abf-dac502259ad0.png

1 流程介绍

1.用硬件描述语言进行设计

读入的设计,通常是采用硬件描述语言(HDL)编写的,如Verilog和VHDL。

2.指定工艺库

在根据约束条件进行逻辑综合时,对于选择的流片工艺,工艺库将提供综合工具所需要的标准单元的全部信息,即工艺库含有特定工艺下的标准单元的逻辑功能、单元的面积、输入到输出的时序关系、输出的扇出限制和对单元时序检查所需的信息等。

3.读入设计

把HDL描述的设计,即RTL代码输入给综合工具,由综合工具进行编译,综合工具在综合时会首先检查代码的可综合性。

4.定义环境约束条件

定义本设计要综合时的环境,包括设计的工艺参数(温度、制造工艺、电压)、I/O端口属性等。

5.设定设计的约束条件

约束条件将指定综合工具按照什么样的原则来综合电路,该电路所要达到的指标是什么。

2 定义时钟

定义芯片所需的内部时钟信号

通常时钟网络在综合过程中是不做处理的,会在后续的布局布线中插入时钟树,减小其时钟偏斜。

输入/输出延时

为保证片外的触发器可以正确地输入/输出,不仅要保证片内的延时要满足时序要求,而且要保证片内外延时总和要满足时序要求 。

0f78d9ee-6e07-11ed-8abf-dac502259ad0.png0fa227fe-6e07-11ed-8abf-dac502259ad0.png输入/输出延时示意

3 设定设计规则约束

设定设计规则约束包括节点上信号最大跳变时间(Max Transition)、最大扇出(Max Fanout)、最大电容(Max Capacitance)等。合理的设定这些约束条件将有利于控制功耗,保证信号完整性。

这3个约束可以设置在输入端口、输出端口及当前设计上。通常这些约束在工艺库内已经设定,由工艺参数决定大小。如果库内设定的值不够恰当或者过于乐观,可以根据设计需要专门设置。

4 面积约束

面积约束是指定设计的最大面积值,如果设计超过了这一面积就违反了约束。

在将设计实体转换成门级电路时,通常要加面积约束条件。这一设计指标,也是逻辑综合过程中进行优化的依据之一。多数的逻辑综合工具允许设计者按工艺库中门级宏单元所用的单位来指定面积的约束条件。

5 优化设计

优化的主要目的是在满足时序要求的前提下尽量减小芯片面积。与工艺无关的优化缺乏非常准确的时序信息,因而注意力往往集中在优化面积上。等到映射之后时序信息比较准确时再进行修正更有效。

架构优化:如选择DesignWare实现所需功能等。

逻辑优化:重构(优化面积)与展平(优化速度)。

门级优化:映射、延时优化、设计规则修正、面积优化。

SoC设计中常用的综合策略

有两种基本的综合策略可以选择,即自顶向下(Top-down)与自底向上(Bottom-up)。

在自顶向下综合策略里,顶层设计与其子模块同时编译,仅需要施加顶层约束。

自底向上的综合策略是指先单独地对各个子模块进行约束与综合,完成后,赋予它们不再优化(Dont_touch)属性,将它们整合到上一层模块中,进行综合,重复这一过程,直至综合最顶层的模块。

2.物理综合

传统的逻辑综合方法是依赖于连线负载模型(Wire-load Model)的,随着工艺尺寸的不断缩小及芯片复杂性的增加,整个电路的延时信息更多取决于互连线延时。

在物理综合时,就考虑布局布线的问题了。

0fb9d00c-6e07-11ed-8abf-dac502259ad0.png

操作模式

物理综合要求的约束条件通常有芯片尺寸、引脚位置、线上负载信息、版图规划信息等。一般使用以下两种操作模式。

RTL到门级模式:在RTL到门级模式下,物理综合的输入信息是RTL级的设计电路、版图规划信息及含有版图信息的物理综合的库文件。

门级到布局后门级模式 :在这一模式下,与RTL到门级模式的唯一区别是物理综合的输入信息是门级网表,而不是RTL级的设计电路。

相对而言,RTL到门级模式所花费的时间要比门级到门级模式的时间长。

0fd8f5c2-6e07-11ed-8abf-dac502259ad0.png物理综合的流程图

更多请查看 :综合与时序分析

实例:用Design Compiler 进行逻辑综合

0ff3896e-6e07-11ed-8abf-dac502259ad0.png在综合的各个步骤中所经常用到的命令

(1)指定库文件

在综合之前,需要用一个名为“.synopsys_dc.setup”的初始化文件建立综合的环境。在该文件中,通过向相关环境变量赋值,来定义工艺库的位置及综合所需要的参数。

synopsys的安装目录下:对于UNIX系统来说,它通常位于“$SYNOPSYS/admin/setup”目录下。用于卸载synopsys工艺独立库及别的参数,不包含设计相关的数据。

用户根目录下:这里的setup文件包含用户对于自己DC工作环境的参数设置。

启动DC的当前目录:这里的setup文件包含因项目与设计而异的变量设置。

Setup文件的内容

search_path:由目录列表组成。当DC搜索某个未指定路径的文件(如库、设计文件等)时,将由search_path中定义的路径中去搜索该文件。通常将其定义为某个主要的库文件所在的目录路径。

target_library:指定对设计进行综合时采用的工艺库,由厂家提供。该库中的器件被DC用于逻辑映射。本变量指定的库文件名,应该也包含在link_library所列出的内容中,用于供DC读取门级网表。

link_library:该变量指定的库文件中的器件将不会被DC用来进行综合,如RAMROM及I/O。在RTL设计中,将以实例化的方式进行引用。

symbol_library:该变量指定的库文件包含有工艺库中器件的图形化信息,用于生成图形化原理图。

(2)读入设计

100f17d8-6e07-11ed-8abf-dac502259ad0.png

(3)定义工作环境

设置环境条件(set_operating_conditions)

设置线负载模型(set_wire_load_model)

设置驱动强度(set_drive与set_driving_cell)

设置电容负载

设置扇出负载(set_fanout_load)

1038f666-6e07-11ed-8abf-dac502259ad0.png

(4)设置约束条件

设置设计规则约束(set_max_transition、set_max_fanout、set_max_capacitance)

例如:set_max_transition 0.3 current_design
例如:set_max_capacitance 1.5[get_ports out1]
例如:set_max_fanout 3.0[all_outputs]

时钟定义的相关命令

create_clock用来定义一个时钟的周期和波形
set_clock_latency定义时钟网络的延时
set_clock_uncertainty定义时钟偏斜值

1055d90c-6e07-11ed-8abf-dac502259ad0.png

时钟定义
create_generated_clock定义一个内部生成的时钟。可以将内部分频或者倍频产生的时钟定义为初级时钟的函数。

例如:create_generated_clock -name GENCLK -source CLKIN -divide_by 2[get_pins idiv/ div_reg/Q]

对于只含有组合逻辑的模块,为了定义该模块的延时约束,可以创建一个虚拟时钟,再相对于虚拟时钟定义输入/输出延时。

设置输入/输出端口的延时

输入延时定义了信号相对于时钟的到达时间,指一个信号在时钟沿之后多少时间到达。
输出延时则定义输出信号相对于时钟所需要的到达时间,指一个信号在时钟沿之前多少时间输出。

1071db8e-6e07-11ed-8abf-dac502259ad0.png

特别路径的约束

虚假路径(set_false_path)是指由于逻辑功能、数据顺序或操作模式等原因,从来不会激活或者不需要考虑的路径。

10847640-6e07-11ed-8abf-dac502259ad0.png

设置多周期路径

设置多周期路径(set_multicycle_path),指设计中从发送数据到采样到数据的时间允许多于一个时钟周期的路径。虚线标出了多周期路径。

10a1fd3c-6e07-11ed-8abf-dac502259ad0.png

(5)设定综合优化策略

通过使用compile命令调用DC,对设计进行综合与优化。该命令有许多选项可以选择,其中,映射努力(map_effort)即要求工具优化的程度,可以设置为低、中、高。

在初次编译时,如果需要对整个设计的性能和面积等有一个大致的了解,可以将map_effort设置为低。默认的map_effort级别为中,而在最后一次编译中,可以将map_effort设置为高。通常,将map_effort设置为中即可。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物理综合
    +关注

    关注

    0

    文章

    3

    浏览量

    6501
  • RTL
    RTL
    +关注

    关注

    1

    文章

    385

    浏览量

    59692
  • 触发器
    +关注

    关注

    14

    文章

    1995

    浏览量

    61043

原文标题:逻辑综合与物理综合

文章出处:【微信号:数字ICer,微信公众号:数字ICer】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    逻辑综合的流程和命令简析

    综合就是把Verilog、VHDL转换成网表的过程。综合按照是否考虑物理布局信息可分为逻辑综合物理
    的头像 发表于 08-09 09:51 933次阅读
    <b class='flag-5'>逻辑</b><b class='flag-5'>综合</b>的流程和命令简析

    浅谈IC设计中逻辑综合

    浅谈IC设计中逻辑综合引言在IC设计流程中,逻辑综合是后端设计中很重要的一个环节。综合就是指使用综合
    发表于 05-16 20:02

    物理综合与优化的优点有哪些?流程是怎样的?

    物理综合与优化的优点有哪些物理综合与优化流程看了就知道物理综合与优化示例
    发表于 04-08 06:18

    求一套手工逻辑综合的方法和综合步骤?

    手工综合RTL级代码的理论依据和实用方法时序逻辑综合的实现方法
    发表于 04-08 06:06

    请问如何通过物理综合与优化去提升设计性能?

    物理综合与优化的优点是什么?物理综合与优化有哪些流程?物理综合与优化有哪些示例?为什么要通过
    发表于 04-14 06:52

    怎么借助物理综合提高FPGA设计效能?

    怎么借助物理综合提高FPGA设计效能?
    发表于 05-07 06:21

    如何使用DCNXT实现物理综合

    Compiler NXT: RTL Synthesis物理综合培训”,通过理论和实践结合的方式,不仅是对综合技术的概念、流程、时序约束等基础知识的描述,更重点的是对物理
    发表于 06-23 06:59

    DC逻辑综合详解

    DC逻辑综合详解DC软件简介逻辑综合DC命令DC软件简介DC( Design Compiler )为Synopsys公司逻辑合成工具。DC得
    发表于 07-29 08:07

    Tcl与Design Compiler (八)——DC的逻辑综合与优化 精选资料分享

    时序要求。理论部分以逻辑综合为主,不涉及物理库信息。在实战部分,我们将在DC的拓扑模式下进行。(本文主要参考虞希清的《专用集成电路设...
    发表于 07-30 06:18

    什么是逻辑综合

    DC软件怎么样?什么是逻辑综合
    发表于 11-02 06:41

    DC逻辑综合

    芯片综合的过程:芯片的规格说明,芯片设计的划分,预布局,RTL 逻辑单元的综合,各逻辑单元的集成,测试,布局规划,布局布线,最终验证等步骤。设计流程与思想概述:一个设计
    发表于 12-29 16:28 25次下载
    DC<b class='flag-5'>逻辑</b><b class='flag-5'>综合</b>

    ASIC逻辑综合及Synopsys Design Compiler 的使用资料说明

    本文档的主要内容详细介绍的是ASIC逻辑综合及Synopsys Design Compiler 的使用资料说明包括了:1、逻辑综合基本概念 a) Synopsys
    发表于 10-23 08:00 5次下载
    ASIC<b class='flag-5'>逻辑</b><b class='flag-5'>综合</b>及Synopsys  Design Compiler 的使用资料说明

    芯片设计之逻辑综合过程

    逻辑综合操作(Compile design),根据芯片的复杂程度,逻辑综合操作的时间可能是几秒,也可能是半个月。如果设计环境和约束设置不当,逻辑
    的头像 发表于 08-12 15:10 3812次阅读

    Vivado综合阶段什么约束生效?

    Vivado综合默认是timing driven模式,除了IO管脚等物理约束,建议添加必要的时序约束,有利于综合逻辑的优化,同时综合后的de
    的头像 发表于 07-03 09:03 674次阅读

    什么是逻辑综合逻辑综合的流程有哪些?

    逻辑综合是将RTL描述的电路转换成门级描述的电路,将HDL语言描述的电路转换为性能、面积和时序等因素约束下的门级电路网表。
    的头像 发表于 09-15 15:22 4839次阅读
    什么是<b class='flag-5'>逻辑</b><b class='flag-5'>综合</b>?<b class='flag-5'>逻辑</b><b class='flag-5'>综合</b>的流程有哪些?