数字IC设计流程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
13
版图生成,自动布局布线 (PR)
PR工具: Synopsys:IC Compiler(ICC)
时钟树插入 Format verification
Physical design engineer
仿真验证工具: Synopsys:Hercules
Mentor:calibre Candence: Diva/dracula
Engineer
I C 设 计 流 程 IC DESIGN FLOW
12
ASIC design engineer
Logic synthesis
gate Level
逻辑综合的结果就是把设计实现的
verification HDL代码翻译成门级网表(netlist)
仿真验证工具:
Synopsys:Design compiler Candence:RC
编程 方式
FPGA
FPGA 大部分是基于SRAM编程, 其优点是可进行任意次数的编程,并可在 工作中快速编程,实现板级和系统级的动 态配置,因此可称为可重配置硬件。
其缺点是编程信息需存放在外部存 储器上,每次上电时,需从器件的外部存储 器或计算机中将编程数据写入SRAM中, 使用方法复杂,且编程数据信息在系统断 电时丢失。
IP Level verification
IP Level Verification
Engineer
Integrate engineer
Unit/chip Level RTL simulation
Unit/chip Level RTL Verification
Full chip Verification
4
基于查找表的的FPGA内部结构
2 功能比较
FEATURE COMPARISON
5
CPLD
CPLD 的一个宏单元可以分解十几 个甚至 20~ 30 个组合逻辑输入。
因此一般认为 CPLD 是“逻辑丰富” 型的,更适合完成各种算法和组合逻辑。 或者说是触发器有限而乘积项丰富的结 构, 。
适合 结构
FPGA
DRC(design rule check)/LVS 版图一致性检查
post_layout STA
版图后的时序验证
生成最终GDS Ⅱ
Tap-out 流片
14
3
ASIC设计和FPGA设计的相同点和不同点
FPGA和ASIC设计
研发周期
FPGA芯片设计流程的主要工作是电路设 计和前后仿真验证,而综合和布局布线等工 作主要依靠计算机完成且占用时间很少,设计 完成 后可直接进行数据下载及硬件调试工作;
采用FPGA进行电路设计实现,仅需要投 入低成本的设计费用,不需要具有相关的 ASIC设计基础,没有必要的生产环节,可以 节省时间和提高设计速度。
16
ASIC和FPGA两者的成本/ 产量比示意图
FPGA和ASIC设计
17
市场定位
针对不同产品的市场需求,采用FPGA技术灵活应用于小批量、功能灵活多样、产品更新快、周 期短的电子产品或系统设计中,可以明显提高产品的设计速度,降低成本,能够不断推出新产品, 不断提高产品的功能和质量;
对设计进行详细说明 Design specification Design engineer
使用VHDL/Verilog/system Verilog进行编码实现
RTL coding simulation
RTL design engineer /design engineer
I C 设 计 流 程 IC DESIGN FLOW
当用户通过原理图或HDL语言描述了一个逻辑电路以后,开 发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写 入查找表中,这样,每输入一个信号进行逻辑运算就等于输入一 个地址进行查表,找出地址对应的内容,然后输出即可。
FPGA 的逻辑阵列块的也是阵列排列,但是逻辑阵列块之 间是采用分布式互连方式,其基本单元 LE 的寻址进行的是一种 逻辑门运算。
STA timing满足,
得到最终的netlist
Static Timing Analysis(STHale Waihona Puke Baidu)
静态时序分析,主要是在时序上对电路进行
验证,检查电路是否存在建立时间(setup time)
DFT(design for test)
和保持时间(hold time)的违例(violation)
I C 设 计 流 程 IC DESIGN FLOW
CMOS集成电路设计汇报
CONTENTS
1
1 FPGA和CPLD的区别 2 IC设计从前端到后端的流程及EDA工具 3 FPGA设计和ASIC设计的相同点和不同点
2
1
FPGA和CPLD的区别
1 结 构 比 较 STRUCTURE COMPARISON
基于乘积项的CPLD结构
CPLD (复杂可编程器件)结构可分为4块: ① 宏单元实现基本的逻辑功能。 ② 可编程连线负责信号传递,连接所有的宏单元。 ③ I/O 控制块负责输入输出的电气特性控制。 ④ 全局控制线用于全局时钟、清零和输出使能控制, 其中使能
ASIC芯片设计流程则先进行电路设计和 功能仿真,然后进行布局布线,产生延时文件 进行相应的后仿真和时序分析操作。
15
百万门级电路FPGA和ASIC设计流程图
FPGA和ASIC设计
研发投入
采用ASIC进行电路设计实现,需要熟悉 ASIC设计流程,掌握ASIC 设计工具和具有设 计经验,并与生产厂家进行充分沟通。此外, 软硬件和设计工具以及生产费等需要很高的投 入费用。
11
SOC是由很多IP组成的, 每个IP有相应的工程师设计
IP Level RTL coding
仿真验证工具: Synopsys:VCS Mentor:Modelsim Candence:Verilog-XL Candence:NC-Verilog
IP Level RTL simulation
使用C/C++/system C/system Verilog/UVM进行功能验证
目前FPGA 的LUT多是4 输入的, 但 FPGA 的制造工艺确定了 FPGA 芯片中 包含的 LUT 和触发器的数量非常多,集 成度更高。
因此FPGA 是“时序丰富”型的, 更适合于完成时序逻辑。例如设计一个 复杂的时序逻辑,就使用FPGA。
2 功能比较
FEATURE COMPARISON
6
CPLD
采用ASIC技术适当应用于大批量、产品比较成熟、市场前景广阔、生命周期长的电子产品或系 统设计中,可以明显提高系统的设计集成度,大大降低系统的成本、体积和重量,提高系统的可靠 性和市场竞争力。
18
谢谢
8
2
IC设计从前端到后端的流程及EDA工具
CONTENTS
9
1 确定项目需求:制定芯片的具体指标 2 系统级设计:用系统建模语言对各个模块进行描述 3 前端设计:RTL设计、RTL仿真、硬件原型验证、电路综合 4 后端设计:版图设计、物理验证、后仿真
I C 设 计 流 程 IC DESIGN FLOW
右侧是一个可编程D触发器。如果不需要触发器,也可以把此触发器 旁路,信号直接输给 PIA 或输出到 I/O 脚。
CPLD又是 N 个宏单元的阵列集合,且其逻辑块互连具有集总式特点。
3
基于乘积项的CPLD内部结构 宏单元结构
1 结 构 比 较 STRUCTURE COMPARISON
基于查找表的FPGA结构
CPLD 结构可分为 4块: ①逻辑阵列块 ②输入输出块 ③可编程行 /列连线
查找表: 一个逻辑阵列快包括8个逻辑单元(LE),每个LE包括一个查
找表。查找表简称为 LUT(Look Up Table),LUT 本质上就 是一 个 RAM 。目前 FPGA 中多使用 4 输入的 LUT ,所以 每一个 LUT 可以看成一个有 4 位地址线的 16 ×1 的 RAM 。
从功能上对综合后的网表进行验 证。常用的是等价性检查的方法,以
形式验证
仿真验证工具: Synopsys:Formality
功能验证后的HDL设计为参考,对比 综合后的网表功能是否在功能上存在 等价性。这样做是为了保证在逻辑综
仿真验证工具: Synopsys:Prime Time(PT)
合的过程中没有改变之前HDL描述的 电路功能。
线有专用连线与每个宏单元相连, 信号到每个宏单元的延时相同并 且延时最短。
宏单元内部结构:
左侧输入是一个与阵列,每一个交叉点都是一个可编程熔丝,如果导 通就是实现“与”逻辑。中间的乘积项选择矩阵是一个“或”阵列。任 意一个组合逻辑都可以用“与 或”表达式来描述,所以, PLD 能以乘积和 的形式完成大量的组合逻辑功能。
10
Marketing request
对整个架构进行说明并对 每个功能模块进行细分说明
Architecture specification
Architecture engineer
用C/C++/System C/MATLAB 语言验证结构的可行性
Arch/algorithm emulation Algorithm engineer
2 功能比较
FEATURE COMPARISON
7
CPLD
CPLD 主要是基于 FLASH 存储器 编程,编程次数达 1 万次,其优点是在系 统断电后,编程信息不丢失,且无需外部存 储器芯片, 使用简单。 。CPLD 又可分为在编程器上编程和在 系统编程(ISP)两种。ISP 器件的优点是 不需要编程器,可先将器件装焊于印制板, 再经过编程电缆进行编程,其编程、调试 和 维护都很方便。
一般,CPLD优于FPGA。是因为 CPLD 是逻辑块级编程,且其逻辑块互连 是集总式的,CPLD是通过修改具有固定 内连电路的逻辑功能来编程;。
同时,由于 CPLD 有专用连线与每个 宏单元相连,信号到每个宏单元的延时相 同,CPLD具有时间可预测性,
运行 速度
FPGA
FPGA 是门级编程,且逻辑阵列块之 间是采用分布式互连, 主要通过改变内部 连线的布线来编程。因此运行速度较慢。