第十章集成电路设计技术与工具_第1页
第十章集成电路设计技术与工具_第2页
第十章集成电路设计技术与工具_第3页
第十章集成电路设计技术与工具_第4页
第十章集成电路设计技术与工具_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第十章 集成电路系统设计简介内容提要 10.1 引言 10.2 数字系统硬件描述语言 10.3 数字系统的CPLD/FPGA硬件验证 10.4 VLSI数字系统逻辑综合与物理实现 10.5 混合信号系统硬件描述语言 10.6 本章小结10.1 引言 数字系统实现模拟信号处理结构示意图 若该系统采用单片集成电路的方法实现,称之为系统芯片(SOC:System On Chip),上述SOC也可通过单封装系统的方法来实现,部分模块直接使用市场上成熟可靠的裸片,有特定应用要求的部分设计专用集成电路来实现,最后使用封装的方法将各种裸片封装到同一个封装体内,实现SIP10.2 数字系统硬件描述语言 数字系

2、统设计电路图硬件描述语言(HDL: Hardware Description Language) (1)Verilog HDL (2)VHDL语言10.2.1 基于Verilog HDL语言的 数字系统设计流程 数字系统在设计一开始要仔细分析总体设计任务,所以是自顶向下的设计流程。不同的设计公司其设计流程不尽相同,同一公司的设计流程根据不同的应用要求和实现工艺也会作相应的调整,但一些基本的步骤都是必须的。 下图为基于HDL语言的数字集成电路设计参考流程 基于HDL语言的数字集成电路设计参考流程 10.2.2 Verilog概述l Verilog易学易用,功能强大,使用 广泛l 可以在不同层次描

3、述数字系统开关级描述寄存器传输级描述门级描述l 基本设计单元是“模块”(block)包括:接口描述逻辑功能描述10.2.1 Verilog语言要素 Verilog语言要素包括8个方面的内容 1)标识符(identifier)用来表示各种变量、参数或构件的名称,可以是任意一组字母、数字、$符号和_(下划线)符号的组合,但第一个字符必须是字母或下划线,区分大小写 转义标识符不要与关键字冲突基本语言要素 2)注释 / 单行注释/* */ 多行注释 3)源程序书写格式自由 区分大小写常用任务和函数 4)显示任务(以$开头)$display,$write,$strobe,$monitor,$monito

4、ron,$monitoroff 模拟控制任务$finish, $stop 模拟时间函数 $time,$stime,$realtime 常用任务和函数 概率分布函数 $ramdom(seed) 其它 $setup, $hold, $setuphold, $width, $period, $skew, $recovery, $nochange, $rtoi, $itor, $realtobits, $bitstoreal, $printtimescale, $timeformat等 5)编译指令)编译指令 (以反引号开头的标识符是编译器指令) define 用于文本替换, undef 用于取消de

5、fine定义的宏 ifdef , else, endif 用于条件编译 default_nettype 为没有被说明的连线定义线网类型 include 用于包含其他文件,文件名前可以包含路径 resetall将所有的编译指令重新设置为缺省值 timescale用于定义时间单位和精度 6)值集合 Verilog HDL有以下四种基本的值 0:逻辑0或“假” 1:逻辑1或“真” x:未知 z:高阻常量 整型十进制数格式 ,如100基数表示法 ,如4b1101 实数型十进制计数法 科学计数法 字符串型 双引号内的字符序列,不能分成多行书写 参数用于定义时延和变量的宽度 7)数据类型)数据类型 线网类

6、型表示结构化元件间的物理连线,其值由驱动元件的值决定有wire,tri,wor,trior,wand,triand,trireg,tri1,tri0 ,supply0 ,supply1等线网子类型 寄存器类型表示一个抽象的数据存储单元 只能在always语句和initial语句中被赋值,并且其值从一个赋值到另一个赋值被保存下来有reg,integer,time,real,realtime 等五种不同的寄存器类型10.2.2.2运算符运算符 (1)算术运算符(,/ ,%)(2)位运算符(,&,|,) (3)逻辑运算符(&,|,!,) (4)关系运算符(,=,= )(5)相等关系运

7、算符(=,!=,=,!=)运算符运算符(6)移位运算符() (7)连接和复制运算( )(8)归约运算符(&,|,&,|,)(9)条件运算符(?:)10.2.2.3门级结构描述门级结构描述 1)Verilog HDL内置基本门(1)多输入门and, nand, or, nor, xor, xnor(2)多输出门buf, not(3)三态门bufif0, bufif1, notif0, notif1(4)上拉、下拉电阻pullup, pulldown(5)MOS开关cmos, nmos, pmos, rcmos, rnmos, rpmos(6)双向开关tran, tranif0,

8、tranif1, rtran, rtranif0, rtranif12)用户定义的原语)用户定义的原语 (User Defined Premitives,UDP) 用以定义用户自己设计的基本逻辑元件的功能 UDP用查表法来确定其输出,仿真处理速度较快 调用UDP的实例语句与基本门的实例语句语法完全一致 10.2.2.4连续赋值语句连续赋值语句 用于数据流行为建模,适用于组合逻辑电路,主要用于对线网wire类型变量的赋值 语法格式为assign 驱动强度 #时延值 线网标识符表达式 连续赋值语句之间是并发的,与书写的先后顺序无关 10.2.2.5行为建模语句行为建模语句 1)过程结构 initi

9、al语句 always语句 一个模块中可以包含任意多个initial或always语句 所有的initial和always语句在0时刻开始并行执行2)时序控制)时序控制 时延控制定义为执行过程中首次遇到该语句的执行时间间隔表示在语句执行前的“等待时延” 使用格式有两种: 时延值(最小时延:典型时延:最大时延)例:3 c a;事件控制 边沿触发事件控制主要有正边沿(posedge)和负边沿(negedge)两种例:always (posedge clk) count=count+1; 电平敏感事件控制 进程语句或进程中的过程语句一直延迟到列出的控制信号有变化才执行例:always (a or b

10、) c=ab;3)语句块)语句块 顺序语句块格式:begin 标识符 语句1; ;语句n; end 其中标识符是可选项语句块中的语句按给定次序顺序执行 并行语句块 格式:fork 标识符语句1; ;语句n; join 其中标识符是可选项语句块中的语句并行执行4)过程性赋值)过程性赋值 它是在initial语句或always语句内的赋值,只能对寄存器数据类型的变量赋值 阻塞性赋值 ()阻塞性赋值是指立即赋值 非阻塞性赋值 ()非阻塞性赋值是在语句块结束后,块内的非阻塞性赋值语句同时进行赋值 5)if条件语句条件语句 3种格式 if (表达式) 语句;if (表达式) 语句1;else 语句2;i

11、f (表达式1) 语句1;else if (表达式2) 语句2;else if (表达式n) 语句n;else 语句n1; Case条件语句语法格式:case(控制表达式)分支表达式1: 语句1;分支表达式2: 语句2;分支表达式n:语句n;default:语句n1;Endcasecase可以换为casex或casez case、casez和casex的差别 case01xz0100010100 x0010z0001case、casez和casex的差别casez01xz0100110101x0011z1111case、casez和casex的差别Casex01xz0101110111x111

12、1z11116)循环语句)循环语句 Forever循环语句语法格式: forever 语句 功能:将语句永远执行下去,主要用于产生时钟变量等 Repeat循环语句语法格式:repeat(循环次数表达式) 语句功能:执行指定循环次数循环语句循环语句While循环语句语法格式:while (条件表达式) 语句功能:执行过程赋值语句直到指定的条件为假 For循环语句语法格式: for (循环下标初值;循环条件;循环下标增量) 过程语句 功能:按照指定的次数重复执行过程赋值语句若干次 各种PLD及其隶属关系10.3 数字系统的CPLD/FPGA硬件验证四种简单PLD的区别 类型阵列输出方式与或PROM

13、固定可编程三态(TS),漏极开路(OC)PLA可编程可编程TS,OCPAL可编程固定TS,I/O,寄存器反馈GAL可编程固定用户定义10.3.2 基于FPGA的数字系统硬件验证 设计输入 设计输入方式有:电路图输入、状态图输入、波形图输入、文本输入 约束输入 包括速度、面积、管脚等的约束 逻辑综合和器件实现 版图后仿真 对实现的期间进行功能与时序验证 应用系统验证 约束设置平面布局图10.4 VLSI数字系统逻辑综合语物理实现10.4.1逻辑综合基本概念以DC为例基本步骤 1)使用HDL语言(Verilog或VHDL)描述设计对象,并输入给DC。 2)DC首先将设计的HDL描述转换成与工艺无关

14、的电路形式,使用GTECH(Generic TECHnology)库和DesignWare库。 3)对上一步骤的转换结果进行优化,并进一步映射到指定的工艺库。 4)添加测试逻辑,即所谓“测试综合”(可选步骤)。 5)使用布局布线工具进行初步设计,得到较为精确的互连延时信息,并将其反标到DC进行再综合,得到更优的逻辑综合结果。 10.4.2 可综合HDL代码设计风格 基本准则1)了解综合器的性能,特别是了解综合工具支持的HDL可综合子集。2)尽量共享复杂运算。3)明确指出过程的无关态,引导综合器进行优化。4)在满足需要的前提下,使用最小数据宽度,不使用integer和real类型数据。5)将组合

15、逻辑和时序逻辑分配到不同的过程语句中实现,结构规则的逻辑块和随机逻辑块分开到不同的模块中实现,将所有模块的输出都寄存器化,以方便时序控制。6)尽量采用同步逻辑设计,如果无法避免使用异步逻辑,应将异步逻辑与同步逻辑分开。7)避免门级描述,除非在关键路径中。在设计的顶层不要实例化门。8)不要使单个过程语句的任务太过复杂。9)建议将态机分成两个部分:一部分用于组合逻辑,一部分用于时序逻辑。状态编码使用参数化的表示方式。 10.4.3 布局与布线 完成从逻辑表述到物理表述的映射版图规划标准单元配置自动布线10.4.4 设计实例 控制专用集成电路整体结构设计仿真FPGA验证验证ASIC设计10.5 混合信号系统硬件描述语言 IEEE 1076.1-1999: 混有模拟信号的硬件描述语言标准VHDL-AMS(VHDL with analog-mixed signal extension)尽量沿袭了Verilog语言的已有功能支持各种连续信号的处理 ,可以进行频域和噪声等性能分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论