Linux环境下EDA软件的使用——数字IC设计DC综合篇
Linux环境下EDA软件的使用——数字IC设计DC综合篇
目前,绝大部分集成电路设计所用到EDA软件都是Linux版本,对于芯片工程师,熟悉一款EDA软件是入门的必修课,当然要真正的掌握会是十分漫长的过程。在公司中通常会使用Linux服务器进行开发,作为学生党在VMware中安装Linux学习即可。我选用的是synopsys的DC综合工具,S家的软件对CentOS的兼容性更好,网络上也能找到很多EDA工具包和安装好的EDA虚拟机,关于虚拟机的安装在这里就不再赘述。
一、综合的基本概念
1.1综合概述
通常我们所说的综合指的是逻辑综合。逻辑综合就是使用综合工具将较高层次的RTL级描述转换为基于目标工艺库和特定约束条件的门级网表的过程。
1.2综合的流程
综合包括转转译(Translation)、映射(Mapping)、优化(Optimization)三个过程。
转译是指把电路的HDL描述转化为与工艺无关的功能模块的逻辑电路的过程。这个过程不包括任何重组和优化,也与制造工艺没有直接联系。
映射是把转译后得到的电路结构用特定的目标工艺库中的单元实现。这时得到的电路包含了具体的制造工艺参数。
优化则是综合工具根据设计者施加的时序和面积等约束条件对电路进行改进的过程。综合工具根据设定的参数,采用一定的算法来使设计尽量满足设计要求。
1.3DC的主要功能
(1)使用用户指定的门阵列或者标准单元库产生速度快、面积小的ASIC设计
(2)把设计从一种工艺转换为另一种工艺
(3)在不同的负载、温度和电压条件下对时序、面积和功耗等设计指标作折中处理
(4)综合的优化有限状态机(FSM)
(5)支持网表输入,支持用来与第三方工具交互的网表或原理图输出
(6)自动创建和划分层次原理图
二、文件准备
设计文件:RTL代码文件
工艺库文件:将RTL级的HDL映射到门级时所需要的标准单元综合库。DC用到的工艺库是.db或者是.lib格式的,其中.lib是可读的,通过此文件可以了解库的详细信息,比如工作电压,操作温度,工艺偏差等等。.db格式的库是二进制的,不可读。
脚本文件: DC综合一般采用运行脚本的方式,把每一步操作对应的命令写在一个文件中,通过source这个文件就可以批量执行其中的命令。
Setup文件: 文件名为.synopsys_dc.setup,文件中一般包含初始化参数变量,设计工艺库名称、路径等等。
三、目录组织结构
四、DC中常用命令
Find the location and/or names of files
dc_shell-xg-t> pwd; cd; lsShow the history of commands entered
dc_shell-xg-t> historyRepeat last command
dc_shell-xg-t> !!Execute command no.7 from the history list
dc_shell-xg-t> !7Execute the last report command
dc_shell-xg-t> !repExecute any Linux command
dc_shell-xg-t> sh <Linux_command>
五、操作步骤
Step1:启动DC
首先打开一个Terminal,输入命令
source cshrc_eda
然后按照前面的目录结构建立文件夹,把所需要的文件放入相应的文件夹,进入工作目录run,
启动DC图形界面在Terminal中输入命令:
design_vision&
启动DC命令行界面输入命令:
dc_shell
业界大佬都青睐命令行界面,并且把所用的命令写成综合脚本。
Step2:执行setup文件
在DC窗口下方的design_vision>中可以输入命令,在此输入
source ./.synopsys_dc.setup 回车
./代表当前目录
Step3:执行脚本文件
依次输入:
source ../script/pbist.def
回车
source ../script/pbist.read
回车
source ../script/pbist.run
回车
综合结束,在report和export文件夹中已经有了所需要的输出文件
Step4:查看综合后的电路图
六、Setup文件详解
setup文件通常有三个.synopsys_dc.setup、common_setup.tcl以及dc_setup.tcl,他们分别在安装目录、用户目录和工程目录下。
搜索路径(search_path)
这个变量给出的是DC环境下读入的文件(包括库文件和设计文佳)的搜索路径。当读入没有给出路径的文件时,DC默认按照search_path给出的路径搜索该文件
目标工艺库(target_library)
目标工艺库是指将RTL级的HDL描述到门级时所需要的标准单元库,它是芯片制造商(Foundary)提供的,包括物理信息的单元模型,例如与、或、非等基本逻辑单元,锁存器、触发器等时序逻辑单元。
链接库(link_library)
链接库可以是和target_library一样的单元库,也可以是综合到门级的底层模块设计,它可以在由上而下的综合过程中,上层设计调用底层已综合模块是,从link_library中寻找并链接起来。
符号库(symbol_library)
DC创建电路图时,用来标识器件单元的库。
七、脚本文件讲解
7.1 pbist.def
set SRC “../src”
set REPORT “../report”
set EXPORT "../export"
define_name_rules BORG -restricted "A-Z" -replacement_char "a-z"
7.2 pbist.read
ananlyze -format verilog $SRC/address_gen.v
elaborate address_genananlyze -format verilog $SRC/control_gen.v
elaborate control_genananlyze -format verilog $SRC/date_gen.v
elaborate date_genananlyze -format verilog $SRC/diag_monitor.v
elaborate diag_monitorananlyze -format verilog $SRC/instruction_mem.v
elaborate instruction_mem....
analyze语句读入设计文件,-format选项的值可以是verilog或者vhdl,elabrate语句建立一个design,design的名字为设计文件中module的名字。
7.3 pbist.run
Linux环境下EDA软件的使用——数字IC设计DC综合篇相关推荐
- Linux环境下安装软件合集【1】
Linux环境下安装软件合集[1] 1 Linux环境下安装Node.js 1.1 通过wget直接安装 (1)wget不是安装方式 他是一种下载软件类似与迅雷 如果要下载一个软件 我们可以直接 wg ...
- Linux环境下ANTs软件安装(基于源码)
Linux环境下ANTs软件安装(基于源码) 1.下载Cmake 在命令行里运行: 2.下载ITK 在命令行里运行: 3.ANTs安装 (1)在命令行里运行: (2)编译完之后如果在 antsbin ...
- 第十八篇 Linux环境下常用软件安装和使用指南
提醒:如果之后要安装virtualenvwrapper的话,可以直接跳到安装virtualenvwrapper的方法,而不需要先安装好virtualenv 安装virtualenv和生成虚拟环境 安装 ...
- linux环境下GXL软件的安装
Linux –GXL2015安装 Author Dave Time: 2015-10-29 准备工作:在进行安装之前,我们首先要确定安装包内的东西,一般PCI或者天目公司会如下提供相关内容 local ...
- LInux环境下ANTs软件安装
ANTs软件安装 写在最前面的,我使用的是Ubuntu18.04进行环境的安装与配置,安装ANTs前需要检查是否已经安装CMake以及ITK,如果已经安装了,请直接跳过前两个部分.本教程参考了医学配准 ...
- linux环境下安装软件 快速,不超时
sudo pip3 install --default-timeout=100 torch torchvision -i https://pypi.douban.com/simple
- 数字IC设计的第一步——Synopsys EDA Tools的安装
目录 简述 安装环境和文件 1. 环境 2. 文件 安装包链接 1. 环境 2. 文件 安装前踩坑 安装步骤 1. 安装前的准备工作 2. 用Synopsys Installer安装 3. 在wind ...
- 数字IC设计(ASIC设计)完整流程详解
目录 I.ASIC设计流程 一.确定项目需求 二.前端流程 三.后端流程 II.IC设计流程相关名词梳理(含各流程EDA工具梳理) III.IC设计流程整理(图片) I.ASIC设计流程 一.确定项目 ...
- 数字IC设计流程梳理
目录 I.ASIC设计流程 一.确定项目需求 二.前端流程 三.后端流程 II.IC设计流程相关名词梳理(含各流程EDA工具梳理) III.IC设计流程整理(图片): I.ASIC设计流程 一.确定项 ...
最新文章
- Optional 中的 map 和 flatMap
- Spark基础-scala学习(三、Trait)
- Intel3945ABG无线上网问题总结
- python交互模式什么意思_Python中的交互模式是什么
- XX(北京)科技股份公司为啥需要购置服务器?
- BootStrap的入门和响应式的使用
- python3.5 pip安装_用python3.5 pip安装Numpy
- 【推荐实践】Flink 状态(State)管理在推荐场景中的应用
- citrixreceiver云桌面系统_CStack xView桌面云平台与方德操作系统完成兼容性认证
- [LeetCode] 204. Count Primes
- java web相对路径_java(Web)中相对路径,绝对路径问题总结
- java生成电子发票_Java电子发票管理系统
- python辛普森积分_辛普森在Python中的规则
- VUE基础API总结
- Docker安装PHP-FPM5.6 (自带redis扩展,Mysql扩展,GD库扩展(支持JEPG))
- 数字IC前端面试常见问题整理
- pycharm中导入pyQt无法使用
- 【嵌入式算法】空间向量夹角公式及其应用
- python 递归函数 古典问题兔子
- JAVA安全基础知识