逻辑综合——概述与基本概念
逻辑综合系列主要说明以下问题:
- 为什么要逻辑综合
- 逻辑综合的基本原理
- 逻辑综合需要提供哪些文件
- 逻辑综合过程中施加约束
- 逻辑综合能产生那些结果
综合是前端设计的重要步骤之一,其过程是将行为描述的电路、RTL级的电路转换到门级,其目的在于:决定电路门级结构,寻求时序与面积的平衡,寻求功耗与时序的平衡,增强电路的测试性。常见的工具是synoosys公司的 Design Compiler,将HDL语言描述的电路转换到基于工艺库的门级网表。
逻辑综合的步骤为:转译(Translation)、优化(Optimize)、映射(Mapping)。
DC在综合过程中会将电路划分为以下的处理对象:
- Design:整个需要综合的电路,即我们待综合的对象
- Port:最外部的端口,一般是电路与外部交互的IO口
- Clock:由于时钟上的任何问题都会对电路造成重要的影响,所以时钟需要单独处理
- Cell:被例化的模块
- Reference:例化模块的原电路
- Pin:Cell自身的引脚,注意与Port的区别
- Net:内部连线
用Design Compiler做综合的流程如下:
其实施流程为:
- 预综合过程(pre-synthesis process)
- 施加设计约束(contrainting design)
- 设计综合(synthesizing design)
- 后综合过程(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 时手动存储设计数据。比如存储网表、延时信息等数据文件。
逻辑综合——概述与基本概念相关推荐
- Elasticsearch概述、ES概念、什么是搜索、全文检索、Elasticsearch功能,什么是distributed document store(来自网络+学习资料)
1.Elasticsearch概述 Elasticsearch是一个分布式.高性能.高可用.可伸缩的搜索和分析系统. 以下是来自百度的介绍: ElasticSearch是一个基于Lucene的搜索服务 ...
- 机器学习(0):机器学习概述及基本概念
最近自己会把自己个人博客中的文章陆陆续续的复制到CSDN上来,欢迎大家关注我的个人博客 zuzhiang.cn,以及我的github. 一.序言 机器学习(machine learning)是当前计算 ...
- SR技术概述与基本概念(SR-BESR-TE)
目录 一.SR背景 二.SR概述: SR具有如下特点: SR优势: 三.一些名词的基本概念 基本概念:Segment 基本概念:Segment ID--简称SID,用于标识segment 一般就是MP ...
- 物联网LoRa系列-13:无线电磁波概述以及核心概念的澄清(速度、频率、周期、波长、幅度、功率、相位、干涉)
目录: 1. 电磁波概述 2. 电磁波应用 3. 电磁波参数:速度.频率.周期.波长.幅度.功率.相位 4. 电磁波的特性:干涉.衍射.衰减 一. 电磁场与无线电磁波概述 在电磁学里,电磁场(elec ...
- 申宝概述光刻胶等概念表现抢眼
A股两市小幅低开,盘初指数快速上攻,沪指重返3500点,创业板指涨超1%再度站上3400点,随后市场冲高回落后震荡整理. 截止午间收盘,沪指涨0.59%,报3513.15点,深成指涨0.86%,报14 ...
- Unity多人游戏和网络功能(一) 概述和基本概念
总述 本文翻译自Unity 5.2的官方文档.如对翻译有任何建议,欢迎留言. Unity从5.1开始改进了网络系统功能,提供了一个比之前版本更灵活更强大的网络系统.它提供了一个NetworkTrans ...
- Hystrix 熔断器01—— 概述 || Hystrix 重要概念
- 十四、Hadoop学习笔记————Zookeeper概述与基本概念
顺序一致性:严格按照顺序在zookeeper上执行 原子性:所有事物请求的结果,在整个集群的应用情况一致 单一视图:无论从哪个服务器进入集群,看到的东西都是一致的 可靠性:服务端成功响应后,状态会 一 ...
- SATA、AHCI、ATA等相关知识概述(基本概念)
SATA SATA(Serial Advanced Technology Attachment,串行高级技术附件)是一种基于行业标准的串行硬件驱动器接口,是由Intel.IBM.Dell.APT.Ma ...
最新文章
- 毕业,新的开始,撸起袖子加油干!
- aka名字_她叫李清照,没有AKA,这是她的专访//关于“天赋”二字,她说……
- 【 Vivado 】在工程模式下通过jou文件来学习 Tcl 命令
- Storm通信机制,Worker进程间通信,Worker进程间通信分析,Worker进程间技术(Netty、ZeroMQ),Worker 内部通信技术(Disruptor)(来自学习资料)
- 牛客网 【每日一题】4月23日题目精讲 边的染色
- linux 硬盘繁忙,icinga2 借助check_iostat.sh抓取linux服务器的diskIO(硬盘繁忙度)
- java static final关键字_Java的static与final关键字
- Python稳基修炼的经典案例15(计算机二级、初学者必会字符格式处理)
- 【福利派送】高质量AI书籍免费送给大家
- Anaconda Python安装,Spyder汉化及调试
- HDU1426(DFS)
- ORACLE_mldn_002
- 【SNMP】snmp trap 介绍、安装、命令|Trap的发送与接收代码实现
- 高性能服务器电源接口,服务器电源规范解析
- 【原创】JQWidgets-TreeGrid 2、初探源码
- 主机计算机怎么打开共享,steam怎么开家庭共享方式
- Unity实现在白板上绘画涂鸦
- 六边形俄罗斯方块游戏创意
- 戴尔DELLR740服务器修改bios启动项,安装redhat7.4
- python绘制花朵图案_Python编写万花尺图案实例
热门文章
- 2600: [Ioi2011]ricehubh
- 路由控制器Express的路由控制方法
- 事件冒泡 bubbles cancelBubble stopPropagation() stopImmediatePropagation() 区别
- 第四单元博客总结——暨OO课程总结
- java-number
- 4源代码的下载和编译
- 菜鸟做HTML5小游戏 - 刮刮乐
- Windows Shell 编程 第六章 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7987951】...
- 列表异步线程加载图片
- As3.0与java数据类型的比较总结