逻辑综合系列主要说明以下问题:

  • 为什么要逻辑综合
  • 逻辑综合的基本原理
  • 逻辑综合需要提供哪些文件
  • 逻辑综合过程中施加约束
  • 逻辑综合能产生那些结果

综合是前端设计的重要步骤之一,其过程是将行为描述的电路、RTL级的电路转换到门级,其目的在于:决定电路门级结构,寻求时序与面积的平衡,寻求功耗与时序的平衡,增强电路的测试性。常见的工具是synoosys公司的 Design Compiler,将HDL语言描述的电路转换到基于工艺库的门级网表。

逻辑综合的步骤为:转译(Translation)、优化(Optimize)、映射(Mapping)

DC在综合过程中会将电路划分为以下的处理对象:

  

  1. Design:整个需要综合的电路,即我们待综合的对象
  2. Port:最外部的端口,一般是电路与外部交互的IO口
  3. Clock:由于时钟上的任何问题都会对电路造成重要的影响,所以时钟需要单独处理
  4. Cell:被例化的模块
  5. Reference:例化模块的原电路
  6. Pin:Cell自身的引脚,注意与Port的区别
  7. Net:内部连线

用Design Compiler做综合的流程如下:

其实施流程为:

  1. 预综合过程(pre-synthesis process)
  2. 施加设计约束(contrainting design)
  3. 设计综合(synthesizing design)
  4. 后综合过程(post-synthesis process)

  ①准备设计文件,DC 的设计输入文件一般为 HDL 文件。

  ②指定库文件,需要指定的库文件包括:

链接库(link library) 、目标库(target library) 、符号库(symbol library)、综合库(synthetic library)

  下面是库的解释,具体的解释在后面有说,这里先进行简单地概述一下:

 Link library & target library

    Link  library 和 target  library 统称为 technology  library(即工艺库,习惯称之为综合库),technology  library  由半导体制造商提供,包含相关 cell 的信息及设计约束标准,其中:

  Target library:    在门级优化及映射的时候提供生成网表的 cell,即DC 用于创建实际电路的库。

   Link library:      提供设计网表中的 cell,可以跟target_library使用同一个库,但是 DC 不用 link library中的 cell 来综合设计。

  当 DC 读入设计时,它自动读入由 link library 变量指定的库。当连接设计时,DC 先搜寻其内存中已经有的库,然后在搜寻由 link  library 指定的库。

  注:当读入的文件是门级网表时,需要把 link library 指向生成该门级网表的库文件,否则 DC 因不知道网表中门单元电路的功能而报错。 关于工艺库里面的具体内容,后面会专门进行说明。

  Symbol library

  Symbol library 提供 Design Vision GUI 中设计实现的图形符号,如果你使用脚本模式而不使用 GUI,此库可不指定 Symbol library

Synthetic library

  即为 Designware library ,名字上翻译是综合库,但却常称之为IP库,而不是直译。特殊的 Designware library 是需要授权的(比如使用多级流水线的乘法器),默认的标准 Designware 由 DC 软件商提供,无需指定。

  Create_mw_lib :主要使用DC的物理综合的时候,需要生成物理库

  ③读入设计 :

设计的读入过程是将设计文件载入内存,并将其转换为 DC 的中间格式,即GTECH 格式,GTECH 格式由“soft macros”  如  adders, comparators 等组成,这些组件来自 synopsys  的 synthetic lib,每种组件具有多种结构。

读入设计有两种实现方法实现方法:read  和  analyze & elaborate(实际上

read 是 analyze  与  elaborate 的打包操作  ),下面介绍二者在使用中的区别:

从中可以看到,analyze & elaborate  可以自由指定设计库,并生成 GTECH中间文件前生成.syn 文件存储于 work 目录下,便于下次 elaborate 节省时间,我们一般选择  analyze & elaborate 的方法读入设计。

  ④定义设计环境:

定义对象包括工艺参数(温度、电压等),I/O 端口属性(负载、驱动、扇出),统计 wire-load 模型,设计环境将影响设计综合及优化结果。

  ⑤设置设计约束:

设计约束包括设计规则约束和优化约束,设计规则约束(design  rule constraint)由工艺库决定,在设计编译过程中必须满足,用于使电路能按功能要求正常工作。设计优化约束定义了 DC 要达到的时序和面积优化目标,该约束由用户指定,DC 在不违反设计规则约束的前提下,遵循此约束综合设计。

  ⑥选择编译策略:

对于层次化设计,DC 中有两种编译策略供选择,分别为 top down 和 bottom up。在 top down 策略中,顶层设计和子设计在一起编译,所有的环境和约束设置针对顶层设计,虽然此种策略自动考虑到相关的内部设计,但是此种策略不适合与大型设计,因为 top down 编译策略中,所以设计必须同时驻内存,硬件资源耗费大。在 bottom up 策略中,子设计单独约束,当子设计成功编译后,被设置为 dont_touch 属性,防止在之后的编译过程中被修改,所有同层子设计编译完成后,再编译之上的父设计,直至顶层设计编译完成。Bottom  up 策略允许大规模设计,因为该策略不需要所有设计同时驻入内存。

  ⑦编译:

用 Compile 命令执行综合与优化过程,还可以利用一些选项指导编译和优化过程。

  ⑧分析及解决设计中存在的问题

DC  可以产生一些报告以反应设计的综合和优化结果,如:时序、面积、约束等报告,这些报告有助于分析和解决设计中存在的问题以改善综合结果,我们还可以利用 check_design 命令检验综合的设计的一致性。

  ⑨存储设计数据

DC 不会自动存储综合后的设计结果,因而需要在离开 DC 时手动存储设计数据。比如存储网表、延时信息等数据文件。

逻辑综合——概述与基本概念相关推荐

  1. Elasticsearch概述、ES概念、什么是搜索、全文检索、Elasticsearch功能,什么是distributed document store(来自网络+学习资料)

    1.Elasticsearch概述 Elasticsearch是一个分布式.高性能.高可用.可伸缩的搜索和分析系统. 以下是来自百度的介绍: ElasticSearch是一个基于Lucene的搜索服务 ...

  2. 机器学习(0):机器学习概述及基本概念

    最近自己会把自己个人博客中的文章陆陆续续的复制到CSDN上来,欢迎大家关注我的个人博客 zuzhiang.cn,以及我的github. 一.序言 机器学习(machine learning)是当前计算 ...

  3. SR技术概述与基本概念(SR-BESR-TE)

    目录 一.SR背景 二.SR概述: SR具有如下特点: SR优势: 三.一些名词的基本概念 基本概念:Segment 基本概念:Segment ID--简称SID,用于标识segment 一般就是MP ...

  4. 物联网LoRa系列-13:无线电磁波概述以及核心概念的澄清(速度、频率、周期、波长、幅度、功率、相位、干涉)

    目录: 1. 电磁波概述 2. 电磁波应用 3. 电磁波参数:速度.频率.周期.波长.幅度.功率.相位 4. 电磁波的特性:干涉.衍射.衰减 一. 电磁场与无线电磁波概述 在电磁学里,电磁场(elec ...

  5. 申宝概述光刻胶等概念表现抢眼

    A股两市小幅低开,盘初指数快速上攻,沪指重返3500点,创业板指涨超1%再度站上3400点,随后市场冲高回落后震荡整理. 截止午间收盘,沪指涨0.59%,报3513.15点,深成指涨0.86%,报14 ...

  6. Unity多人游戏和网络功能(一) 概述和基本概念

    总述 本文翻译自Unity 5.2的官方文档.如对翻译有任何建议,欢迎留言. Unity从5.1开始改进了网络系统功能,提供了一个比之前版本更灵活更强大的网络系统.它提供了一个NetworkTrans ...

  7. Hystrix 熔断器01—— 概述 || Hystrix 重要概念

  8. 十四、Hadoop学习笔记————Zookeeper概述与基本概念

    顺序一致性:严格按照顺序在zookeeper上执行 原子性:所有事物请求的结果,在整个集群的应用情况一致 单一视图:无论从哪个服务器进入集群,看到的东西都是一致的 可靠性:服务端成功响应后,状态会 一 ...

  9. SATA、AHCI、ATA等相关知识概述(基本概念)

    SATA SATA(Serial Advanced Technology Attachment,串行高级技术附件)是一种基于行业标准的串行硬件驱动器接口,是由Intel.IBM.Dell.APT.Ma ...

最新文章

  1. 毕业,新的开始,撸起袖子加油干!
  2. aka名字_她叫李清照,没有AKA,这是她的专访//关于“天赋”二字,她说……
  3. 【 Vivado 】在工程模式下通过jou文件来学习 Tcl 命令
  4. Storm通信机制,Worker进程间通信,Worker进程间通信分析,Worker进程间技术(Netty、ZeroMQ),Worker 内部通信技术(Disruptor)(来自学习资料)
  5. 牛客网 【每日一题】4月23日题目精讲 边的染色
  6. linux 硬盘繁忙,icinga2 借助check_iostat.sh抓取linux服务器的diskIO(硬盘繁忙度)
  7. java static final关键字_Java的static与final关键字
  8. Python稳基修炼的经典案例15(计算机二级、初学者必会字符格式处理)
  9. 【福利派送】高质量AI书籍免费送给大家
  10. Anaconda Python安装,Spyder汉化及调试
  11. HDU1426(DFS)
  12. ORACLE_mldn_002
  13. 【SNMP】snmp trap 介绍、安装、命令|Trap的发送与接收代码实现
  14. 高性能服务器电源接口,服务器电源规范解析
  15. 【原创】JQWidgets-TreeGrid 2、初探源码
  16. 主机计算机怎么打开共享,steam怎么开家庭共享方式
  17. Unity实现在白板上绘画涂鸦
  18. 六边形俄罗斯方块游戏创意
  19. 戴尔DELLR740服务器修改bios启动项,安装redhat7.4
  20. python绘制花朵图案_Python编写万花尺图案实例

热门文章

  1. 2600: [Ioi2011]ricehubh
  2. 路由控制器Express的路由控制方法
  3. 事件冒泡 bubbles cancelBubble stopPropagation() stopImmediatePropagation() 区别
  4. 第四单元博客总结——暨OO课程总结
  5. java-number
  6. 4源代码的下载和编译
  7. 菜鸟做HTML5小游戏 - 刮刮乐
  8. Windows Shell 编程 第六章 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7987951】...
  9. 列表异步线程加载图片
  10. As3.0与java数据类型的比较总结