EDA课件.ppt
- 文档编号:5885204
- 上传时间:2023-05-09
- 格式:PPT
- 页数:307
- 大小:6.06MB
EDA课件.ppt
《EDA课件.ppt》由会员分享,可在线阅读,更多相关《EDA课件.ppt(307页珍藏版)》请在冰点文库上搜索。
EDA技术实用教程VHDL版,信息技术学院通信工程系,课程相关,考核方式:
考查课程类型:
专业选修课(任选)课程教学学时总学时数:
40学时学时分配:
课堂讲授32学时;实验课8学时,考试方式课堂平时(出勤)10%考试(闭卷)60%实验(报告)30%课堂要求纪律不迟到,不早退作业提问,课程相关,基本教材:
潘松、黄继业,EDA技术实用教程VHDL,科学出版社,2010目的要求本课程是通信类专业的一门很有实用性的技术课程。
本课程旨在使学生了解以硬件描述语言为基础的数字系统设计的基本方法,熟悉现代数字系统的设计工具,通过教学使学生掌握数字系统自上而下的设计方法,通过对多个电子系统实例的学习和设计,使学生能够独立进行中等难度数字系统的设计,为进行应用系统设计和解决实际问题打下基础重点难点VHDL程序的基本结构,利用VHDL进行程序设计,逻辑电路时序设计,现代电子系统设计方法,EDA软件的熟练使用。
第1章概述,1.1EDA技术及其发展1.EDA概念EDA(ElectronicDesignAutomation)在EDA工具软件平台上,对硬件描述语言HDL(HardwareDescriptionLanguage)为系统逻辑描述手段完成的设计文件,自动完成逻辑化简、逻辑分割、逻辑综合、结构综合,以及逻辑优化和仿真测试等功能,实现电子线路系统功能。
第1章概述,1.1EDA技术及其发展1.EDA概念简单来说,用硬件描述语言HDL和EDA软件完成对硬件功能的实现,软件设计借助于EDA软件硬件描述语言(VHDL或Verilog)计算机仿真,硬件设计下载接口PLD芯片,第1章概述,1.1EDA技术及其发展2.EDA发展阶段20世纪70年代:
CAD(计算机辅助设计),计算机代替手工20世纪80年代:
CAE(计算机辅助工程),出现FPGA20世纪90年代:
EDA(电子设计自动化),标准硬件描述语言HDL成熟21世纪自主知识产权IP成为可能EDA软件不断推出更大规模的FPGA和CPLD器件不断推出,第1章概述,1.2EDA技术实现目标最终目标:
完成专用集成电路ASIC和印制电路板PCB的设计1.专用集成电路ASIC可编程逻辑器件FPGA&CPLD:
直接面向用户,灵活性半制定或全制定ASIC:
用户提要求,厂家设计生产,出厂后用户不可更改门阵列ASIC标准单元ASIC全定制ASIC混合ASIC:
即面向用户可编程功能,又含有硬件标准单元模块2.印制电路板PCB,第1章概述,1.3硬件描述语言HDL常用HDL:
VHDL,VerilogHDL,SystemVerilog,SystemCVHDL(主流)1983年,美国国防部创建1987年,IEEE发布第一个标准IEEE10761993年,IEEE发布IEEE1076-1993标准硬件描述语言的业界标准之一相对于Verilog优势语法较严谨有很好的行为级描述能力和一定的系统描述能力相对于Verilog不足代码冗长对数据类型匹配严格对底层描述级别不支持,第1章概述,1.3硬件描述语言HDL(续)VerilogHDL(主流)1983年创建1995年,IEEE制定第一个标准,Verilog1.02001年,IEEE制定第二个标准,Verilog2.0SystemVerilog基于Verilog2001SystemCC+语言的硬件描述扩展,第1章概述,1.4HDL综合1.综合的概念将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配过程2.综合的过程自然语言综合:
自然语言转换到VerilogHDL语言算法表述行为综合:
从算法表述转换到寄存器传输级表述逻辑综合:
从RTL级表述转换到逻辑门的表述结构综合:
从逻辑门表述转换到版图级表述,或转换到FPGA的配置网表文件,第1章概述,1.4HDL综合编译器与综合的比较,第1章概述,1.5基于HDL的自顶向下的设计方法传统的电子设计技术手工设计自底向上低效、低可靠性、成本高昂现代电子设计技术自动设计基于EDA技术自顶向下设计,第1章概述,1.5基于HDL的自顶向下的设计阶段,第1章概述,1.6EDA技术的优势大大降低设计成本,缩短设计周期各类库的支持简化了设计文档的管理设计者拥有完全的自主权设计语言标准化,设计成果通用性最大优势自顶而上设计方案充分利用计算机的自动设计能力,第1章概述,1.7EDA设计流程1.7.1设计输入(原理图/HDL文本编辑)1.图形输入原理图输入:
在EDA软件图形编辑界面上绘制完成特定功能的电路原理图状态图输入:
在EDA软件状态编辑界面上绘制状态图波形图输入:
根据输入和输出的时序波形图2.HDL文本输入:
最基本、最有效和最通用的输入方法1.7.2综合在EDA平台编辑输入HDL文本、原理图或状态图描述,依据给定的硬件结构,进行编译、转化,最终获得门级电路甚至更低层的电路描述网表文件。
第1章概述,1.7EDA设计流程1.7.3适配功能是将由综合器产生的网表文件配置于指定的目标器件中,使之产生最终的下载文件。
1.7.4时序仿真和功能仿真时序仿真接近真实器件仿真,包含器件硬件特性参数,仿真度高功能仿真直接对逻辑功能进行测试,是否满足设计要求,不涉及具体器件的硬件特性1.7.5编程下载将适配生成的下载或配置文件,通过编辑器向FPGA或CPLD下载,进行硬件调试和验证1.7.6硬件测试将载入设计文件的硬件系统进行统一测试,最终验证,改进设计,第1章概述,1.7EDA设计流程,第1章概述,1.9常用EDA工具设计输入编辑器设计输入编辑器可以接受不同的设计输入表达方式,如原理图输入方式、状态图输入方式、波形输入方式以及HDL文本输入方式。
由于HDL的输入方式是文本格式,所以它的输入要比原理图输入简单得多,用普通的文本编辑器即可完成。
HDL综合器HDL综合器把可综合的Verilog/HDL语言转化成硬件电路网表时,一般要经过两个步骤:
第一步是HDL综合器对Verilog/HDL进行分析处理,并将其转成相应的电路结构或模块;第二步是对实际实现的目标器件的结构进行优化。
第1章概述,1.9常用EDA工具仿真器
(1)按仿真器对设计语言不同的处理方式分类,可分为编译型仿真器和解释型仿真器
(2)按处理的硬件描述语言类型,HDL仿真器可分为VHDL仿真器、VerilogHDL仿真器、MixedHDL仿真器和其他HDL仿真器。
(3)按仿真电路描述级别不同,可分为系统级仿真、行为级仿真、RTL级仿真和门级时序仿真。
(4)按仿真是否考虑硬件延时分类,可分为功能仿真和时序仿真。
适配器适配器的任务是完成目标系统在器件上的布局布线。
下载器下载器的功能是把设计下载到对应的实际器件,实现硬件设计。
第1章概述,1.10QuartusII目前比较流行的数字系统EDA软件工具Altera公司的MAXplus和QuartusIIQuartusII是Alter提供的FPGA/CPLD开发集成环境Alter是世界上最大的可编程逻辑器件供应商之一;QuartusII在21世纪初推出,是MAX+plusII的更新换代产品;QuartusII设计工具完全支持Verilog/VHDL的设计流程,内部嵌有Verilog/VHDL逻辑综合器,QuartusII具备仿真功能,QuartusII包括模块化的编译器Lattice公司的ispEXPERTXilinx公司的Foundation和ISE,第1章概述,1.10QuartusII,第1章概述,补充知识:
Max+plus是Altera公司上一代的PLD开发软件,提供的FPGA/CPLD开发集成环境,Altera是世界上最大可编程逻辑器件的供应商之一。
Max+plus界面友好,使用便捷,被誉为业界最易用易学的EDA软件。
在Max+plus上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,它提供了一种与结构无关的设计环境,是设计者能方便地进行设计输入、快速处理和器件编程。
目前Altera已经停止开发MaxplusII,而转向QuartusII软件平台,第1章概述,1.12EDA技术发展趋势在一个芯片上完成系统级的集成已成为可能。
可编程逻辑器件开始进入传统的ASIC市场。
EDA工具和IP核应用更为广泛。
高性能的EDA工具得到长足的发展,其自动化和智能化程度不断提高,为嵌入式系统设计提供了功能强大的开发环境。
计算机硬件平台性能大幅度提高,为复杂的SOC设计提供了物理基础。
第3章,VHDL设计初步,3.1组合电路的VHDL描述,3.1.12选1多路选择器及其VHDL描述1,3.1组合电路的VHDL描述,3.1.12选1多路选择器及其VHDL描述1,3.1组合电路的VHDL描述,3.1.12选1多路选择器及其VHDL描述1,3.1组合电路的VHDL描述,3.1.12选1多路选择器及其VHDL描述11.实体表达端口构成端口类型端口信号属性,3.1组合电路的VHDL描述,3.1.12选1多路选择器及其VHDL描述12.实体名是标识符,由设计者定,最好根据电路功能不应用数字或中文定义不应用与EDA软件工具库中定义好的元件名不能用数字起头3.端口语句和端口信号号用端口语句PORT()引导结尾加分号;,3.1组合电路的VHDL描述,3.1.12选1多路选择器及其VHDL描述14.端口模式IN:
输入端口,单向只读OUT:
输出端口,单向输出INOUT:
双向端口,输入输出BUFFER:
缓冲端口,允许反馈(使用较少)5.数据类型INTEGER类型BOOLEAN类型STD_LOGIC类型BIT类型:
1和0,3.1组合电路的VHDL描述,3.1.12选1多路选择器及其VHDL描述16.结构体表达说明语句说明和定义数据对象、数据类型、元件调用声明并非必需功能描述语句必需,3.1组合电路的VHDL描述,3.1.12选1多路选择器及其VHDL描述17.赋值符号和数据比较符号赋值符号”两边信号类型必须一致数据比较符号“”输出结果是布尔数据类型,取值分别为TRUE真和FALSE伪8.WHEN_ELSE条件信号赋值语句第一个句子具有最高赋值优先级,3.1组合电路的VHDL描述,3.1.12选1多路选择器及其VHDL描述19.关键词VHDL中预定义的有特殊含义的词语不能用来作标识符关键字敏感(特定颜色)大小写不敏感10.标识符用户自定义不分大小写,3.1组合电路的VHDL描述,3.1.12选1多路选择器及其VHDL描述111.规范的程序书写格式最顶层ENTITY_ENDENTITY实体描述语句在最左侧低一层次描述语句向右靠一个TAB键同一语句关键词要对齐12.文件取名和存盘由设计者给定,但文件后缀扩展名“.vhd”建议文件名与模块名一致大小写不敏感不要存在根目录和桌面上,3.1组合电路的VHDL描述,3.1.22选1多路选择器及其VHDL描述2,3.1组合电路的VHDL描述,3.1.22选1多路选择器及其VHDL描述21.逻辑操作符,3.1组合电路的VHDL描述,3.1.22选1多路选择器及其VHDL描述22.标准逻辑位数据类型STD_LOGICBIT数据类型STD_LOGIC数据类型,3.1组合电路的VHDL描述,3.1.22选1多路选择器及其VHDL描述23.设计库和标准程序包4.信号定义和数据对象信号定义内部节点信号,暂存数据节点,不必定义端口数据对象信号SIGNAL变量VARIABLE常量CONSTANT,3.1组合电路的VHDL描述,3.1.32选1多路选择器及其VHDL描述3,3.1组合电路的VHDL描述,3.1.32选1多路选择器及其VHDL描述31.条件语句IF_THEN_ELSEIF语句必须以EDN_IF结束判别表达式可以是一个值,也可以是运算表达式2.进程语句和顺序语句PROCESS引导的语句是进程语句进程敏感信号表进程语句依赖敏感信号的变化所有进程语句是并行语句,任何一个进程语句属于顺序语句,3.1组合电路的VHDL描述,3.1.4半加器及其VHDL描述,3.1组合电路的VHDL描述,3.1.4半加器及其VHDL描述,3.1组合电路的VHDL描述,3.1.4半加器及其VHDL描述,3.1组合电路的VHDL描述,3.1.4半加器及其VHDL描述1.CASE语句,3.1组合电路的VHDL描述,3.1.4半加器及其VHDL描述1.CASE语句WHEN条件句中的选择值或标识符所代表的值必须在CASE表达式的取值范围内,且数据类型必须匹配除非所有条件名的选择值能完整覆盖CASE语句中表达式的取值,否则最末一个条件名的选择必须加上最后一句“WHENOTHERS=”CASE选择值只能出现一次,不允许有相同选择值的条件语句出现CASE语句执行中必须选中,且只能选择中所列条件语句中的一条,3.1组合电路的VHDL描述,3.1.4半加器及其VHDL描述2.标准逻辑矢量数据类型STD_LOGIC_VECTOR定义为标准一维矢量数组,数组中每一个元素的数据类型都是标准逻辑位STD_LOGICSTD_LOGIC_VECTOR可表达电路中并列的多通道端口或节点,或者总线BUSSTD_LOGIC_VECTOR,必须注明数组宽度,即位宽3.并置操作符&操作符&表示将操作数或数组合并起来形成新的数组矢量,3.1组合电路的VHDL描述,3.1.51位二进制全加器及其VHDL描述1位全加器由两个半加器和一个或门连接而成为了连接底层元件形成更高层次的电路设计结构,文件使用例化语句元件例化是VHDL设计实体构成自上而下层次化设计的一个重要途径,3.1组合电路的VHDL描述,3.1.51位二进制全加器及其VHDL描述或门逻辑描述,3.1组合电路的VHDL描述,3.1.51位二进制全加器及其VHDL描述,3.1组合电路的VHDL描述,3.1.6VHDL例化语句第一部分:
元件定义语句将一个现成的设计实体定义为一个元件语句的功能是对待调用的元件作出调用声明端口名表需要列出该元件对外通信的各端口名元件定义语句必须放在结构体的ARCHITECTURE和BEGIN之间,3.1组合电路的VHDL描述,3.1.6VHDL例化语句第二部分:
此元件与当前设计实体中元件间及端口的连接说明元件名为待调用的VHDL设计实体的实体名PORTMAP:
端口映射,端口连接端口名:
元件定义语句中端口名表中已定义好的元件端口名连接端口名:
顶层系统的端口名,3.2基本时序电路的VHDL描述,3.2.1D触发器的VHDL描述最简单、最常用、最具有代表性的时序电路D触发器,是现代数字系统设计的最基本的底层时序单元JK和T触发器是由D触发器构建而来,3.2基本时序电路的VHDL描述,3.2.1D触发器的VHDL描述1.上升沿检测表达式和信号属性函数EVENT关键词EVENT是信号属性函数,包含在STD_LOGIC_1164程序包中信号属性函数:
用来获得信号行为信息的函数测定某信号的跳变情况发生事件:
信号在数据类型的取值范围内发生变化,从一种取值转变到另一种取值,3.2基本时序电路的VHDL描述,3.2.1D触发器的VHDL描述2.不完整条件语句与时序电路时钟信号CLK上升沿出现的情况更新Q1值CLK没有发生变化,不满足IF语句条件Q1值保持不变,存储功能完整条件语句构成组合逻辑电路不完整条件语句产生时序电路,3.2基本时序电路的VHDL描述,3.2基本时序电路的VHDL描述,3.2基本时序电路的VHDL描述,3.2.2VHDL实现时序电路的不同表述上升沿跳变LAST_VALUE也属于信号属性函数,表示最近一次事件发生前的值,3.2基本时序电路的VHDL描述,3.2.2VHDL实现时序电路的不同表述上升沿跳变rising_edge()是VHDL在IEEE库中标准程序包STD_LOGIC_1164内预定义函数,3.2基本时序电路的VHDL描述,3.2.2VHDL实现时序电路的不同表述下降沿跳变CLK=0ANDCLKLAST_VALUE=1falling_edge()CLKEVENTAND(CLK=0)waituntil语句不必列出敏感信号,3.2基本时序电路的VHDL描述,3.2.2VHDL实现时序电路的不同表述上升沿跳变,3.2基本时序电路的VHDL描述,3.2.2VHDL实现时序电路的不同表述电平触发寄存器当CLK处于高电平时,输出Q随D的变化而变化CLK在低电平时Q保持数据不变,3.2基本时序电路的VHDL描述,3.2.3异步时序电路设计多个进程语句构成没有单一主控时钟的时序电路,或不随主控制时钟同步变化应用范围小,3.3计数器的VHDL设计,3.3计数器的VHDL设计,3.3.14位二进制加法计数器设计输入端口:
计数时钟信号CLK,数据类型是二进制逻辑位BIT输出端口:
Q的端口模式BUFFER,数据类型定义为整数类型INTEGERVHDL规定加减法等算术操作符对应的操作数的数据类型只能是INTEGER(除非使用重载函数),3.3计数器的VHDL设计,3.3.2整数类型整数数据类型INTEGER的元素包含正整数、负整数和零使用整数时,VHDL综合器要求必须使用关键词RANGE构成句子整数的表达不加引号,逻辑位或二进制数据必须加引号自然数类型NATURAL是整数类型的子类型,包含0和正整数正整数类型POSITIVE是整数类型的子类型,比NATURAL少一个0INTEGER,NATURAL,POSITIVE定义在VHDL标准程序包STANDARD中,3.3计数器的VHDL设计,3.3.3计数器的其他VHDL表达方式,3.3计数器的VHDL设计,3.3.3计数器的其他VHDL表达方式运算符重载,赋予新的数据类型操作功能,允许不同数据类型间用此运算符进行运算VHDL的IEEE库的STD_LOGIC_UNSIGNED程序包预定的操作符:
加,减,乘,等于,大于等于,小于等于,大于,小于,不等于(/=),逻辑与等,3.3计数器的VHDL设计,3.3.3计数器的其他VHDL表达方式完成加1操作的纯组合电路加法器4位边沿触发方式锁存器,纯时序电路,3.3计数器的VHDL设计,3.3.3计数器的其他VHDL表达方式Q数据格式是十六进制,是Q(3),Q
(2),Q
(1),Q(0),如十六进制数值A,即为1010,3.4实用计数器的VHDL设计,接下页,3.4实用计数器的VHDL设计,接上页,3.4实用计数器的VHDL设计,1.十进制计数器相关语法数据对象变量VARIABLE变量VARIABLE赋值符号“:
=”功能主要用于数据的暂存信号SIGNAL信号SIGNAL赋值符号“=”常量CONSTANT,3.4实用计数器的VHDL设计,2.程序分析进程语句包含两个独立的IF语句第一个IF语句是非完整条件语句,产生计数器的时序电路第二个IF语句产生一个纯组合逻辑的多路选择器电路中包含小于比较器,等于比较器,加1器,4位锁存器,2选1多路选择器,3.4实用计数器的VHDL设计,2.程序分析计数使能EN为高电平时允许计数,RST低电平时计数器被清零加哉信号LOAD是同步加载信号,在CLK上升沿处,将5加载于计数器,由5计数到9,出现第一个进位脉冲计数从7到8有毛刺信号,7(0111)到8(1000)逻辑变化最大,每一位都发生变化,3.4实用计数器的VHDL设计,3.时序模块中的同步控制信号和异步控制信号的构建时序模块一些必需的控制信号:
复位、使能、加载等异步控制信号:
放在时钟边沿测试条件语句以外的控制信号同步控制信号:
放在时钟边沿测试条件语句以内的控制信号4.另一种描述方式两个独立IF语句分别用两个独立的进程语句表达时序进程组合进程,第4章QuartusII应用向导,4.1基本设计流程,4.1.1建立工作库文件夹和编辑设计文件新建一个文件夹不同设计项目最好放在不同文件夹中同一工程的所有文件必须放在同一文件夹不要将文件夹设在计算机已有安装目录中不要建立在桌面上不要将其直接放在安装目录中文件夹名不要用中文文件夹名不要用数字,4.1基本设计流程,4.1.1建立工作库文件夹和编辑设计文件输入源程序File-NewDesignFiles选择VHDLFile,4.1基本设计流程,文件存盘File-Saveas存盘文件名应该与实体名一致,4.1.1建立工作库文件夹和编辑设计文件,4.1基本设计流程,4.1.2创建工程打开并建立新工程管理窗口File-NewProjectWizard第一行:
工程所在工作库文件夹第二行:
工程的工程名第三行:
当前工程顶层文件的实体名,4.1基本设计流程,4.1.2创建工程将设计文件加入工程中单击AddAll按钮单击Add按钮,4.1基本设计流程,4.1.2创建工程选择目标芯片DeviceFamily,选择CycloneIII系列具体芯片EP3C5E144C8,4.1基本设计流程,4.1.2创建工程工具设置EDAToolSettingsEDAdesignentry/synthesistool选择输入HDL类型和综合工具EDAsimulationtool仿真工具EDAtiminganalysistool时序分析工具如果都不做选择,表示仅选择QuartusII自含的所有EDA设计工具结束设置,4.1基本设计流程,4.1.3编译前设置选择FPGA目标芯片Assignments-Settings命令,选择Category下的Device,选择目标芯片EP3C5E144C8选择配置器件的工作方式单击DeviceandPinOptions,选择General,在options选择Auto-restartconfigurationaftererror复选框,FPGA配置失败后能自动重新配置,4.1基本设计流程,4.1.3编译前设置选择配置器件和编程方式Generatecompressedbitstreams复选框选中配置器件EPCS4,配置模式ActiveSerial,4.1基本设计流程,4.1.3编译前设置选择目标器件引脚端口状态双目标端口Dual-PurposePins,nCE0”Useasprogrammingpin”改为”UseasregularI/O”选择确认VHDL语言版本Analysis&SynthesisSettings下的VHDLInput项,选择VHDL-1993,4.1基本设计流程,4.1.4全程编译Processing-StartCompilation如显示错误,可双击,弹出对应层次VHDL文件,改错后再次编译直至排除所有错误发现多条错误,只需要检查和纠正最上面报出错误即可,4.1基本设计流程,4.1.5时序仿真打开波形编辑器File-New,选择VectorWaveformFile,4.1基本设计流程,4.1.5时序仿真设置仿真时间区域Edit-EndTime通常设置时间范围在数十微秒间波形文件存盘,4.1基本设计流程,4.1.5时序仿真将工程的端口信号节点选入波形编辑器中View-UtilityWindows-NodeFinder,4.1基本设计流程,4.1.5时序仿真将工程的端口信号节点选入波形编辑器中Filter下拉列表框选”Pins:
all”将端口节点拖到波形编辑窗口中仿真横坐标在数十微秒数量级,4.1基本设计流程,4.1.5时序仿真编辑输入波形(输入激励信号)单击时钟信号CLK,使之变成蓝色条,单击左列时钟设置键,时钟周期1微秒,占空比50其它EN,LOAD,RST的波形,4.1基本设计流程,4.1.5时序仿真总线数据格式设置和参数设置,4.1基本设计流程,4.1.5时序仿真总线
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 课件