EDA技术教程课件

上传人:cl****1 文档编号:568275444 上传时间:2024-07-23 格式:PPT 页数:339 大小:8.90MB
返回 下载 相关 举报
EDA技术教程课件_第1页
第1页 / 共339页
EDA技术教程课件_第2页
第2页 / 共339页
EDA技术教程课件_第3页
第3页 / 共339页
EDA技术教程课件_第4页
第4页 / 共339页
EDA技术教程课件_第5页
第5页 / 共339页
点击查看更多>>
资源描述

《EDA技术教程课件》由会员分享,可在线阅读,更多相关《EDA技术教程课件(339页珍藏版)》请在金锄头文库上搜索。

1、电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙电子技术主讲教师:徐太龙合肥学院电子信息与电气工程系第3版1EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙教学内容1.半导体物理基础知识和数字电路相关的器件知识;2.VHDL硬件描述语言。2EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙考核方式学学习总量:量:140理论:40实验:40自主学习:60考考核核方方式式:考核成绩=期终笔试(40%)+学习笔记(10%)+实验(15%)+过程考核N(35%)N=3【

2、过程测试2次15%、设计项目20%】合合格格要要求求:各项成绩都以60分(及格)为合格,卷面考试未达60分参加补考,其它各项通过重做,直到及格。学学习笔笔记:重点检查学习过程中学生对学习内容的总结能力和领悟能力。3EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙1潘松,黄继业.EDA技术实用教程VHDL版(第五版).科学出版社.2VolneiA.Pedroni著,乔庐峰,王志功等译.VHDL数字电路设计教程.电子工业出版社.3百度文库相关资料.注:本课件部分内容源于百度文库中其他教师的工作参考资料4EDA技术教程电子技术电子技术合肥学院电子信息

3、与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙1王毓银.数字电路逻辑设计(第2版).高等教育出版社.2韩焱.数字电子技术基础(第2版).电子工业出版社.3冯军,谢嘉奎.电子线路(线性部分)第五版.高等教育出版社.复习资料5EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙第1讲引言6EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙本章重点难点1.使用硬件描述语言的原因;2.使用EDA工具的原因;3.数字集成电路设计流程;4.FPGA供应商及其EDA平台;5.硬件描述语言与软件语言的区别;6.

4、英文缩略词的中英文含义。7EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙低头族 手机控 人生三屏8EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙电子信息类专业的目标之一让电子设备系统工作系统包括:软件和硬件9EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙电子设备系统的硬件部分硬件部分包括:板级设计和芯片级设计10EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙11EDA技术教程电子技术电子技

5、术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙cmmm12EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙umnm13EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙14EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙普通头发的直径60-90um芯片内导线的宽度为28nm15EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 微电子技术就是使电子元器件和电子设备微小型化的技术

6、,其核心是集成电路。因此,微电子技术通常也被称为集成电路技术。微电子技术的兴起和迅猛发展促进和推动了计算机技术、通信技术等信息技术的快速发展。可以毫不夸张地说,没有微电子技术,就没有今天的信息社会。微电子技术是信息社会的基础。16EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙集成电路(IntegratedCircuit,IC)就是通过一系列特定的加工工艺,将晶体管等有源器件(简称器件)以及电阻、电容等无源器件(简称元件),按照一定的电路互连关系,“集成”在一块半导体晶片上,封装在一个外壳内,执行特定的电路或系统功能。集成电路通常也被称作芯片。

7、一块半导体晶圆片可以加工成千上万颗芯片,芯片很小,却可以用晶圆片加工的方式实现规模化生产。集成电路具有元器件密度高、体积小、重量轻、功耗低、成本低以及可靠性高等诸多优点,实现了元器件、电路和系统的完美结合。 集成电路的发明和应用,是人类二十世纪最重要的科技进步之一,它开辟了电子元器件及电子设备微小型化的新纪元。集成电路对国民经济建设、国防建设以及社会发展具有至关重要的战略地位和不可替代的核心关键作用。如果没有集成电路,就没有今天的信息社会,集成电路是信息社会的基础。它是现代科学技术的重要组成部分,是改造和提升传统产业的核心技术。17EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太

8、龙合肥学院电子信息与电气工程系徐太龙芯片级设计模拟电路设计数字电路设计18EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙数字电路设计传统手工组合逻辑电路设计流程1.根据逻辑功能要求,进行逻辑抽象,列出真值表。2.根据真值表写出逻辑函数表达式,或者直接画出函数的卡诺图。3.把逻辑函数表达式化简或变换,得到所需的最简表达式或转换成需要的形式。4.按照最简表达式或变换后的形式,画出逻辑电路图。19EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙数字电路设计传统手工同步时序逻辑电路设计流程1.建立原始

9、状态转换图或状态转换表。2.状态化简。3.状态分配。4.选定触发器类型,求输出方程和驱动方程。5.检查自启动能力。6.根据输出方程和驱动方程画出逻辑电路图。20EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙数字电路设计传统手工组合逻辑电路设计流程传统手工手工设计流程流程逻辑功能要求真值表逻辑函数表达式化简与变换逻辑图以设计2选1数据选择器为例。当s等于1时,输出y等于输入a;当s等于0时,输出y等于输入b。011000110001111001abs与或表达式:y=as+bs4选1数据选择器如何设计?传统手工设计流程无能为力引入现代EDA设计流

10、程21EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙解决思路4选1数据选择器如何设计?1*9=999999*98567=?C语言编程硬件描述语言计算机辅助22EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙实体名,设计者自己取ENTITYmux21aISPORT(a,b,s:INBIT;y:OUTBIT);ENDENTITYmux21a;ARCHITECTUREbhvOFmux21aISBEGINPROCESS(a,b,s)BEGINIF(s=1)THENy=a;ELSEy=b;ENDIF;E

11、NDPROCESS;ENDARCHITECTUREbhv;进程语句起始实体结构体VHDL设计实例2选1多路多路选择器的器的VHDL描述描述23EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙硬件描述语言硬硬件件描描述述语言言(HardwareDescriptionLanguage,HDL)一种用于描述数字电路功能或行为的语言。可以描述硬件电路的功能、信号连接关系及定时关系的语言。它可以比电路原理图更有效地表示硬件电路的特性。目的是提高电路设计效率,缩短设计周期,减小设计成本,可在芯片制造前进行有效的仿真和错误检测。优点点:HDL设计的电路能获得

12、非常抽象级的描述。如基于RTL(RegisterTransferLevel)描述的IC,可用于不同的工艺。HDL设计的电路,在设计的前期,就可以完成电路的功能级的验证。HDL设计的电路类似于计算机编程。常用的HDL语言:VHDL和VerilogHDL24EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙VHDL描述语言VHDL:VHSICHardwareDescriptionLanguage。VHSIC:VeryHighSpeedIntegratedCircuitVHDL是美国国防部在20世纪80年代初为实现其高速集成电路硬件VHSIC计划提出的

13、描述语言;IEEE从1986年开始致力于VHDL标准化工作,融合了其它ASIC芯片制造商开发的硬件描述语言的优点,先后有VHDL87 (IEEE.std_1164/87) ,VHDL93(IEEE.std_1164/93)和含有多值逻辑的IEEE.std_1164标准。1995年,我国国家技术监督局推荐VHDL作为电子设计自动化硬件描述语言的国家标准。25EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙VHDL描述语言VHDL优点点覆盖面广,系统硬件描述能力强,是一个多层次的硬件描述语言;VHDL语言具有良好的可读性,既可以被计算机接受,也容易

14、被人们所理解;VHDL语言可以与工艺无关编程。VHDL语言已作为一种IEEE的工业标准,便于使用、交流和推广。26EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙VHDL描述语言VHDL设计硬件硬件电路路所谓用VHDL设计是指由设计者编写代码,然后用模拟器验证其功能,再把这些代码综合成一个与工艺无关的网表,即翻译成由门和触发器等基本逻辑原件组成的原理图(门级电路),最后完成硬件设计。27EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙VHDL描述语言VHDL与普通与普通计算机算机软件件语言的区言

15、的区别28EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙数字电路设计EDA设计流程流程自底向上设计方法自顶向下设计方法IP核:软核、固核和硬核29EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙FPGAFPGA(FieldProgrammableGateArray)现场可编程门阵列,是一种可编程的IC芯片。FPGA的主要5大生产厂家:Altera阿尔特拉是世界老牌的可编程逻辑器件的厂家,是可编程逻辑器件的发明者;Xilinx赛灵思是FPGA的发明者,拥有世界一半以上的市场;Actel一直效力于

16、美国军工和航空领域,并禁止对外出售。目前开始逐渐转向民用和商用;Lattice莱迪思Atmel艾特梅尔30EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙FPGA两大FPGA供应商的EDA工具开发平台:Altera:QuartusIIXilinx:ISE31EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙作业1-21-332EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙第2讲组合逻辑电路的VHDL描述33EDA技术教程电子技术电子技术合肥学院电

17、子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述2选1数据数据选择器的器的VHDL描述描述2选1数据选择器逻辑符号VHDL代码的实体2选1数据选择器逻辑图VHDL代码的结构体ENTITYmux21aISPORT(a,b,s:INBIT;y:OUTBIT);ENDENTITYmux21a;ARCHITECTUREbhvOFmux21aISBEGINPROCESS(a,b,s)BEGINIF(s=1)THENy=a;ELSEy=b;ENDIF;ENDPROCESS;ENDARCHITECTUREbhv;什么是数据选择器?实体结构体实体名,设计者自己取进程语

18、句起始结构体名赋值符号34EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述2选1数据数据选择器的器的VHDL描述描述在Altera公司的QuartusII9.1(32bit)平台下仿真的结果35EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述半加器的半加器的VHDL描述描述半加器的真值表半加器的电路结构图LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYh_adderISPORT(a:INST

19、D_LOGIC;b:INSTD_LOGIC;so:OUTSTD_LOGIC;co:OUTSTD_LOGIC);ENDENTITYh_adder;ARCHITECTUREbhvOFh_adderISBEGINSO=AXORB;CO=AANDB;ENDARCHITECTRUEbhv;设计库和程序包调用电 路模 块端 口说 明和 定义电路模块功能描述VHDL实体描述部分VHDL结构体描述部分VHDL表述的半加器完整电路模块程序代码什么是半加器?逻辑操作符36EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述VHDL代代码

20、的的组成成库(LIBRARY)声明:列出当前设计中需要用到的所有库文件,如ieee,std和work等;实体(ENTITY):定义了电路的输入/输出引脚;结构体(ARCHITECTURE):包含的代码描述了电路要实现的功能。37EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述VHDL代代码的的组成成库声明声明库的基本组成部分库是一些常用代码的集合,将电路设计中经常使用的一些代码存放到库中有利于设计的重用和代码共享,同时可以使代码结构更加清晰。ieee库std_logic_1164:定义STD_LOGIC(8值)和

21、STD_ULOGIC(9值)多值逻辑系统。std_logic_arith:定义SIGNED(有符号)和UNSIGNED(无符号)数据类型和相关的算术运算和比较运算操作。包含数据类型转换函数。38EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙VHDL代代码的的组成成库声明声明组合合电路的路的VHDL描述描述std库:VHDL设计环境的标准资源库,包括数据类型和输入/输出文本等内容。std库中存放有standard和textio。使用std库不需要进行任何声明。work库:当前工作库,存放当前设计的所有代码,使用work库不需要进行任何声明。st

22、d_logic_signed:内部包含一些函数,这些函数可以使STD_LOGIC_VECTOR类型的数据像SIGNED类型的数据一样进行运算操作。std_logic_unsigned:内部包含一些函数,这些函数可以使STD_LOGIC_VECTOR类型的数据像UNSIGNED类型的数据一样进行运算操作。39EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述VHDL代代码的的组成成库声明声明库声明的格式:LIBRARYlibrary_name;USElibrary_name.package_name.package_

23、parts;例如:LIBRARYieee;USEieee.std_logic_1164.all;表示一个表示一个语句和声明的句和声明的结束。束。-表示注表示注释。注意注意VHDL不分大小写,建不分大小写,建议关关键字(字(Keyword)大写,其余小写。)大写,其余小写。40EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述VHDL代代码的的组成成实体体实体(ENTITY)用来描述电路的所有输入/输出引脚,其语法格式如下:ENTITYentity_nameISPORT(port_name:signal_modesi

24、gnal-type;port_name:signal_modesignal-type;.);ENDENTITYentity_name标识符,取名规则端口模式:IN,OUT,INOUT,BUFFER四种信号类型:BIT,STD_LOGIC等41EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述VHDL代代码的的组成成结构体构体结构体(ARCHITECTURE)中的代码用来描述电路行为和功能,其语法格式如下:ARCHITECTUREarchitecture_nameOFentity_nameISdeclarations

25、BEGIN(code)ENDARCHITECTUREarchitecture_name;声明部分,用于常量、信号和元件例化等声明。代码部分,用于描述电路的行为功能。42EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述VHDL代代码文件的存文件的存盘与与书写格式要求写格式要求文件存文件存盘在QuartusII中,要求VHDL程序的文件名必须与该程序的模块名(实体名)一致,文件取名大小写不敏感,且必须以.vhd结尾。文件存放路径不要包含中文字符,也不要放在根目录内或桌面上。书写格式写格式合理使用键盘上面的Tab键,同

26、一层次的语句对齐,低一层次向右缩进。做到层次分明、条理清晰。注意加入注释提高可读性。43EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述VHDL预定定义的数据的数据类型型预定定义数据数据类型型经常使用,所以放在常使用,所以放在库的包集中,方便重复使用的包集中,方便重复使用std库的standard包集:定义了位(BIT)、布尔(BOOLEAN)、整数(INTEGER)和实数(REAL)数据类型。ieee库的std_logic_1164包集:定义了标准逻辑STD_LOGIC和STD_ULOGIC数据类型。ieee库

27、的std_logic_arith包集:定义了SIGNED和UNSIGNED数据类型,还有数据类型转换函数。ieee库的std_logic_signed和std_logic_unsigned包集:包含一些函数,这些函数可以使STD_LOGIC_VECTOR类型的数据像SIGNED和UNSIGNED数据类型一样进行运算操作。44EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述VHDL预定定义的数据的数据类型型位位(BIT)和位矢量和位矢量(BIT_VECTOR)例如例如SIGNALx:BIT;-将x声明为一个位宽为1

28、的BIT类型的信号SIGNALy:BIT_VECTOR(3DOWNTO0);-将y声明为一个位宽为4的位矢量,其中最左边的一位是最高位(MSB: MostSignificantBit)使用=操作符给信号赋值x=1;-x是位宽为1,值为1的信号。注意,当位宽为1时,位值放在单引号中y=“0111”;-y是位宽为4,值为“0111”的信号。注意,当位宽大于1时,位矢量值放在双引号中,(MSB为0)位值只能取0或145EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述VHDL预定定义的数据的数据类型型标准准逻辑(STD_

29、LOGIC)和和标准准逻辑矢量矢量(STD_LOGIC_VECTOR)例如例如SIGNALx:STD_LOGIC;-将x声明为一个位宽为1的STD_LOGIC类型的信号SIGNALy:STD_LOGIC_VECTOR(3DOWNTO0):=“0111”;-将y声明为一个位宽为4的位矢量,其中最左边的一位是MSB使用:=操作符给信号赋初始值八种取值:三种可综合X表示强未知的;0表示强逻辑0;1表示强逻辑1;Z表示高阻态;W表示弱未知的;L表示弱逻辑0;H表示弱逻辑1;-表示忽略。46EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的

30、VHDL描述描述VHDL预定定义的数据的数据类型型有符号数有符号数(SIGNED)和无符号数和无符号数(UNSIGNED)例如例如SIGNALx:SIGNED(3DOWNTO0);-可以表示整数和负数。SIGNALy:UNSIGNED(3DOWNTO0);-只能表示大于等于零的数。x=“0101”;-表示十进制数5x=“1101”;-表示十进制数-3y=“0101”;-表示十进制数5y=“1101”;-表示十进制数13注:只有在代码开始部分声明ieee库中的包集std_logic_arith,才能使用有符号和无符号数;有符号和无符号数主要是为了进行算术运算,也支持比较运算操作,但不支持逻辑运算

31、。47EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述VHDL预定定义的数据的数据类型型有符号数有符号数(SIGNED)和无符号数和无符号数(UNSIGNED)例如例如LIBRARYieee;USEieee.std_logic_1164.all;USEieee.std_logic_arith.all;-必须声明这个包集才能使用有符号和无符号数.SIGNALa:INSIGNED(3DOWNTO0);SIGNALb:INSIGNED(3DOWNTO0);SIGNALy:OUTSIGNED(3DOWNTO0);y=a+

32、b;-合法(支持算术运算)y=aANDb;-不合法(不支持逻辑运算)48EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述VHDL预定定义的数据的数据类型型有符号数有符号数(SIGNED)和无符号数和无符号数(UNSIGNED)例如例如LIBRARYieee;USEieee.std_logic_1164.all;-不需要声明其他包集.SIGNALa:INSTD_LOGIC_VECTOR(3DOWNTO0);SIGNALb:INSTD_LOGIC_VECTOR(3DOWNTO0);SIGNALy:OUTSTD_LOG

33、IC_VECTOR(3DOWNTO0);y=a+b;-不合法(STD_LOGIC_VECTOR不支持算术运算)y=aANDb;-合法(支持逻辑运算)49EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述VHDL预定定义的数据的数据类型型有符号数有符号数(SIGNED)和无符号数和无符号数(UNSIGNED)例如例如LIBRARYieee;USEieee.std_logic_1164.all;USEieee.std_logic_unsigned.all;-必须声明这个包集.SIGNALa:INSTD_LOGIC_VE

34、CTOR(3DOWNTO0);SIGNALb:INSTD_LOGIC_VECTOR(3DOWNTO0);SIGNALy:OUTSTD_LOGIC_VECTOR(3DOWNTO0);y=a+b;-合法(声明std_logic_unsigned和std_logic_signed后支持算术运算)y=aANDb;-合法(支持逻辑运算)50EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述VHDL预定定义的数据的数据类型型其他数据其他数据类型型布尔类型(BOOLEAN):只有两种取值,“真”(1)True或“假”(0)Fal

35、se;整数(INTEGER):32位的整数(取值范围从-2147483647到2147483647)自然数(NATURAL):非负的整数(取值范围从0到2147483647)实数(REAL):实数的取值范围从-1.01038到1.01038,它是不可综合的。物理量字符(Physicalliteral):用来表示诸如时间和电压等物理量。在仿真时可以使用,但不可综合。字符型(CHARACTER):可以是单个或一串ASCII字符。51EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述单个位和位矢量个位和位矢量BIT和BI

36、T_VECTOR,STD_LOGIC和STD_LOGIC_VECTOR的区别ENTITYand2ISPORT(a,b:INBIT_VECTOR(0TO3);x: OUT BITBIT_VECTOR(0 TO3);ENDand2;ARCHITECTUREand2OFand2ISBEGINx=aANDb;ENDand2;ENTITYand2ISPORT(a,b:INBIT;x:OUTBIT);ENDand2;ARCHITECTUREand2OFand2ISBEGINx=aANDb;ENDand2;52EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙

37、组合合电路的路的VHDL描述描述运算操作符运算操作符赋值运算符逻辑运算符算术运算符关系运算符移位运算符并置运算符53EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述赋值运算符运算符给矢量中的某些位赋值,或对某些位之外的其他位(常用OTHERS表示)赋值。例如例如SIGNALx:STD_LOGIC;VARIABLEy:STD_LOGIC_VECTOR(3DOWNTO0);-最左边的位是MSBSIGNALw:STD_LOGIC_VECTOR(0TO7);-最右边的位是MSBx=1;-通过=将值1赋给信号xy:=“00

38、00”;-通过:=将值“0000”赋给变量yw=“10000000”;-最低位是1,其他位是0w1,OTHER=0);-最低位是1,其他位是0区区别运算操作符运算操作符54EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述逻辑运算符运算符操作数操作数BITBIT_VECTORSTD_LOGICSTD_LOGIC_VECTORNOT取反AND与OR或NAND与非NOR或非XOR异或XNOR同或优先先级运算操作符运算操作符例如例如y=NOTaANDb;-aby=NOT(aANDb);-aby=aNANDb;-ab55E

39、DA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述算算术运算符运算符操作数操作数INTEGERSIGNEDUNSIGNEDREAL+加-减*乘/除*指数运算MOD取模REM取余ABS取绝对值注意注意如果声明了ieee库中的包集std_logic_signed和std_logic_unsigned就可以对STD_LOGIC_VECTOR类型的数据进行加法和减法运算。运算操作符运算操作符56EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述关

40、系运算符关系运算符两两边操作数的数据操作数的数据类型必型必须相同,适用于所有数据相同,适用于所有数据类型型=等于/=不等于大于=大于等于运算操作符运算操作符57EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述移位操作符移位操作符sll逻辑左移-数据左移,右端空出来的位置填充0srl逻辑右移-数据右移,左端空出来的位置填充0sla算术左移-数据左移,同时赋值最右端的位,在数据左移操作后填充在右端空出的位置上sra算术右移-数据右移,同时赋值最左端的位,在数据右移操作后填充在左端空出的位置上rol循环逻辑左移-数据左

41、移,同时从左端移出的位填充在右端空出的位置上ror循环逻辑右移-数据右移,同时从右端移出的位填充在左端空出的位置上必必须是是BIT_VECTOR必必须是是INTEGER运算操作符运算操作符58EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述移位操作符移位操作符例例令令x=“01001”,那么那么y=xsll2;-逻辑左移两位:y=“00100”y=xsla2;-算术左移两位:y=“00111”y=xsrl3;-逻辑右移三位:y=“00001”y=xsra3;-算术右移三位:y=“00001”y=xrol2;-循环

42、逻辑左移两位:y=“00101”y=xror2;-循环逻辑右移两位:y=“01010”运算操作符运算操作符59EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述并置并置运算符运算符用于位的拼接,其操作数和用于位的拼接,其操作数和逻辑运算操作数一致运算操作数一致&(,)例例使用并置运算符使用并置运算符对信号信号赋值z=1&“1000000”;那么z=“11000000”z=(1,1,0,0,0,0,0,0);那么z=“11000000”运算操作符运算操作符60EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系

43、徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述运算操作符运算操作符操作符操作符类型型操作符操作符操作数操作数类型型赋值运算任意数据类型逻辑运算NOT,AND,NAND,OR,NOR,XOR,XNORBIT,BIT_VECTOR,STD_LOGIC,STD_LOGIC_VECTOR算术运算+,-,*,/,*,mod,rem,abs(不可综合)INTEGER,SIGNED,UNSIGNED比较运算=,/=,=任意数据类型移位运算sll,srl,sla,sra,rol,rorBIT_VECTOR并置运算&,(,)BIT,BIT_VECTOR,STD_LOGIC,STD_LO

44、GIC_VECTOR61EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙VHDL是一种强类型语言,其运算操作符对操作数的数据类型有严格要求,编程中必须利用各种方式,如使用类型转换函数等措施,使之满足。对VHDL中的操作符与操作数的运算有两点需要特别注意:严格遵循在基本操作符间操作数是相同数据类型的规则;严格遵循操作数的数据类型必须与操作符所要求的数据类型完全一致的规则。此外,还有注意操作符之间存在优先级别,所以在编程中应注意括号的正确应用。组合合电路的路的VHDL描述描述运算操作符运算操作符62EDA技术教程电子技术电子技术合肥学院电子信息与电

45、气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述数据数据类型型转换在VHDL中,不同类型的数据不能直接进行算术或逻辑运算。因此有必要进行数据类型转换操作。两种方法:一种方法是写一段专门用于数据类型转换的VHDL代码;另一种方法是调用包集中预定义的数据类型转换函数。63EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙使用这些转换函数,在程序的起始端,打开IEEE库中必要的程序包。组合合电路的路的VHDL描述描述数据数据类型型转换64EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电

46、气工程系徐太龙组合合电路的路的VHDL描述描述4选1数据数据选择器的器的VHDL描述描述IF语句句LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux41aISPORT(a,b,c,d,s0,s1:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDENTITYmux41a;ARCHITECTUREbhvOFmux41aISSIGNALs:STD_LOGIC_VECTOR(1DOWNTO0);BEGINs=s1&s0;PROCESS(s)BEGINIF(s=“00”)THENy=a;ELSIF(s=“01”)THENy=b;ELSIF(s=

47、“10”)THENy=c;ELSEy=d;ENDIF;ENDPROCESS;ENDARCHITECTUREbhv;有有进程程语句句注意每句注意每句结尾的符号尾的符号65EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述4选1数据数据选择器的器的VHDL描述描述CASE语句句LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux41aISPORT(a,b,c,d,s0,s1:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDENTITYmux41a;ARCHITE

48、CTUREbhvOFmux41aISSIGNALs:STD_LOGIC_VECTOR(1DOWNTO0);BEGINsyyyyNULL;ENDCASE;ENDPROCESS;ENDARCHITECTUREbhv;有有进程程语句句注意每句注意每句结尾的符号尾的符号66EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述4选1数据数据选择器的器的VHDL描述描述WHEN_ELSE条件信号条件信号赋值语句句LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux41aISPORT(a

49、,b,c,d,s0,s1:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDENTITYmux41a;ARCHITECTUREbhvOFmux41aISSIGNALs:STD_LOGIC_VECTOR(1DOWNTO0);BEGINs=s1&s0;y=aWHENs=“00”ELSEbWHENs=“01”ELSEcWHENs=“10”ELSEd;ENDARCHITECTUREbhv;无无进程程语句句注意每句注意每句结尾的符号尾的符号67EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述4选1数据数据选择器

50、的器的VHDL描述描述选择信号信号赋值语句句LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux41aISPORT(a,b,c,d,s0,s1:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDENTITYmux41a;ARCHITECTUREbhvOFmux41aISSIGNALs:STD_LOGIC_VECTOR(1DOWNTO0);BEGINs=s1&s0;WITHSSELECTy=aWHENs=“00”,bWHENs=“01”,cWHENs=“10”,dWHENs=“11”;ENDARCHITECTUREbhv;无无进程程语句句注

51、意每句注意每句结尾的符号尾的符号68EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述顺序代序代码和并和并发代代码在C语言中,语句都是逐行顺序执行的,称之为程序。硬件描述语言为了能反映实际电路的功能,本质上是并发执行的,称之为代码。但是,在VHDL硬件描述语言的PROCESS,FUNCTION,PROCEDURE之内的代码都是顺序执行的,称之为顺序代码(语句)。然而,当作为一个整体时它们与外部的其他代码之间又都是并发执行的。VHDL代代码分分为:顺序代码(语句)和并行(发)代码(语句)也称数据流代码69EDA技术教

52、程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述顺序代序代码顺序代码,也就是在PROCESS、FUNCTION和PROCEDURE内部出现的语句。包括IF、CASE、WAIT和LOOP语句。进程(程(PROCESS):):在VHDL中,进程(PROCESS)内部的语句是一种顺序描述语句,其内部经常使用IF、CASE、WAIT和LOOP语句。PROCESS具有敏感信号列表(sensitivitylist),或使用WAIT语句进行执行条件的判断。PROCESS必须包含在主代码段中,当敏感信号列表中的某个信号发生变化时(或当WAI

53、T语句的条件得到满足时),其内部的代码就顺序执行一次。70EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述进程(程(PROCESS)label:PROCESS(sensitivitylist)VARIABLEname:typerange:=initial_valueBEGIN(顺序执行的代码)ENDPROCESSlabel;变量声明部量声明部分是可分是可选的,的,必必须定定义在在该位置位置处变量的初始量的初始值是不可是不可综合的,只是在仿真合的,只是在仿真过程程中使用。中使用。可可选,主要是增,主要是增强强代代码

54、的可的可读性。性。标识符的命名符的命名规则。表示可表示可选,()表示必表示必须有。有。顺序代序代码71EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述IF语句句必必须放在放在进程中程中IF条件句THEN顺序语句ENDIF;IF条件句THEN顺序语句ELSE顺序语句ENDIF;IF条件句THENIF条件句THEN.ENDIF;ENDIF;IF条件句THEN顺序语句ELSIF条件句THEN顺序语句ELSE顺序语句ENDIF;顺序代序代码72EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信

55、息与电气工程系徐太龙组合合电路的路的VHDL描述描述4选1数据数据选择器的器的VHDL描述描述IF语句句LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux41aISPORT(a,b,c,d,s0,s1:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDENTITYmux41a);ARCHITECTUREbhvOFmux41aISSIGNALs:STD_LOGIC_VECTOR(1DOWNTO0);BEGINs=s1&s0;PROCESS(s)BEGINIF(s=“00”)THENy=a;ELSIF(s=“01”)THENy=b;ELSI

56、F(s=“10”)THENy=c;ELSEy顺序语句;顺序语句;顺序语句;WHEN条件表达式=顺序语句;顺序语句;顺序语句;.WHENOTHERS=顺序语句;NULL的使用的使用顺序代序代码74EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述4选1数据数据选择器的器的VHDL描述描述CASE语句句LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux41aISPORT(a,b,c,d,s0,s1:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDENTITYm

57、ux41a);ARCHITECTUREbhvOFmux41aISSIGNALs:STD_LOGIC_VECTOR(1DOWNTO0);BEGINsyyyyNULL;ENDCASE;ENDPROCESS;ENDARCHITECTUREbhv;有有进程程语句句顺序代序代码75EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述并并发代代码并发代码综合产生的电路与代码的书写顺序无关。并发代码包括:运算操作符WHEN语句(WHEN/ELSE或者WITH/SELECT/WHEN)GENERATE语句BLOCK语句76EDA技术

58、教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述并并发代代码运算操作符运算操作符LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYh_adderISPORT(a:INSTD_LOGIC;b:INSTD_LOGIC;so:OUTSTD_LOGIC;co:OUTSTD_LOGIC);ENDENTITYh_adder;ARCHITECTUREbhvOFh_adderISBEGINso=aXORb;co=aANDb;ENDARCHITECTRUEbhv;77EDA技术教程电子技术电子技术合肥

59、学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述并并发代代码WHEN_ELSE条件信号条件信号赋值语句句赋值目标=表达式WHEN赋值条件ELSE表达式WHEN赋值条件ELSE.表达式;78EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述并并发代代码WHEN_ELSE条件信号条件信号赋值语句句LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux41aISPORT(a,b,c,d,s0,s1:INSTD_LOGIC;y:OUT

60、STD_LOGIC);ENDENTITYmux41a);ARCHITECTUREbhvOFmux41aISSIGNALs:STD_LOGIC_VECTOR(1DOWNTO0);BEGINs=s1&s0;y=aWHENs=“00”ELSEbWHENs=“01”ELSEcWHENs=“10”ELSEd;ENDARCHITECTUREbhv;79EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述并并发代代码WITH_SELECT_WHEN选择信号信号赋值语句句WITH选择表达式SELECT赋值目标=表达式WHEN选择值,

61、表达式WHEN选择值,.表达式WHEN选择值;80EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述并并发代代码WITH_SELECT_WHEN选择信号信号赋值语句句LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux41aISPORT(a,b,c,d,s0,s1:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDENTITYmux41a);ARCHITECTUREbhvOFmux41aISSIGNALs:STD_LOGIC_VECTOR(1DOWNTO0);

62、BEGINs=s1&s0;WITHSSELECTy=aWHENs=“00”,bWHENs=“01”,cWHENs=“10”,dWHENs=“11”,UNAFFECTEDWHENOTHERS;ENDARCHITECTUREbhv;81EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述WHEN和和CASE的比的比较WHENCASE代码类型并发代码顺序代码用法在PROCESS,FUNCTIONS,PROCEDURES外部使用在PROCESS,FUNCTIONS,PROCEDURES内部使用必须列出所有可能的组合是(对WI

63、TH/SELECT/WHEN来说)是每个判断分支允许的最大赋值操作数1任意没有操作动作时使用的关键字UNAFFECTEDNULL82EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYor2ISPORT(a:INSTD_LOGIC;b:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDENTITYor2;ARCHITECTUREbhvOFor2ISBEGINy=aORb;ENDARCHITECTRUEbhv;组合合电路的路的VHDL描述描述例化例化

64、如何由半加器构成全加器?如何由半加器构成全加器?LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYh_adderISPORT(a:INSTD_LOGIC;b:INSTD_LOGIC;so:OUTSTD_LOGIC;co:OUTSTD_LOGIC);ENDENTITYh_adder;ARCHITECTUREbhvOFh_adderISBEGINso=aXORb;coa,b=b,so=so1,co=co1);-例化语句顶层设计中的导线名放在赋值符号右边,端口关联u2:h_adderPORTMAP(so1,c,so,co2);-例化语句位置关联u3:or2PO

65、RTMAP(a=a,b=co1,y=co);ENDARCHITECTUREbhv;84EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述8位加法器位加法器设计实用用RTL级描述描述LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;-此程序包中包含算术操作符的重载函数!ENTITYadder8bISPORT(a,b:INSTD_LOGIC_VECTOR(7DOWNTO0);cin:INSTD_LOGIC;cout:OUTSTD_

66、LOGIC;dout:OUTSTD_LOGIC_VECTOR(7DOWNTO0);ENDENTITYadder8b;ARCHITECTUREbhvOFadder8bISSIGNALdata:STD_LOGIC_VECTOR(8DOWNTO0);BEGINdata=(0&a)+(0&b)+(00000000&cin);-运算符的优先级,赋值符两边的数据类型必须一致,且若为矢量类型,两端值的位数也必须相等。cout=data(8);dout=data(7DOWNTO0);ENDARCHITECTUREbhv;85EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气

67、工程系徐太龙组合合电路的路的VHDL描述描述8位加法器位加法器设计实用用RTL级描述描述86EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述统计位矢中含位矢中含1个数的个数的电路模路模块设计LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYcntcISPORT(din:INSTD_LOGIC_VECTOR(7DOWNTO0);cnth:OUTSTD_LOGIC_VECTOR(3DOWNTO0);ENDENTITY

68、cntc;ARCHITECTUREbhvOFcntcISBEGINPROCESS(din)VARIABLEq:STD_LOGIC_VECTOR(3DOWNTO0);-Q:=“0000”;变量赋值符与信号赋值符不同,变量的功能用于数据的暂存,而且只能在进程中定义,不能将数据传出进程。BEGINq:=“0000”;FORnin0to7LOOP;-n是LOOP的循环变量IF(din(n)=1)THENq:=q+1;ENDIF;ENDLOOP;cnth=q;ENDPROCESS;ENDARCHITECTUREbhv;87EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与

69、电气工程系徐太龙组合合电路的路的VHDL描述描述统计位矢中含位矢中含1个数的个数的电路模路模块设计88EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述数据数据对象象数据对象是指用来保存数据的客体单元,它类似于一种容器,能接受不同类型的赋值。在VHDL中,数据对象有三类:变量(variable)、常量(constant)和信号(signal)。Signal和Variable处理非静态数据;Constant和Generic处理静态数据。常量和信号是全局的,既可以用在顺序代码中,也可以用在并发代码中。变量是局部的,只能

70、用在顺序代码中(PROCESS、FUNCTION或PROCEDURE的内部),并且它们的值是不能直接向外传递的。89EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述数据数据对象象常数常数常数的定义和设置主要是为了使程序更容易阅读和修改。语法格式法格式:CONSTANT常数名:数据类型:=表达式;例如例如:CONSTANTFBT:STD_LOGIC_VECTOR:=“010110”;-定义常数为标准位矢类型CONSTANTDATAIN:INTEGER:=15;-定义常数为整数类型15常数定义语句所允许的设计单元有实

71、体、结构体、程序包、块、进程和子程序。常数的可视性,即常数的使用范围取决于它被定义的位置。二者二者类型必型必须一致一致90EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述数据数据对象象信号信号信号是描述硬件系统的基本数据对象。既可以用于电路单元的输入/输出端口,也可以用于电路内部各单元之间的连接。实体所有端口都默认为信号。语法格式法格式:SIGNAL信号名:数据类型:=初始值;目标信号名=表达式AFTER时间量;-AFTER是关键词例如例如:SIGNALDATA:STD_LOGIC_VECTOR(1DOWNTO0

72、);DATA=“01”,“10”AFTER40ns,“11”AFTER60ns,“00”AFTER75ns;信号定义范围是实体、结构体和程序包。进程只能将信号列入敏感表,而不能将变量列入敏感表,因为只有信号才能把进程外的信息带入进程内部,或将进程内的信息带出进程。信号用在并发语句中时,不允许对同一目标信号进行多次赋值;信号用在进程中,是顺序信号赋值,信号赋值操作要视进程是否已被启动,并且允许对同一目标信号进行多次赋值。PROCESS(a,b,c)BEGINy=a+b;z=c-a;y=b;ENDPROCESS;同一目同一目标信号多次信号多次赋值,只有最后一句有效。,只有最后一句有效。91EDA技

73、术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述数据数据对象象变量量变量是一个局部量,只能在PROCESS、FUNCTION和PROCEDURE内部使用,而且对它的赋值是立即生效的,所以新的值可以在下一行代码中立即使用。语法格式法格式:VARIABLE变量名:数据类型:=初始值;目标变量名:=表达式;例如例如:VARIABLEx,y:INTEGERRANGE15DOWNTO0;-分别定义变量x和y为整数类型VARIABLEa,b:STD_LOGIC_VECTOR(7DOWNTO0);x:=11;-整数直接赋值y:=2+x

74、;-运算表达式赋值,y也是整数变量a:=b;-b向a赋值a(5DOWNTO0):=b(7DOWNTO2);-位矢量类型赋值92EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述数据数据对象象信号和信号和变量的比量的比较信号信号变量量赋值符号=:=功能表示电路内部连接表示局部信息范围全局局部(仅在相应的进程、函数和过程中使用)行为在顺序代码中,信号值的更新不是即时的,新的值要在进程、函数和过程完成以后才有效即时更新(新的值在代码的下一行就生效)用途用于包集、实体或结构体中。在实体中,所有端口默认为信号仅用于顺序描述代

75、码中(进程、函数或过程中)93EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述数据数据对象象信号和信号和变量的比量的比较4选1数据数据选择器器方案1:usingaSIGNAL(notok)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmuxISPORT(a,b,c,d,s0,s1:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDENTITYmux;ARCHITECTUREnot_okOFmuxISSIGNALsel:INTEGERRANGE0TO3;BEG

76、INPROCESS(a,b,c,d,s0,s1)BEGINsel=0;IF(s0=1)THENsel=sel+1;ENDIF;IF(s1=1)THENselyyyyyyyy=d;ENDCASE;ENDPROCESSENDARCHITECTUREok;变量即量即时更新,更新,sel值确定。确定。95EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述数据数据对象象LOOP语句句LOOP语句是顺序语句,只能在PROCESS、FUNCTION和PROCEDURE内部使用。FOR/LOOP:循:循环固定次数固定次数label

77、:FOR循环变量IN范围LOOP(顺序描述语句)ENDLOOPlabel;例如:例如:FORnIN0TO5LOOP.ENDLOOP;WHILE/LOOP:循:循环执行直到某个条件不再行直到某个条件不再满足足label:WHILE条件表达式LOOP(顺序描述语句)ENDLOOPlabel;例如:例如:WHILE(n10;ENDLOOPL2;NEXT:跳出本次循:跳出本次循环FORnIN0TO15LOOPNEXTWHENn=skip;-跳到下一次循环ENDLOOP;97EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙组合合电路的路的VHDL描述描述

78、移位相加型乘法器的移位相加型乘法器的VHDL表述方法表述方法98EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;ENTITYmult4bISGENERIC(S:INTEGER:=4);-定义参数S为整数类型,且等于4PORT(R:OUTSTD_LOGIC_VECTOR(2*SDOWNTO1);A,B:INSTD_LOGIC_VECTOR(SDOWNTO

79、1);ENDENTITYmult4b;ARCHITECTUREoneOFmult4bISSIGNALA0:STD_LOGIC_VECTOR(2*SDOWNTO1);BEGINA00);-若S=4,则此句等效于R1:=“00000000”FORiIN1TOSLOOPIF(B(i)=1)THENR1:=R1+TO_STDLOGICVECTOR(TO_BITVECTOR(A0)SLL(i-1);ENDIF;ENDLOOP;R0时外加正值VDS时,源区中多子电子将沿反型层漂移到漏区,形成自漏极流向源极的漏极电流。NMOS器件垂直电场E水平电场E114EDA技术教程电子技术电子技术合肥学院电子信息与电气

80、工程系徐太龙合肥学院电子信息与电气工程系徐太龙CMOS逻辑门MOS器件符号半半导体器件体器件115EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙CMOS逻辑门半半导体器件体器件MOS器件的开关模型116EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙CMOS逻辑门CMOS反相器反相器晶体管是一个具有无限关断电阻( )和有限导通电阻( )的开关。117EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙CMOS逻辑门利用NMOS和PMOS的互补特性获

81、得良好的电路性能。源、衬接法避免衬偏效应,pn结反偏或零偏,防止寄生效应。NMOS下拉开关,PMOS上拉开关。CMOS反相器反相器118EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙CMOS逻辑门VinVoutCLVDDVDDVDDVinVDDVin0VoutVoutRnRpVin=VDD,NMOS导通、PMOS截止。Vout=VOL=0Vin=0,NMOS截止、PMOS导通。Vout=VOH=VDDNMOS下拉开关,PMOS上拉开关。CMOS反相器反相器119EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与

82、电气工程系徐太龙CMOS逻辑门电路的输入信号Vin随时间发生变化时,输出信号Vout也要发生变化,输出节点容性负载,输出信号变化要对节点电容充放电,因此输入信号变化不能使输出信号立刻随之变化,需要一定的瞬态响应时间。CMOS反相器反相器120EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙CMOS逻辑门0上升时间tr是输出从0.1VDD上升到0.9VDD所需要的时间;下降时间tf是输出从0.9VDD下降到0.1VDD所需要的时间。CMOS反相器反相器121EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程

83、系徐太龙CMOS逻辑门传输延迟时间有两种情况:tpHL和tpLH。在CMOS电路中电路的工作速度决定于信号通过电路的传输延迟时间,下图说明了传输时间的定义。CMOS反相器反相器122EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙CMOS逻辑门tpHL表示从输入信号上升边的50%到输出信号下降边的50%所经过的延迟时间,也叫做输出从高向低转换的传输延迟时间;tpLH表示从输入信号下降边的50%到输出信号上升边的50%所经过的延迟时间,也叫做输出从低向高转换的传输延迟时间。电路的平均传输延迟时间CMOS反相器反相器123EDA技术教程电子技术电子

84、技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙CMOS逻辑门负载电容CMOS反相器反相器124EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙CMOS逻辑门则电路的最高工作频率CMOS电路的最高工作路的最高工作频率率125EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙CMOS逻辑门下来开关网络(Pull-DownNet),PDN上来开关网络(Pull-UpNet),PUN由于NMOS和PMOS的互补性能,无论在什么输入条件下,上拉开关网络和下拉开关网络都不会同时形成导

85、通电路。因此,静态CMOS逻辑门和CMOS反相器一样可以获得最大的逻辑摆幅,在稳态情况下没有直流通路。静静态CMOS逻辑电路路126EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙CMOS逻辑门CMOS与非与非门127EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙CMOS逻辑门CMOS或非或非门128EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙CMOS逻辑门静静态CMOS逻辑电路路静态CMOS逻辑门是在CMOS反相器的基础上扩展而成。把反相

86、器中单个的PMOS管用多个PMOS管构成的上拉网络代替,把反相器中单个的NMOS管用多个NMOS管构成的下拉网络代替。对NMOS下拉网络的构成规律如下:NMOS管串联实现与操作;NMOS管并联实现或操作。PMOS上拉网络的构成规律如下:PMOS管串联实现或操作;PMOS管并联实现与操作。电路最终输出还要对上述操作求反,因此实现的是最终带非的逻辑功能。129EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙CMOS逻辑门静静态CMOS逻辑电路路130EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙C

87、MOS逻辑门CMOS传输门逻辑电路路MOS晶体管的源、漏区是完全对称的结构,因此MOS晶体管的源、漏极可以互换。这种双向导通特性给它的应用带来极大的灵活性。对于源、漏极不固定,可以双向传送信号的MOS晶体管叫做传输管(pass transistor)或传输门(TransmissionGate,简称TG)。131EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙CMOS逻辑门V1=VDD,V2=0;V1=0,V2=VDD两种状态双双稳态电路路在时序逻辑电路中作为状态记忆的部件,主要是采用双稳态(bistable)电路,其有2个稳定的工作状态。用2个

88、反相器输入、输出交叉耦合就构成了双稳态电路。132EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙CMOS逻辑门D锁存器和存器和D触触发器器DClkQDClkQClkClkDDQQD锁存器电平触发方式D触发器上升沿触发方式133EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙CMOS逻辑门D锁存器存器当clk为高电平1时,传输门T1导通,输入端d到输出端q形成通路,所以输出q能够反映输入端d的信号;当clk为低电平0时,传输门T1关断,输出q不能反映输入端口d的信号,此时由于传输门T2的导通,输

89、出级有反馈环路,输出端q能够保持原值。134EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙D触触发器器上升沿触发的D寄存器/触发器工作原理1.clk=0时,T1、T4导通,T2、T3截至主锁存器接收数据a=c=d,从锁存器q=b=q锁存数据。2.ck=1时,T1、T4截至,T2、T3导通主锁存器a=c=a锁存数据,从锁存器q=b=a对外即好像在时钟上升沿触发,完成数据采集。CMOS逻辑门135EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙D触触发器器CMOS逻辑门RegisterCLKDQ建

90、立时间(setuptime)tsu是在时钟翻转(对于正沿触发寄存器为01的翻转)之前数据输入(D)必须有效的时间。维持时间(holdtime)thold是在时钟边沿之后数据输入必须仍然有效的时间。防止时钟信号ck和ck偏移引起信号竞争。假设建立和维持时间都满足要求,那么输入端D处的数据则在最坏情况下的传播延时tc-q(相对于时钟边沿)之后被复制到输出端Q。tCLKtDtc- qtholdtsutQDATASTABLEDATASTABLE136EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙数据建立时间ts、数据保持时间th以及延迟时间tp的定义

91、。对所有边沿触发的触发器都有这样的要求。D触触发器器CMOS逻辑门137EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙时序序同步时序电路等效模型静态时序138EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙时序序静态时序DClkQDQClktc-qtholdTtsu触发器、寄存器时序参数139EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙建立时间时序约束时序序静态时序140EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学

92、院电子信息与电气工程系徐太龙保持时间时序约束这一约束保证了时序元件的输入数据在时钟边沿之后能够维持足够的时间,而不会因新进入的数据流而过早地改变。时序序静态时序141EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙同步时钟分布中的偏差和抖动的来源时序序静态时序142EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙时序序静态时序时钟不理想参数的定义时钟偏差(ClockSkew):集成电路中一个时钟翻转的到达时间在空间上的差别通常称为时钟偏差。在一个IC上两点i和j之间的时钟偏差为(i,j)=ti-

93、tj,这里ti和tj是该时钟上升沿相对于参考时钟的位置。时钟抖动(ClockJitter):是指在芯片的某一个给定点上时钟周期发生暂时的变化,即时钟周期在每个不同的周期上可以缩短或加长。脉冲宽度变化(Variationofthepulsewidth)143EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙集成电路中一个时钟翻转的到达时间在空间上的差别通常称为时钟偏差。在一个IC上两点i和j之间的时钟偏差为(i,j)=ti-tj,这里ti和tj是该时钟上升沿相对于参照时钟的位置。考虑上图中在寄存器R1和R2之间传送数据。根据布线方向和时钟源的位置,

94、时钟偏差可以有正有负,如下图。时钟偏差是由时钟路径的静态不匹配以及时钟在负载上的差异造成的。根据定义,各个周期的偏差是相同的。时钟偏差并不造成时钟周期的变化,造成的只是相位的偏移。时钟偏差时序序静态时序144EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙时钟抖动是指在芯片的某一个固定点上时钟周期发生暂时的变化,即时钟周期在每个不同的周期上可以压缩和加长。时钟偏差和抖动ClkClktSKtJS时钟抖动时序序静态时序145EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙考虑时钟偏差的时序约束时序序

95、静态时序146EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙为什么进行静态时序分析静态、动态时序模拟的优缺点p传统上是采用动态仿真来验证一个设计的功能和时序。随着设计规模的增大,验证一个设计所需要的测试向量的数量以指数增长,且这种方法难以保证足够的覆盖率。在大型设计中,如果仅用传统的动态仿真的方法,则时间及工作量都难以承受。p静态时序分析STA(StaticTimingAnalysis)可以降低验证的复杂性。静态时序分析提供了一种针对大规模设计验证的有效解决方法。它可以检查电路中所有时序路径的时序,测试覆盖率可以达到100%。静态时序分析的方

96、法不需要任何测试向量,分析所需要的时间远远少于门级动态仿真。但静态时序与动态仿真相比,也有自身的缺点。静态时序147EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙静态、动态时序模拟的优缺点p静态时序分析不能验证设计的功能,设计功能验证还必须使用功能仿真来实现。另外,静态时序分析只能验证同步时序电路的时序特性,如果设计中含有较多的异步电路,则应该通过门级动态仿真来验证。一般来说,一个设计的验证应该既包括RTL级的功能仿真,也包括静态时序分析和门级动态仿真。静态时序分析和门级动态仿真各有优缺点,互相补充,一起使用可以有效保证电路的正确性和可靠性。

97、为什么进行静态时序分析静态时序148EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙如何进行静态时序分析p使用静态时序分析的方法分析电路时序时,分析工具会首先将设计分解为很多不同的时序路径的集合,然后计算每个时序路径的延时信息,最后检查路径延时,分析其是否满足时序约束。p现在,静态时序分析已经是ASIC设计流程中最重要的一个环节,它能验证设计在时序上的正确性,并决定设计是否能在要求的频率下运行。静态时序149EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙静态时序时序路径(timingpath)

98、p时序路径的起点只能是内部时序单元的时钟端或设计的输入端口;时序路径的终点只能是内部时序单元的数据输入端或设计的输出端口。电路中的时序路径一般有四种:从输入端口到输出端口;从输入端口到触发器的数据输入端D;从触发器的时钟端clk到输出端口;从触发器的时钟端clk到触发器的数据输入端D。150EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙时序路径(timingpath)找出下面电路的时序路径静态时序151EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙时序约束建立时间和保持时间p建立时间(set

99、uptime):数据在时钟信号源到达之前必须要稳定的时间,如果建立时间不满足,数据不能正确打进时序逻辑单元。p保持时间(holdtime):数据在时钟信号源到达之后必须稳定的时间,如果保持时间不够,数据不能被时序逻辑单元正确锁存。静态时序152EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙时序约束建立时间和保持时间静态时序153EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙时序约束建立时间是否违规?静态时序154EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息

100、与电气工程系徐太龙时序约束建立时间是否违规?静态时序155EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙时序约束建立时间是否违规?静态时序156EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙时序约束建立时间是否违规?157EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙静态时序时序约束建立时间是否违规?158EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙静态时序时序约束建立时间是否违规?15

101、9EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙静态时序时序约束建立时间是否违规?160EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙静态时序时序约束建立时间是否违规?161EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙静态时序时序约束建立时间是否违规?162EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙静态时序时序约束保持时间是否违规?163EDA技术教程电子技术电子技术合肥学院电子信息

102、与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙静态时序时序约束保持时间是否违规?164EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙静态时序优化时序电路的方法流水线时钟周期T缩小,工作频率提高,但增加了触发器器件,体现了集成电路中面积换速度的方法。165EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙静态时序优化时序电路的方法流水线ReferencePipelined166EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙第4讲时序逻辑电路

103、的VHDL描述167EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙同步同步时序序逻辑电路路设计的一般步的一般步骤(1)建立原始状态转换图或状态转换表(2)状态化简(3)状态分配(4)选定触发器类型,求输出方程和驱动方程(5)检查自启动能力(6)根据输出方程和驱动方程画出逻辑电路图168EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙(1)建立原始状态转换图或状态转换表(2)状态化简(3)状态分配(4)选定触发器类型,求输出方程和驱动方程(5)检查自启动能力(6)根据输出方程和驱动方程画出逻辑电

104、路图同步同步时序序逻辑电路路设计的一般步的一般步骤169EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙同步计数器的设计同步同步时序序逻辑电路路设计的一般步的一般步骤例例设计模6同步计数器S0=000,S1=001,S2=011,S3=111,S4=110,S5=100,则可列出状态转移表S(t)Q3nQ2nQ1nN(t)Q3n+1Q2n+1Q1n+1Z(t)000001000101100111110111110011010001000001170EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙

105、同步计数器的设计同步同步时序序逻辑电路路设计的一般步的一般步骤171EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙同步计数器的设计同步同步时序序逻辑电路路设计的一般步的一般步骤LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYcounter6ISPORT(rst:INSTD_LOGIC;en:INSTD_LOGIC;clk:INSTD_LOGIC;co:OUTSTD_LOGIC;q:OUTSTD_LOGIC_VECTOR(3DOWNTO0);

106、ENDcounter6;172EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙ARCHITECTUREbhvOFcounter6ISSIGNALq_temp:STD_LOGIC_VECTOR(3DOWNTO0);BEGINPROCESS(rst,en,clk,q_temp)BEGINIFrst=0THENq_temp0);ELSIFen=1THENIF(clkEVENTANDclk=1)IFq_temp“1001”THENq_temp=q_temp+1;ELSEq_temp0);ENDIF;ENDIF;ENDIF;IFq_temp=“1001”

107、THENco=1;ELSEco=0;ENDIF;q=q_temp;ENDPROCESS;ENDbhv;同步计数器的设计同步同步时序序逻辑电路路设计的一般步的一般步骤173EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙D触发器的VHDL描述基本基本时序元件的序元件的VHDL表述表述基本时序元件主要包括不同结构功能和不同用途的触发器和锁存器,它们是时序逻辑电路,乃至实用数字系统构建的最基本单元。174EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙LIBRARYIEEE;USEIEEE.STD_L

108、OGIC_1164.ALL;ENTITYDFF1ISPORT(CLK,D:INSTD_LOGIC;Q:OUTSTD_LOGIC);ENDENTITYDFF1;ARCHITECTUREbhvOFDFF1ISSIGNALQ1:STD_LOGIC;BEGINPROCESS(CLK,Q1)BEGINIFCLKEVENTANDCLK=1THENQ1=D;ENDIF;ENDPROCESS;Q=Q1;ENDARCHITECTUREbhv;D触发器的VHDL描述基本基本时序元件的序元件的VHDL表述表述如何描述如何描述时钟上升沿上升沿175EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学

109、院电子信息与电气工程系徐太龙上升沿检测表达式和信号属性函数EVENTCLKEVENTANDCLK=1是用于检测时钟信号CLK的上升沿的,即如果检测到CLK的上升沿,此表达式将输出TRUE。因此这也可称为边沿敏感表述。关键词EVENT是信号属性函数,用来获得信号行为信息的函数称为信号属性函数。CLKEVENT是对CLK标识符的信号在当前的一个极小的时间段内发生事件的情况进行检测。所谓事件发生,就是CLK在其数据类型的取值范围内发生变化,从一种取值转变到另一种取值(或电平方式)。D触发器的VHDL描述基本基本时序元件的序元件的VHDL表述表述176EDA技术教程电子技术电子技术合肥学院电子信息与电

110、气工程系徐太龙合肥学院电子信息与电气工程系徐太龙VHDL语言中的属性(ATTRIBUTE)语句可以从指定的客体或对象中获得关心的数据或信息,因此可以使VHDL代码更灵活。VHDL中的预定义属性可以划分为两大类:数值类属性和信号类属性。VHDL的属性基本基本时序元件的序元件的VHDL表述表述177EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙数值类属性用来得到数组、块或一般数据的相关信息,例如可用来获取数组的长度和数值范围等。下面是VHDL中预定义的可综合的数值类属性:dLOW返回数组索引的下限值dHIGH返回数组索引的上限值dLEFT返回数组

111、索引的左边界值dRIGHT返回数组索引的右边界值dLENGTH返回矢量的长度值dRANGE返回矢量的位宽范围dREVERSE_RANGE按相反的次序,返回矢量的位宽范围VHDL的属性基本基本时序元件的序元件的VHDL表述表述数值类属性178EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙例如例如SIGNALd:STD_LOGIC_VECTOR(7DOWNTO0);则有有dLOW=0;dHIGH=7;dLEFT=7;dRIGHT=0;dLENGTH=8;dRANGE=(7DOWNTO0);dREVERSE_RANGE=(0TO7)VHDL的属性基

112、本基本时序元件的序元件的VHDL表述表述数值类属性179EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙例如例如SIGNALx:STD_LOGIC_VECTOR(0TO7);则有有FORnINRANGE(0TO7)LOOPFORnINxRANGELOOPFORnINRANGE(xLOWTOxHIGH)LOOPFORnINRANGE(0TOxLENGTH-1)LOOPVHDL的属性基本基本时序元件的序元件的VHDL表述表述数值类属性180EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙对于信号s,

113、有以下预定义的属性:sEVENT如果s的值发生了变化,则返回值为布尔量TRUE,否则返回FALSEsSTABLE如果s保持稳定,没有发生变化,则返回值为布尔量TRUE,否则返回FALSEsACTIVE如果当前s=1,则返回TRUE,否则返回FALSEsQUIET如果在指定的时间内s没有发生变化,则返回TRUE,否则返回FALSEsLAST_EVENT计算上一次事件发生到现在所经历的时间,并返回这个的时间值sLAST_ACTIVE返回最后一次s=1到现在所经历的时间长度值sLAST_VALUE返回最后一次变化前s的值VHDL的属性基本基本时序元件的序元件的VHDL表述表述信号类属性181EDA技

114、术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙大部分信号类属性仅用于仿真,但上面给出的前两个信号类属性(sEVENT和sSTABLE)是可以综合的,其中sEVENT最常用。例如例如下面给出的4个赋值语句都是可综合的,并且是等效的。如果信号clk出现了上升沿,那么将返回TRUE,即括号中的返回值为TRUE。IF(clkEVENTANDclk=1)-EVENT搭配IF使用IF(NOTclkSTABLEANDclk=1)-STABLE搭配IF使用IFRISE_EDGE(clk)-EVENT搭配WAIT使用WAITUNTIL(clkEVENTANDclk=1

115、)-调用一个函数VHDL的属性基本基本时序元件的序元件的VHDL表述表述信号类属性182EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙不完整条件语句与时序电路(1)D触发器的VHDL描述基本基本时序元件的序元件的VHDL表述表述183EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙显然,在VHDL程序中引入时序电路结构的必要条件和关键所在并非是边沿检测表述“clockEVENTANDclock=1”的应用或是其他什么语句结构,而是不完整的任何形式的条件语句的出现,即不局限于IF语句,甚至不局限

116、于顺序语句。不完整条件语句与时序电路(2)D触发器的VHDL描述基本基本时序元件的序元件的VHDL表述表述184EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙含异步复位和时钟使能的D触发器及其VHDL表述基本基本时序元件的序元件的VHDL表述表述LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDFF2ISPORT(CLK,RST,EN,D:INSTD_LOGIC;Q:OUTSTD_LOGIC);ENDENTITYDFF2;ARCHITECTUREbhvOFDFF2ISSIGNALQ1:STD_LOGI

117、C;BEGINPROCESS(CLK,Q1,RST,EN)BEGINIFRST=1THENQ1=0;ELSEIFCLKEVENTANDCLK=1THENIFEN=1THENQ1=D;ENDIF;ENDIF;ENDPROCESS;Q=Q1;ENDARCHITECTUREbhv;185EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙含同步复位控制的D触发器及其VHDL表述基本基本时序元件的序元件的VHDL表述表述LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDFF3ISPORT(CLK,RST,D:INS

118、TD_LOGIC;Q:OUTSTD_LOGIC);ENDENTITYDFF3;ARCHITECTUREbhvOFDFF3ISSIGNALQ1:STD_LOGIC;BEGINPROCESS(CLK,Q1,RST)BEGINIFCLKEVENTANDCLK=1THEN-不完整条件语句IFRST=1THENQ1=0;ELSEQ1=D;-完整条件语句ENDIF;ENDIF;ENDPROCESS;Q=Q1;ENDARCHITECTUREbhv;186EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙基本锁存器及其VHDL表述基本基本时序元件的序元件的VHD

119、L表述表述LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYLTCH2ISPORT(CLK,D:INSTD_LOGIC;Q:OUTSTD_LOGIC);ENDENTITYLTCH2;ARCHITECTUREbhvOFLTCH2ISBEGINPROCESS(CLK,D)BEGINIFCLK=1THENQ1=D;-不完整条件语句ENDIF;ENDPROCESS;ENDARCHITECTUREbhv;(1)CLK从0变为1(2)CLK从1变为0(3)CLK保持0不变(4)CLK保持1不变,透明锁存器187EDA技术教程电子技术电子技术合肥学院电子信息与电气工程

120、系徐太龙合肥学院电子信息与电气工程系徐太龙含清0控制的锁存器及其VHDL表述基本基本时序元件的序元件的VHDL表述表述LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYLTCH3ISPORT(CLK,D,RST:INSTD_LOGIC;Q:OUTSTD_LOGIC);ENDENTITYLTCH3;ARCHITECTUREbhvOFLTCH3ISBEGINPROCESS(CLK,D,RST)BEGINIFRST=1THENQ=0;ELSEIFCLK=1THENQ=D;-不完整条件语句ENDIF;ENDPROCESS;ENDARCHITECTUREbhv;1

121、88EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙VHDL实现时序电路的不同表述基本基本时序元件的序元件的VHDL表述表述IF(CLKEVENTANDCLK=1)AND(CLKLAST_VALUE=0)THENQ=D;-确保CLK的变化是一次上升沿的跳变ENDIF;IFCLK=1ANDCLKLAST_VALUE=0THENQ=D;ENDIF;IFrising_edge(CLK)注意使用此函数必须打开STD_LOGIC_1164程序包THENQ=D;ENDIF;rising_edge()只能用于标准逻辑位数据类型STD_LOGIC的信号。下降沿

122、有:falling_edge(),IFCLK=0ANDCLKLAST_VALUE=1,(CLKEVENTANDCLK=0)AND(CLKLAST_VALUE=1)189EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙双边沿触发时序电路设计讨论基本基本时序元件的序元件的VHDL表述表述VHDL一般不允许对同一信号在时钟的两个边沿进行数据赋值处理,而且无论在同一进程中还是在不同进程中都不允许。190EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙4位二进制加法计数器设计计数器的数器的VHDL设计EN

123、TITYcnt4ISPORT(CLK:INBIT;Q:BUFFERINTEGERRANGE15DOWNTO0);-定义为BUFFER模式,整数类型。(为什么)ENDENTITYcnt4;ARCHITECTUREbhvOFcnt4ISBEGINPROCESS(CLK)BEGINIFCLKEVENTANDCLK=1THENQ=Q+1;-不完整条件语句。(时序电路)ENDIF;ENDPROCESS;ENDARCHITECTUREbhv;191EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙计数器更常用的VHDL表达方式计数器的数器的VHDL设计LIB

124、RARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;-运算符重载ENTITYcnt4ISPORT(CLK:INSTD_LOGIC;Q:OUTSTD_LOGIC_VECTOR(3DOWNTO0);ENDENTITYcnt4;ARCHITECTUREbhvOFcnt4ISSIGNALQ1:STD_LOGIC_VECTOR(3DOWNTO0);-内部加法计数器,信号流动方向不限。BEGINPROCESS(CLK)BEGINIFCLKEVENTANDCLK=1THENQ1=Q1+1;ENDIF;ENDPROCESS;Q=

125、Q1;ENDARCHITECTUREbhv;192EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙计数器更常用的VHDL表达方式计数器的数器的VHDL设计4位加法计数器由两大部分组成:1)完成加1操作的纯组合电路加法器。2)4位边沿触发方式寄存器。此外,输出端有一个反馈通道。它一方面将锁存器中的数据向外输出,另一方面将此数反馈回加1器,以作为下一次累加的基数。从计数器表面上看,计数器仅对CLK的脉冲进行计数,但电路结构却显示了CLK的真实功能只是帮助所存数据,而真正完成加法操作的是组合电路加1器。193EDA技术教程电子技术电子技术合肥学院电子

126、信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙实用计数器的VHDL设计计数器的数器的VHDL设计接下页接下页194EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙实用计数器的VHDL设计计数器的数器的VHDL设计接上页接上页195EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙实用计数器的VHDL设计计数器的数器的VHDL设计1.程序分析196EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙实用计数器的VHDL设计计数器的数器的VHDL

127、设计1.程序分析电路中包含有小于比较器、等于比较器、加1器、4位锁存器各一个,2选1多路选择器两个。1)第一个IF语句中的条件语句IFQ0构成RST在锁存器上的异步清0端“CLR”)。3)语句ELSEQ:=(OTHERS=0构成了多路选择器。4)不完整条件语句与语句Q:=Q+1构成了加1器和寄存器。5)语句IF(LOAD=0)THENQ:=DATA构成了另一多路选择器。6)第二个IF语句构成了组合电路模块:4位数据比较器。197EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙实用计数器的VHDL设计计数器的数器的VHDL设计1.程序分析1)当计

128、数器使能EN为高电平时允许计数;RST为低电平时计数器被清0;2)LOAD同步加载信号;3)凡当计数从7计到8时有一毛刺。198EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙实用计数器的VHDL设计计数器的数器的VHDL设计2.时序模块中的同步控制信号和异步控制信号的构建通常,时序模块总有一些必需的控制信号,如复位、使能、加载(预置)等,它们可根据需要构建成相对于时钟的同步或异步工作模块或称时序性质。计数器中,凡是放在时钟边沿测试条件语句以外(以上)的控制信号都是异步控制信号,如RST;而凡是放在时钟边沿测试条件语句以内(以下)的控制信号都是

129、同步控制信号,如EN;199EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙时序进程或称时钟进程。组合进程Q必须定义为信号,因为在结构体中信号具有全局性,它能将一个进程中的数据带入到另一个进程。实用计数器的VHDL设计计数器的数器的VHDL设计3.另一种描述200EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙移位寄存器的移位寄存器的VHDL设计LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYshiftISPORT(CLK,LOAD,:INSTD_LOG

130、IC;QB:OUTSTD_LOGIC;DIN:INSTD_LOGIC_VECTOR(7DOWNTO0);DOUT:OUTSTD_LOGIC_VECTOR(7DOWNTO0);ENDENTITYshift;ARCHITECTUREbhvOFshiftISSIGNALREG8:STD_LOGIC_VECTOR(7DOWNTO0);BEGINPROCESS(CLK,LOAD)BEGINIFCLKEVENTANDCLK=1THENIFLOAD=1THENREG8=DIN;-由(LOAD=1装载数据)ELSEREG8(6DOWNTO0)=REG8(7DOWNTO1);ENDIF;ENDIF;ENDPRO

131、CESS;QB=REG(0);DOUT0);-复位低电平时,计数寄存器清0ELSEIFCLKEVENTANDCLK=1THEN-测试时钟上升沿IFEN=1THEN-计数使能高电平,允许计数IF(LOAD=0)THENQ:=DATA;ELSE-预置控制低电平,允许加载IFQ0);ENDIF;ENDIF;ENDIF;IFQ=“1001”THENCOUT=1;-当计数为9时,进位输出1ELSECOUT=0;ENDIF;-否则进位输出0DOUTCLK, RST=RST, EN=EN, LOAD=LOAD, DATA=DATA, DOUT=DOUT,COUT=COUT);-例化待测试模块PROCESSB

132、EGIN产生时钟信号的进程,这是个没有敏感信号的永久自动启动的进程CLK=0;WAITFORCLK_P;-CLK首先输出0,30ns后输出1CLK=1;WAITFORCLK_P;-再过30ns后返回ENDPROCESS;RST=1,0AFTER110ns,1AFTER114ns;-RST的电平控制EN=0,1AFTER40ns;-EN电平控制LOAD=1,0AFTER910ns,1AFTER940ns;DATA=“0100”,“0110”AFTER400ns,“0111”AFTER700ns,“0100”AFTER1000ns;-加载数据输出ENDARCHITECTUREone;VHDL测试平

133、台示例平台示例218EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙VHDL测试平台平台219EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙VHDL测试平台平台VHDL测试平台TestBench的主要功能l例化待验证的模块实体。l通过VHDL程序的行为描述,为待测模块实体提供激励信号。l收集待测模块实体的输出结果,必要时将该结果与预置的所期望的理想结果进行比较,并给出报告。l根据比较结果自动判断模块的内部功能结构是否正确220EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥

134、学院电子信息与电气工程系徐太龙VHDL测试平台平台编写VHDL测试平台TestBench注意事项l整个程序的结构基本与常规VHDL程序相同,只是在ENTITY语句中,不必写出端口描述。l为待测模块的所有输入信号定义产生激励信号的信号名和数据类型,且要求其数据类型必须是SIGNAL类型,是作输出用的;这些信号是与待测模块的输入信号相连的。l为待测模块的所有输出信号定义信号名和数据类型,这些信号是与待测模块的输出相连的。221EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙第6讲状态机222EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系

135、徐太龙合肥学院电子信息与电气工程系徐太龙有限状有限状态机机引言引言有限状态机(FiniteStateMachine,FSM)是为时序逻辑电路设计创建的特殊模型技术。对于设计任务顺序明确的电路(如数字控制模块)非常有用。其示意图如下所示:223EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙有限状有限状态机机引言引言u米里(Mealy)型状态机:状态机的输出信号不仅与电路的当前状态有关,还与当前的输入有关。u摩尔(Moore)型状态机:状态机的当前输出信号仅仅由当前状态决定。注意:注意:不能一味地追求建立电路的状态机模型,否则可能会使代码更加冗长

136、和容易出错,例如简单计数器。电路要完成的任务或要实现的功能可以进行完整清晰的排列和归类,应该首选使用状态机来实现该电路。通常在ARCHITECTURE中自定义枚举数据类型,包含所有可能出现的系统状态。224EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙有限状有限状态机机设计风格格#1组合逻辑电路和时序逻辑电路分开设计。注意用顺序语句实现组合逻辑电路必须满足:确保在PROCESS中用到的所有输入信号都出现在敏感信号列表中;确保考虑了输入/输出信号的所有可能组合,也就是说,电路的真值表必须在代码中完整地反映出来。225EDA技术教程电子技术电子技

137、术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙有限状有限状态机机设计风格格#1LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;-ENTITYISPORT(input:IN;reset,clock:INSTD_LOGIC;output:OUT);END;-ARCHITECTUREOFISTYPEstateIS(state0,state1,state2,state3,)SIGNALpr_state,nx_state:state;BEGIN-时序逻辑电路部分-用用户自定自定义的枚的枚举数据数据类型型226EDA技术教程电子技术电子技术合肥学院电子

138、信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙-时序逻辑电路部分-PROCESS(reset,clock)BEGINIF(reset=1)THENpr_state=state0;ELSIF(clockEVENTANDclock=1)THENpr_stateIF(input=)THENoutput=;nx_stateIF(input=)THENoutput=;nx_state=state2;ELSEENDIF;.ENDCASE;ENDPROCESS;END;228EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙有限状有限状态机机设计风格

139、格#1LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;-ENTITYsimple_fsmISPORT(a,b,d,clk,rst:INBIT;x:OUTBIT);ENDsimple_fsm;ARCHITECTUREsimple_fsmOFsimple_fsmISTYPEstateIS(stateA,stateB);SIGNALpr_state,nx_state:state;BEGIN-时序逻辑电路部分-PROCESS(rst,clk)BEGINIF(rst=1)THENpr_state=stateA;ELSIF(clockEVENTANDclock=1)THENp

140、r_statex=a;IF(d=1)THENnx_state=stateB;ELSE nx_state x=b;IF(d=1)THENnx_state=stateA;ELSE nx_state = stateB;ENDIF;ENDCASE;ENDPROCESS;ENDsimple_fsm;有限状有限状态机机设计风格格#1例(续)例(续)230EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙有限状有限状态机机状态机设计风格#1状态机设计风格#2231EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙

141、有限状有限状态机机设计风格格#2LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;-ENTITYISPORT(input:IN;reset,clock:INSTD_LOGIC;output:OUT);END;-ARCHITECTUREOFISTYPEstateIS(state0,state1,state2,state3,)SIGNALpr_state,nx_state:state;SIGNALtemp:);BEGIN232EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙-时序逻辑电路部分-PROCESS(reset,

142、clock)BEGINIF(reset=1)THENpr_state=state0;ELSIF(clockEVENTANDclock=1)THENoutput=temp;pr_stateIF(input=)THENtemp=;nx_stateIF(input=)THENtemp=;nx_state=state2;ELSEENDIF;.ENDCASE;ENDPROCESS;END;与#1相比,差别为#2中引入了内部信号temp,将输出结果存储起来,只有当所需的时钟边沿到来时才将它赋给输出端口。234EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙

143、有限状有限状态机机设计风格格#2例例LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;-ENTITYsimple_fsmISPORT(a,b,d,clk,rst:INBIT;x:OUTBIT);ENDsimple_fsm;ARCHITECTUREsimple_fsmOFsimple_fsmISTYPEstateIS(stateA,stateB);SIGNALpr_state,nx_state:state;SIGNALtemp:BIT;BEGIN-时序逻辑电路部分-PROCESS(rst,clk)BEGINIF(rst=1)THENpr_state=stateA;EL

144、SIF(clockEVENTANDclock=1)THENx=temp;pr_statetemp=a;IF(d=1)THENnx_state=stateB;ELSEnx_statetemp=b;IF(d=1)THENnx_state=stateA;ELSE nx_state = stateB;ENDIF;ENDCASE;ENDPROCESS;ENDsimple_fsm;例(续)例(续)有限状有限状态机机设计风格格#2236EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙有限状有限状态机机状状态机机编码风格格u二进制编码:默认方式优点:需要的寄存

145、器数量最少,n个寄存器就可以对2n个状态进行二进制编码。缺点:需要更多的外部辅助逻辑,并且速度较慢。u独热码(OneHot)优点:需要最少的辅助逻辑并具有最快的速度。缺点:需要的寄存器数量最多,n个状态就需要n个寄存器。u双热编码方式每一次状态变化会带来两个位的跳变,n个寄存器实现对n(n-1)/2个状态编码。注意:寄存器资源丰富的FPGA使用独热码,而AISC使用二进制编码。237EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙有限状有限状态机机状状态机机编码风格格状状态二二进制制双双热独独热state0000000110000_0001st

146、ate1001001010000_0010state2010010010000_0100state3011100010000_1000state4100001100001_0000state5101010100010_0000state6110100100100_0000state7111011001000_0000238EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙第7讲器件IIFPGA工作原理与IP核239EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙MOS存存储器器分类MOS存储器主要

147、分为两大类:随机存取存储器(RandomAccessMemory,简称RAM)只读存储器(ReadOnlyMemory,简称ROM)随机存取存储器又叫做挥发性存储器,因为一断电它的存储内容就不存在了。只读存储器又叫做不挥发性存储器,它的存储内容可以长期保持,至少保持10年以上。240EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙分类RAM又分为动态随机存取存储器(DynamicRandomAccessMemory,简称DRAM)和静态随机存取存储器(StaticRandomAccessMemory,简称SRAM)。DRAM是靠电容存储信息,因

148、此信息保持时间短暂,为防止存储信息丢失,必须定期刷新。DRAM的优点是单元电路简单,面积小,因而有利于提高集成密度。由于DRAM集成度高、功耗低,适合于计算机的内存。SRAM采用静态存储方式,靠双稳态电路存储信息,信息存储可靠,只要不断电存储信息就不会丢失。SRAM单元电路复杂,占用面积大,因此集成度不如DRAM高。由于SRAM工作速度快,常用来作高速缓冲存储器(cache)。MOS存存储器器241EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙存储器的总体结构MOS存存储器器存储单元阵列、译码器、I/O缓冲器、时钟和控制电路242EDA技术教

149、程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙存储单元阵列MOS存存储器器存储单元阵列构成存储器的核心。每个存储单元可以存储1位二进制信息。存储器的集成度就是指存储单元的数量,也就是存储器的容量。一般存储单元都排成方阵。例如一个4KB的存储器有4096个存储单元,这些单元可以排成64行64列的方阵。存储器容量一般都是4倍数的增长。一字多位存储方式,1K4b可以存储1024个字,每个字有4位,因此总的存储容量仍然是4096。243EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙译码器MOS存存储器器 要对存

150、储器的某个存储单元进行读/写操作,必须通过译码器选中要操作的单元。存储器中的译码器的作用就是对单元进行选择。对大容量存储器一般都是二维译码,通过行译码器选择行,再通过列译码器进行列选择,选中的行和列交叉处的单元就是选中的单元。例如上面提到的4Kb(每字一位)存储器有64行,每行64个单元。行译码器就是一个6-64二进制译码器。由6个行地址A0-A5组成64组二进制代码,每一组代码对应一行,当给出一组6位行地址码就选中相应的一行。然后再用一组6位列地址码从64列中选出对应的一个单元。244EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙译码器MO

151、S存存储器器如果是一字多位的存储器,若存储N个字,根据N=2n,则总共需要n个地址。再根据单元的排列确定行地址和列地址的数目。例如1K4b的存储器,单元仍是排成64行、64列。1024个字总共需要10个地址,6个行地址和4个列地址。字线和位线的概念。245EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙DRAM单元结构和工作原理MOS存存储器器1968年Dennard提出了单管单元结构,仅用一个MOS管和一个电容(1T1C)构成一个存储单元,从而使DRAM单元有了一个突破性变革。栅极接字线,漏极接位线。246EDA技术教程电子技术电子技术合肥学

152、院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙DRAM单元结构和工作原理MOS存存储器器当需要对某个单元写入信息时,使单元连接的字线为高电平,从而使单元门管导通,使存储电容和位线连通。如果要写入“1”,则位线是高电平VDD,通过门管向存储电容充电,使S点达到高电平。若字线高电平也是VDD,则存储结点的高电平是VDD-VTN。如果要写入“0”,则位线是低电平0,通过门管对存储电容放电。因为NMOS管传输低电平没有损失,因此单元存储的低电平是0。247EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙DRAM单元结构和工作原理MOS存

153、存储器器如果要读取某个单元的信息,也要选中单元连接的字线。读操作需要先对位线预充电,一般位线预充到参考电平由于位线存在一定的寄生电容CB,因此读出过程实际是存储电容和位线电容电荷分享的过程,如图所示。若单元存“0”,则读出后位线和单元的信号变为若单元存“1”,则读出后位线和单元的信号变为一般CB比CS大十几倍,因此读出的信号非常微弱。248EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙SRAM单元结构和工作原理MOS存存储器器SRAM是采用双稳态电路存储信息,因此信息存储可靠,只要不断电存储信息可以长期保持。双稳态电路是由2个反相器构成,需要

154、4个MOS管,再加上控制单元存取的2个门管,SRAM单元一般是6个MOS管,因此单元面积远比DRAM单元大。249EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙SRAM单元结构和工作原理MOS存存储器器目前SRAM普遍采用CMOS6管单元。工作原理如下:对没选中的单元,字线是低电平,2个门管截止,单元和外界隔离,靠双稳态电路保持信息。若单元存“1”,则V1=VOH=VDD,V2=0;若存“0”则相反。写入信息时,该单元的字线为高电平,使门管M5和M6导通。若写“1”则VBL=VDD,VBL=0,使V1充电到高电平,V2放电到低电平,从而写入信

155、息。读操作时,位线BL和BL都预充电到高电平VDD,且字线为高电平。若读“1”V1=VOH,V2=0,使M1截止,位线BL不能放电,而另一侧M2和M6都导通,对位线BL放电;若读“0”则位线BL保持高电平,而BL通过M1和M5放电。250EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙PLD分分类CPLD与与FPGA的的结构原理构原理按集成度分类251EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙PLD分分类结构分类乘积项结构器件,其基本结构为“与-或”阵列,大部分简单PLD和CPLD属于这个

156、范畴。基于查找表结构的器件,由简单的查找表组成可编程门,再构成阵列形式,多数FPGA属于此类器件。CPLD与与FPGA的的结构原理构原理252EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙PLD分分类从编程工艺上划分:1)熔丝(Fuse)型器件。2)反熔丝(Antifuse)型器件。3)EPROM型。紫外线擦除电可编程逻辑器件。4)EEPROM型。电可擦写编程器件。5)SRAM型。断电后信息丢失,再次上电需要再次编程(配置),需要专用器件来完成这类配置操作。6)Flash型。编程次数达到上万次以上,且掉电后不需要重新配置。CPLD与与FPGA

157、的的结构原理构原理253EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙逻辑元件符合表示元件符合表示CPLD与与FPGA的的结构原理构原理254EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙逻辑元件符合表示元件符合表示CPLD与与FPGA的的结构原理构原理255EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙CPLD与与FPGA的的结构原理构原理CPLD结构原理构原理256EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院

158、电子信息与电气工程系徐太龙CPLD与与FPGA的的结构原理构原理FPGA结构原理构原理FPGA使用可编程的查找表(LookUpTable,LUT)结构,LUT是可编程的最小逻辑构成单元。大部分FPGA采用SRAM(静态随机存储器)的查找表逻辑形成结构,就是用SRAM来构成逻辑函数发生器。一个N输入LUT可以实现N个输入变量的任何逻辑功能。一个N输入的查找表,需要SRAM存储N个输入构成的真值表,需要用2的N次幂个位的SRAM单元。显然N不能太大,否则LUT的利用率很低,输入变量比较多时,必须用数个查找表分开实现。Xilinx和Altera的FPGA器件都是采用SRAM查找表构成。257EDA技

159、术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙CPLD与与FPGA的的结构原理构原理FPGA结构原理构原理258EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙CPLD与与FPGA的的结构原理构原理硬件硬件测试CPLD、FPGA和ASIC的规模越来越大,复杂程度也越来越高,特别在FPGA应用中,测试显得越来越重要。在“软”的方面,逻辑设计的正确性需要验证,包括功能级和种种内部或I/O上的时延特性;在“硬”的方面,首先在PCB板级需要测试引脚的连接问题,其次I/O功能也需要专门的测试。259EDA技术教

160、程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙CPLD与与FPGA的的结构原理构原理硬件硬件测试内部逻辑测试对于CPLD、FPGA的内部逻辑测试是应用设计可靠性的重要保证。由于设计的复杂性,内部逻辑测试面临越来越多的问题。设计者通常不可能考虑周全,这就需要在设计时加入用于测试的专用逻辑,即进行可测试性设计(DesignForTest,DFT),在设计完成后用来测试关键逻辑。有的FPGA厂商提供一种技术,在可编程逻辑器件中可动态载入某种逻辑功能模块,与EDA工具软件相配合提供一种嵌入式逻辑分析仪,以帮助测试工程师发现内部逻辑问题。Altera的Signal

161、TapII技术是典型代表之一。260EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙CPLD与与FPGA的的结构原理构原理硬件硬件测试JTAG边界扫描随着微电子技术、微封装技术和印刷板制造技术的发展,印制电路板变得越来越小,密度越来越大,复杂程度越来越高,层数不断增加。传统的探针测试方法不在有效。20世纪80年代,联合测试行动组(JointTestActionGroup,JTAG)开发了IEEE1149.1-1990边界扫描测试技术规范。该规范提供了有效的测试引线间隔致密的电路板上集成电路芯片的能力。大多数CPLD/FPGA厂家的器件遵守IEE

162、E规范,并为输入引脚和输出引脚以及专用配置引脚提供了边界扫描测试(BoardScanTest,BST)的能力。261EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙CPLD与与FPGA的的结构原理构原理硬件硬件测试JTAG边界扫描262EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙CPLD与与FPGA的的结构原理构原理Altera的的FPGA配置方式配置方式FPGA正常工作时,它的配置数据(下载进去的逻辑信息)存储在SRAM中。由于SRAM的易失性,每次加电时,配置数据都必须重新下载。Alte

163、ra主动配置方式主动配置方式由FPGA器件引导配置操作过程,他控制着外部存储器和初始化过程,在实用系统中,多数情况下必须由FPGA主动引导配置操作过程,这时FPGA将主动从外围专用存储芯片中获得配置数据,而此芯片中的FPGA配置信息是用普通编程器将设计所得的POF格式的文件烧录进去的。Altera被动配置方式由外部计算机或控制器控制配置过程。在普通实验系统或评估系统中,通常用计算机或控制器进行调试,可以使用被动配置。263EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙CPLD与与FPGA的的结构原理构原理Altera的的FPGA配置方式配置方

164、式传统设计数字系统时,把器件焊接在电路板上是设计的最后一个步骤,当设计存在问题并得到解决后,设计者往往不得不重新设计印制电路板,设计周期被无谓地延长了,设计效率也很低。CPLD、FPGA的出现改变了这一切。现在,人们在逻辑设计时可以在未设计具体电路时,就把CPLD和FPGA焊接在印制电路板上,然后在设计调试时可以一次又一次随心所欲地改变整个电路的硬件逻辑关系,而不必改变电路板的结构。这一切都有赖于CPLD、FPGA的在系统下载或重新配置功能。目前常见的大规模可编程逻辑器件的编程工艺有三种:1)基于电可擦除存储单元的EEPROM或Flash技术。CPLD一般采用此技术,掉电后,编程信息可保存。2

165、)基于SRAM查找表的编程单元。大多数FPGA采用此技术,掉电后,信息丢失,下次上电后,需要重新载入编程信息。该类器件的编程一般称为配置。3)基于一次性可编程反熔丝编程单元。264EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙CPLD与与FPGA的的结构原理构原理Altera的的FPGA配置方式配置方式对于基于SRAMLUT结构的FPGA器件,由于是易失性器件,只能进行在线可重配置方式(In-CircuitReconfigurability,ICR)。FPGA特殊的结构使之需要在上电后必须进行一次配置。电路可重配置是指允许在器件已经配置好的情

166、况下进行重新配置,以改变电路逻辑结构和功能。FPGA可使用多种配置模式,通过模式选择引脚MSEL上设定的电平来决定。1)配置器件模式如用EPC器件进行配置。2)PS(PassiveSerial,被动串行)模式:MSEL都为0。3)PPS(PassiveParallelSychronous,被动并行同步)模式4)PPA(PassiveParallelAsychronous,被动并行异步)模式5)PSA(PassiveSerialAsychronous,被动串行异步)模式6)JTAG模式:MSEL都为07)AS(ActiveSerial,主动串行)模式。265EDA技术教程电子技术电子技术合肥学院

167、电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙CPLD与与FPGA的的结构原理构原理Altera的的FPGA配置方式配置方式FPGA专用配置器件266EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙CPLD与与FPGA的的结构原理构原理Altera的的FPGA配置方式配置方式使用单片机配置FPGA267EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙第8讲脉冲单元电路268EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙脉冲脉冲单元

168、元电路路脉冲信号脉冲波形实际的矩形脉冲波形王毓银-数字电路逻辑设计(第二版)-高等教育出版社269EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙脉冲脉冲单元元电路路脉冲电路脉冲电路是用来产生和处理脉冲信号的电路。可以用分立晶体管、场效应管作为开关和RC或RL电路构成,也可以有集成门电路或集成运算放大器和RC充、放电电路构成。常用的有脉冲波形的产生、变换、整形等电路,如双稳态触发器、单稳态触发器、自激多谐振荡器、射极耦合双稳态触发器(施密特电路)及锯齿波电路。270EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息

169、与电气工程系徐太龙VinVoutCLVDD脉冲脉冲单元元电路路两级CMOS反相器构成的施密特触发器CMOS反相器的阈值电压271EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙CMOS反相器施密特触发器脉冲脉冲单元元电路路两级CMOS反相器构成的施密特触发器272EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙脉冲脉冲单元元电路路TTL门构成的施密特触发器CMOS低电平VOL=0V,TTL低电平VOL=0.3V273EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息

170、与电气工程系徐太龙波形变换脉冲整形脉冲鉴幅脉冲脉冲单元元电路路施密特触发器的应用274EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙脉冲脉冲单元元电路路微分型单稳态触发器单稳态触发器是广泛应用于脉冲整形、延时和定时的常用电路,它有稳态和暂稳态两个不同的工作状态。TTL微分型275EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙脉冲脉冲单元元电路路TTL微分型微分型单稳态触发器276EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙脉冲脉冲单元元电

171、路路TTL积分型积分型单稳态触发器277EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙脉冲脉冲单元元电路路施密特触发器构成单稳态触发器278EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙脉冲脉冲单元元电路路电容正反馈多谐振荡器多谐振荡器是一种自激振荡器,在接通电源后,不需要外加触发信号,能自动地产生矩形脉冲。由于矩形波形中含有丰富的高次谐波,故习惯称为多谐振荡器。它是常用的矩形脉冲产生电路。279EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太

172、龙脉冲脉冲单元元电路路电容正反馈多谐振荡器280EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙脉冲脉冲单元元电路路带有RC定时电路的环形振荡器281EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙脉冲脉冲单元元电路路晶体稳频的多谐振荡器在要求多谐振荡器的频率稳定度较高的情况下,可以采用晶体来稳频。石英晶体具有一个极其稳定的串联谐振频率fs。在这频率的两侧,晶体的电抗值迅速增大。所以,把晶体串入两级正反馈电路的反馈支路中,则振荡器只有在这个频率fs时满足起振条件而起振。门G3整形。282EDA技

173、术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙脉冲脉冲单元元电路路施密特触发器构成的多谐振荡器283EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙555定定时器及其器及其应用用555定时器的电路结构284EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙555定定时器及其器及其应用用用555定时器构成施密特触发器285EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙555定定时器及其器及其应用用用555

174、定时器构成施密特触发器286EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙555定定时器及其器及其应用用用555定时器构成积分型单稳态触发器287EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙555定定时器及其器及其应用用用555定时器构成多谐振荡器施密特触发器构成多谐振荡器555定时器构成施密特触发器555定时器构成多振荡器288EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙555定定时器及其器及其应用用用555定时器构成多谐振荡器555

175、定时器构成施密特触发器555定时器构成多振荡器555定时器构成多振荡器289EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙555定定时器及其器及其应用用用555定时器构成多谐振荡器555定时器构成多振荡器290EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙555定定时器及其器及其应用用用555定时器构成多谐振荡器291EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙第9讲模数转换器和数模转换器292EDA技术教程电子技术电子技术合肥学院电子信

176、息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙数模转换器(DAC)293EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙概述概述数字控制系统数字控制系统方框图A/D转换器是将模拟信号转换为数字信号的器件,又称为ADC(AnalogtoDigitalConverter)。D/A转换器则是将数字信号转换为模拟信号的器件,又称为DAC(DigitaltoAnalogConverter)。A/D转换器和D/A转换器都是随着数字计算机技术的发展而发展起来的。294EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电

177、气工程系徐太龙概述概述数据传输系统数据传输系统方框图295EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙数模数模转换器(器(DAC)数模转换原理和一般组成DAC输出特性(k为转换比例系数)LSB(LeastSignificantBit):最低码位,其所代表的位权值决定了两个相邻数码转换出的电压值之间的差值,它是信息所能分辨的最小量。FSR(FullScaleRange):对应于最大输入数字量的最大电压输出值(绝对值)。图中1LSB=1kVFSR=15kV数模转换原理296EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院

178、电子信息与电气工程系徐太龙数模数模转换器(器(DAC)数模转换原理和一般组成DAC的一般组成DAC原理方框图用存于数字寄存器的数字量的各位数码,分别控制对应位的模拟电子开关,使数码为1的位在位权网络上产生与其位权成正比的电流值,再由运算放大器对各电流值求和,并转换成电压值。根据位权网络的不同,可以构成不同类型的DAC。297EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙数模数模转换器(器(DAC)权电阻网络DAC电路结构权电阻网络DACD=0时,电子开关S掷向右端,使电阻接地,无电流流过电阻;D=1时,电子开关S掷向左端,使电阻与VREF接通

179、,有电流流过电阻;2iR称为权电阻。某位权电阻的阻值大小和该位的权值成反比。298EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙数模数模转换器(器(DAC)权电阻网络DAC工作原理转换精度取决于基准电压VREF以及模拟电子开关、运算放大器和各权电阻值的精度。它的缺点是各权电阻的阻值都不相同,位数多时,其阻值相差甚远,这给保证精度带来很大困难,特别是对于集成电路的制作很不利,因此在集成DAC中很少单独使用该电路。299EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙数模数模转换器(器(DAC)权

180、电阻网络DAC工作原理例例:4位DAC如图所示,设基准电压VREF=-8V,2RF=R,试求输入二进制数D3D2D1D0=1101时,输出的电压值以及LSB和FSR的值。300EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙数模数模转换器(器(DAC)权电阻网络DAC具有双极性输出的权电阻网络DAC例例:DAC如图所示,设基准电压VREF=-8V,VB=-VREF=8V,2RF=R,如果要使当D2D1D0=100时,输出vO=0,求RB的值,并列出所有输入3位二进制数码对应的输出电压值。301EDA技术教程电子技术电子技术合肥学院电子信息与电气

181、工程系徐太龙合肥学院电子信息与电气工程系徐太龙数模数模转换器(器(DAC)R-2R倒T形电阻网络DAC电路结构及工作原理和权电阻网络比较,由于它只有R、2R两种阻值,从而克服了权电阻阻值多,且阻值差别大的缺点。工作速度快、应用较多的一种。302EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙数模数模转换器(器(DAC)电路结构及工作原理单值电流型网络DAC303EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙数模数模转换器(器(DAC)DAC集成片AD7524简介集成DAC及其应用举例该片的主要

182、引脚有:VDD(供电电源正端);GND(地端);VREF(基准电源端);RF(反馈电阻端);D7-D0(数据输入端);OUT1、OUT2(R-2R电阻网络的电流输出端);CS(片选端);WR(写输入控制端)。当CS=WR=0时,输入数据D7-D0可以存入8D锁存器;CS和WR不同时为0时,不能写入数据,锁存器保持原存数据不变。2R支路的电流经模拟电子开关流向电流输出端OUT1、OUT2。OUT1通常外接运算放大器的负输入端;OUT2接地。304EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙数模数模转换器(器(DAC)AD7524用于数模转换集

183、成DAC及其应用举例305EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙数模数模转换器(器(DAC)AD7524构成数字衰减器集成DAC及其应用举例306EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙数模数模转换器(器(DAC)转换精度DAC的转换精度与转换速度307EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙数模数模转换器(器(DAC)转换精度DAC的转换精度与转换速度308EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太

184、龙合肥学院电子信息与电气工程系徐太龙数模数模转换器(器(DAC)转换精度DAC的转换精度与转换速度309EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙数模数模转换器(器(DAC)转换精度DAC的转换精度与转换速度310EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙数模数模转换器(器(DAC)转换速度DAC的转换精度与转换速度311EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙模数转换器(ADC)312EDA技术教程电子技术电子技术合肥学院电

185、子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙模数模数转换器(器(ADC)取样、保持模数转换基本原理当取样脉冲输入端S(t)=1时,S接通,A1、A2组成电压跟随器,vO=vI;当S(t)=0时,S断开,由于A2接成电压跟随器,输入级又有场效应管,输入阻抗极高,使C上的电压保持不变,vO也不变;另外,VB端是偏置输入端,可调整RP可以校准输出电压的零点,使vI=0时,vO=0。313EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙模数模数转换器(器(ADC)量化、编码模数转换基本原理模拟信号经取样、保持而抽取的取样电压值,就是在t1

186、、t2、t3、时刻vI的瞬时值。把取样电压化为量化单位的整数倍,这一过程称为量化,=1LSB。把量化的结果转化为对应的代码,称为编码。vI的对应数字量可又下面两式(两种方法)求出,然后把十进制转换为二进制。两种方法的误差分别是0.5和。314EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙模数模数转换器(器(ADC)量化、编码模数转换基本原理舍去小数法四舍五入法完成量化编码工作的电路是ADC。间接ADC:vI时间或频率数字量;时间双积分型。直接ADC:vI数字量;并联比较型ADC和逐次逼近型ADC。315EDA技术教程电子技术电子技术合肥学院电

187、子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙模数模数转换器(器(ADC)电路结构并联比较型ADC四部分组成:比较器、分压电阻链、寄存器和优先编码器。3位并联ADC(四舍五入法)316EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙模数模数转换器(器(ADC)工作原理并联比较型ADC比较器将vI划分成8个量化级,=1/7VREF,量化误差1/14VREF。vI过大进入“饱和”状态,不能正常转换。优点:速度快。缺点:成本高、功耗大。vI输入范入范围Q7Q6Q5Q4Q3Q2Q1D2D1D0量化量化值0vI1/14VREF00000000

188、0001/14VREFvI3/14VREF00000010011/7VREF3/14VREFvI5/14VREF00000110102/7VREF5/14VREFvI7/14VREF00001110113/7VREF7/14VREFvI9/14VREF00011111004/7VREF9/14VREFvI11/14VREF00111111015/7VREF11/14VREFvI13/14VREF01111111106/7VREF13/14VREFvIwavewavewavewavewavewavewavewave=0;ENDCASE;count:=count+1;ENDPROCESS;ENDA

189、RCHITECTUREbhv;326EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙典型典型电路路设计信号发生器采用采用FSM进行行设计LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYsignal_gen1ISPORT(clk:INBIT;wave:OUTBIT);ENDENTITYsignal_gen1;ARCHITECTUREbhvOFsignal_gen1ISTYPEstatesIS(zero,one,two,three,four,five,six,seven);SIGNALpresent_sta

190、te,next_state:states;SIGNALtemp:STD_LOGIC;BEGINPROCESS(clk)BEGINIF(clkEVENTANDclk=1)THENpresent_state=next_state;wavetemp=0;next_statetemp=1;next_statetemp=0;next_statetemp=1;next_statetemp=1;next_statetemp=1;next_statetemp=0;next_statetemp=0;next_state=zero;ENDCASE;ENDPROCESS;ENDARCHITECTUREbhv;328

191、EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙典型典型电路路设计七段显示器思路分析:有限状态机设计方法。要求:SSD的各个段连续地按照顺时针方向转动。相邻两段在点亮的时间上略微重叠片刻。每个段上停留80ms(time1),重叠段上停留30ms(time2)。时钟频率1KHz。329EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙典型典型电路路设计七段显示器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYssd_gameISPORT(clk,stop:I

192、NBIT;dout:OUTBIT_VECTOR(6DOWNTO0);ENDENTITYssd_game;ARCHITECTUREbhvOFssd_gameISCONSTANTtime1:INTEGER:=80;CONSTANTtime2:INTEGER:=30;TYPEstatesIS(a,ab,b,bc,c,cd,d,de,e,ef,f,fa);SIGNALpresent_state,next_state:states;SIGNALcount:INTEGERRANGE0TO100;SIGNALflip:BIT;BEGINPROCESS(clk,stop)BEGINIF(stop=1)THEN

193、present_state=a;ELSIF(clkEVENTANDclk=1)THENIF(flip=1ANDcount=time1)OR(flip=0ANDcount=time2)THENcount=0;present_statedout=“1000000”;flip=1;next_statedout=“1100000”;flip=0;next_statedout=“1000000”;flip=1;next_statedout=“1000000”;flip=0;next_statedout=“1000000”;flip=1;next_statedout=“1000000”;flip=0;ne

194、xt_statedout=“1000000”;flip=1;next_statedout=“1000000”;flip=0;next_statedout=“1000000”;flip=1;next_statedout=“1000000”;flip=0;next_statedout=“1000000”;flip=1;next_statedout=“1000000”;flip=1;next_state=a;ENDCASE;ENDPROCESS;ENDARCHITECTUREbhv;331EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙典型典型电路路

195、设计ADC0809采样控制设计332EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙典型典型电路路设计ADC0809采样控制设计(1)IN0IN78路模拟输入,通过3根地址译码线ADDA、ADDB、ADDC来选通一路。(2)D7D0A/D转换后的数据输出端,为三态可控输出,故可直接和微处理器数据线连接。8位排列顺序是D7为最高位,D0为最低位。(3)ADDA、ADDB、ADDC模拟通道选择地址信号,ADDA为低位,ADDC为高位。(4)REF+、REF-正、负参考电压输入端,用于提供片内DAC电阻网络的基准电压。在单极性输入时,REF+=5V,

196、REF-=0V;双极性输入时,REF+、REF-分别接正、负极性的参考电压。333EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙典型典型电路路设计ADC0809采样控制设计(5)ALE地址锁存允许信号,高电平有效。当此信号有效时,ADDA、ADDB、ADDC三位地址信号被锁存,译码选通对应模拟通道。在使用时,该信号常和START信号连在一起,以便同时锁存通道地址和启动A/D转换。(6)STARTA/D转换启动信号,正脉冲有效。加于该端的脉冲的上升沿使转换器清零,下降沿开始A/D转换。(7)EOC转换结束信号,高电平有效。该信号在A/D转换过程

197、中为低电平,其余时间为高电平。(8)OE输出允许信号,高电平有效。高电平时,输出三态门被打开,转换结果D7D0通过数据总线被读走。334EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙典型典型电路路设计ADC0809采样控制设计335EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙典型典型电路路设计ADC0809采样控制设计st0 st1st2st3st4336EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙LIBRARYIEEE;USEIEEE

198、.STD_LOGIC_1164.ALL;-ENTITYADC0809ISPORT(d:INSTD_LOGIC_VECTOR(7DOWNTO0);clock,reset,eoc:INSTD_LOGIC;ale,start,oe,lock_t:OUTSTD_LOGIC;add:OUTSTD_LOGIC_VECTOR(2DOWNTO0);q:OUTSTD_LOGIC_VECTOR(7DOWNTO0);ENDADC0809;-ARCHITECTUREbhvOFADC0809ISTYPEstatesIS(s0,s1,s2,s3,s4);SIGNALpr_state,nx_state:states;SIG

199、NALdata_temp:STD_LOGIC_VECTOR(7DOWNTO0);SIGNALlock:STD_LOGIC;BEGINadd=000;lock_t=lock;-Lowersection-PROCESS(clock,reset)BEGINIFreset=1THENpr_state=s0;ELSIFclockEVENTANDclock=1THENpr_state=nx_state;qale=0;start=0;oe=0;lock=0;nx_stateale=1;start=1;oe=0;lock=0;nx_stateale=0;start=0;oe=0;lock=0;IF(eoc=1)THENnx_state=s3;ELSEnx_stateale=0;start=0;oe=1;lock=0;nx_stateale=0;start=0;oe=1;lock=1;nx_state=s0;IF(lock=1)THENdata_tempale=0;start=0;oe=0;lock=0;nx_state=s0;ENDCASE;ENDPROCESS;ENDbhv;典型典型电路路设计ADC0809采样控制设计338EDA技术教程电子技术电子技术合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙典型典型电路路设计ADC0809采样控制设计339EDA技术教程

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号