EDA技术及应用(第2版)朱正伟复习资料_第1页
EDA技术及应用(第2版)朱正伟复习资料_第2页
EDA技术及应用(第2版)朱正伟复习资料_第3页
EDA技术及应用(第2版)朱正伟复习资料_第4页
EDA技术及应用(第2版)朱正伟复习资料_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

EDA技术及应用(第2版)朱正伟复习资料第一章1、EDA的定义:以计算机为工作平台,以EDA软件工具为开发环境,以硬件描述语言为设计语言,以ASIC为实现载体的电子产品自动化设计过程。2、EDA的三大特征:硬件描述语言、系统级仿真、综合技术3、EDA的设计方法:自上而下口4、EDA的核心:利用计算机完成电路设计的全程自动化5、常用的EDA工具及其作用:口设计编辑器:一般支持图形输入,HDL文本输入,波形图输入等口仿真器:完成行为模型的表达、电子系统的建模、逻辑电路的验证以及门级系统的测试HDL综合器:将软件描述与给定的硬件结构用某种网表文件的方式对应起来,成为相互的映射关系。6、EDA的设计流程:设计输入(将设计的系统或电路按照EDA开发软件要求的文本方式或图形方式表示出来,并送入计算机的过程。)第二章1、PLD的基本结构:输入缓冲器、与阵列、或阵列、输出缓冲器;电路的核心是由门电路构成的与阵列、或阵列,逻辑函数靠它们实现。与阵列产生乘积项,或阵列产生乘积项之和。2、PLD的分类:简单PLD:口PROM:与门阵列固定,或门阵列可编程。优点:价格低、易编程性能可预测。不足:规模大、速度低、功耗高。PLA:与阵列和或阵列均可编程。特点使用灵活,运行速度慢,价格高,缺少高质量的支持软件,使用不广泛。PAL:与阵列可编程,或阵列固定,即乘积项可若干,数目固定。特点:性能速度较高。有几种固定的输出结构,不同结构对应不同的型号。GAL;即通用阵列逻辑器件,与阵列和PAL的类似,或阵列及输出寄存器则采用OLMC输出逻辑宏单元OLMC最多有8个或项,每个或项最多有32个与项。复杂PLD:口(1)CPLD 复杂可编程逻辑器件(2)FPGA 现场可编程门阵列(3)ISP——在系统可编程逻辑器件3、PLD的互联结构:(1)确定型:除FPGA外的PLD器件布线每次相同。(2)统计型:FPGA每次布线模式不同,设计者提出约束模式。4、PLD相对于MCU的优势:运行速度、复位、程序“跑飞”口5、CPLD/FPGA的优势:高速性、高可靠性、编程方式、标准化设计语言6、常用的可编程逻辑器件:CPLD和FPGA7、CPLD的结构:可编程逻辑功能块(FB);可编程I/O单元;可编程内部连线。CPLD最基本的单元是宏单元,由逻辑阵列、乘积项选择矩阵和可编程触发器组成。8、FPGA器件的内部结构为逻辑单元阵列(LCA)包括:可编程输入/输出模块、核心阵列是可编程逻辑块、可编程内部连线9、FPGA的分类:(1)查找表型FPGA的可编程逻辑块(CLB)是查找表,由查找表构成函数发生器,通过查找表实现逻辑函数,查找表的物理结构是静态存储器(SRAM)。查找表本质上是一个RAM口大部分FPGA都是基于SRAM工艺的,而SRAM工艺的芯片在掉电后信息就会丢失,一定需要外加一片专用配置芯片(2)多路开关型FPGA的可编程逻辑块(CLB)是可配置的多路开关。(3)多路与非门型结构FPGA的结构是基于一个与-或-异或逻辑块。10、可编程逻辑器件的测试技术:(1)内部逻辑测试(2)JTAG边界扫描口边界扫描的引脚功能:TDI——测试数据输入;TDO——测试数据输出;TMS——测试模式选择;TCK——测试时钟输入;TRST——测试复位输入口11、指令寄存器。用来决定是否进行测试或访问数据寄存器操作。旁路寄存器。这个l位寄存器用来提供TDI和TDO的最小串行通道。边界扫描寄存器。由器件引脚上的所有边界扫描单元构成。12、CPLD/FPGA的编程与配置口1)基于电可擦除存储单元的EEPROM或Flah技术。CPLD一般使用此技术进行编程。2)基于SRAM查找表的编程单元。对该类器件,编程信息是保存在SRAM中的,SRAM在掉电后编程信息立即丢失,在下次上电后,还需要重新载入编程信息。因此该类器件的编程一般称为配置。大部分FPGA采用该种编程工艺。3)基于一次性可编程反熔丝编程单元对于基于SRAMLUT结构的FPGA器件,由于是易失性器件使之需要在上电后必须进行一次配置,需要一个加载过程。13、FPGA的配置方式:(1)FPGA专用配置器件(2)使用单片机配置FPGA(3)使用CPLD配置FPGA14、FPGA和CPLD在开发应用上的选择:如果设计中使用到大量触发器,例如设计一个复杂的时序逻辑,那么使用FPGA就是一个很好选择。口同时PLD拥有上电即可工作的特性,而大部分FPGA需要一个加载过程,所以,如果系统要可编程逻辑器件上电就要工作,那么就应该选择PLD。要嵌入。口口核或者DSP模块,选择FPGA。口编程:在逻辑设计时可以在没有设计具体电路时,就把CPLD/FPGA焊接在印制电路板上,然后在设计调试时可以一次又一次地改变整个电路的硬件逻辑关系,而不必改变电路板的结构。配置:在掉电后编程信息立即失效,在下次上电后,还需要重新载入编程信息,此类编程成为配置。第三章1、原理图输入设计方法的编辑规则:1)引脚名称:不区分大小写,第一个字符必须为英文,以后可用下划线、数字等组合下划线前后要有字母或数字“/”“-”“%”都是非法的2)节点名称:显示为一条细线,命名规则与引脚名称相同3)总线名称:显示一条粗线,代表很多节点的组合。名称后加[m..n],m,n均为正数,大小不规定。如addre[0..7]口4)文件名称:任何字符,<32字符,扩展名为.bdf。仿真波形文件的扩展名为.vwf.元件口符号图文件的扩展名为.ym口5)项目名称:项目内相同程序的不同类型文件,名称相同,扩展名不同;功能不同的可用不同文件名,但项目名称必须与最高层的电路设计文件名称相同。2、原理图底层电路设计:原理图由若干个元件组合而成,当有些元件是多个简单元件的组合电路时,为了精确仿真组合元件的特性,必须单独设计组合元件的原理图设计,这种设计称为底层电路设计。增强设计的可读性,避免在设计中出现大量复杂的组合逻辑影响检查和测试效率有利于进行模块复制,需要复制的电路模块可以先封装成底层元件,再在顶层设计中重复调用5、分层设计的要点在底层文件设计完成后执行File|CreateDefaultSymbol命令并编译(quartuII自动完成)口在顶层文件中,调用底层设计时顶层文件不能与底层文件名字相同6、用QuartuII图形编辑方式生成的图形文件的扩展名为.gdf或.bdf。建立工程目录的需注意:文件的路径不能包含汉字,不能用空格保存的文件名不要和库文件名相同,如and2、7402等等7、设置仿真终止时间的意义:规定何时终止施加输入向量。8、设置仿真栅格单位的意义:规定每个栅格的最小时间单位,时间值显示在每个栅格竖线的上方。仿真栅格单位是设置时钟周期的最小单位,即时钟周期最小等于栅格单位,最大等于栅格单位的倍数。第四章1、什么是VHDL:VeryhighpeedintegratedHardwareDecriptionLanguage(VHDL)——超高速集成电路VHSIC)硬件描述语言口2、常用硬件描述语言:常用硬件描述语言有VHDL、Verilog和ABEL语言。对比:(1)逻辑描述层次:层次由高到低依次可分为行为级、RTL级和门电路级;VHDL语言是一种高级描述语言,适用于行为级和RTL级的描述,最适于描述电路的行为;Verilog语言和ABEL语言是一种较低级的描述语言,适用于RTL级和门电路级的描述,最适于描述口门级电路。(2)设计要求:VHDL进行电子系统设计时可以不了解电路的结构细节,设计者所做的工作较少;Verilog和ABEL语言进行电子系统设计时需了解电路的结构细节,设计者需做大量的工作。(3)综合过程:VHDL语言源程序的综合通常要经过行为级一RTL级一门电路级的转化,而Verilog语言和ABEL语言源程序的综合经过RTL级一门电路级的转化。(4)对综合器的要求:VHDL描述语言层次较高,不易控制底层电路,因而对综合器的性能要求较高,Verilog和ABEL对综合器的性能要求较低。3、VHDL的特点:口VHDL主要用于描述数字系统的结构、行为、功能和接口。口(1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力。(2)VHDL具有丰富的仿真语句和库函数。(3)用VHDL完成一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动把VHDL描述设计转变成门级网表。(4)VHDL对设计的描述具有相对独立性。口(5)由于VHDL具有类属描述语句和子程序调用等功能。(6)VHDL的生命周期长,移植性好。4、VHDL程序设计约定:口语句结构描述中方括号“[]”内的内容为可选内容。程序文字的大小写是不加区分的。程序中的注释使用双横线“--”。层次缩进格式:同一层次的对齐,低层次的较高层次的缩进两个字符。各个源程序文件的命名均与其实体名一致。保存的位置一定不能放在根目录下。5、VHDL的基本结构:库、程序包使用说明GENERIC类属说明设PORT端口说明实体(ENTITY)计实结构体说明结构体(ARCHITECTURE)体结构体功能描述配置(CONFIGURATION)口注意:实体名实际上是器件名,最好用相应功能来确定,如counter4b,adder8b。注意不能用prim等库的元件注意:口In信号只能被引用,不能被赋值out信号只能被赋值,不能被引用口buffer信号可以被引用,也可以被赋值简单地说口<=或:=In端口out端口<二或:二口buffer端口(二或:二buffer端口6、结构体(ARCHITECTURE)口结构体(ARCHITECTURE)是设计实体的一个重要部分,结构体将具体实现一个实体。每一个实体都有一个或一个以上的结构体,每个结构体对应着实体不同结构和算法实现方案,其间的各个结构体的地位是同等的,它们完整地实现了实体的行为。实体与结构体的关系:一个设计实体可有多个结构体,代表实体的多种实现方式。各个结构体的地位相同。注:实体名必须是所在设计实体的名字,而结构体名可以由设计者自己选择,但当一个实体具有多个结构体时,同一实体的结构体不能同名。7、功能描述语句结构功能描述语句结构可以含有五种不同类型的、以并行方式工作的语句结构。各语句结构的基本组成和功能分别是:(1)块语句是由一系列并行执行语句构成的组合体。(2)进程语句定义顺序语句模块.(3)信号赋值语句将设计实体内的处理结果向定义的信号或界面端口进行赋值。(4)子程序调用语句用于调用一个已设计好的子程序。(5)元件例化语句对其他的设计实体作元件调用说明。8、CASE语句:表达真值表CASEISWHEN=;……□ENDCASE;9、元件例化语句COMPONENT元件名PORT(端口名表);ENDCOMPONENT;10、并置操作符:&11、BUFFER并非是一种特殊的硬件端口结构,只是一种功能描述,作为内部输出信号可以反馈到实体内部。第五章1、信号与变量的区别:信号最后一次赋值才有效libraryieee;口ueieee.td_logic_1164.all;ueieee.td_logic_unigned.all;entitytviport(a,b,c:intd_logic_vector(3downto0);某,y:outtd_logic_vector(3downto0));endtv;口architecturetv_archoftviignald:td_logic_vector(3downto0);beginproce(a,b,c)begind〈二a;某<=b+d;d〈二c;y〈=b+d;口endproce;运行结果为:某=b+c;y=b+c;proce(a,b,c)口variabled:td_logic_vector(3downto0);begind:二@;某<=b+d;d:=c;y<=b+d;endproce;运行结果为:某=b+a;y=b+c;2、逻辑运算:口SIGNALa,b,c:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALd,e,f,g:STD_LOGIC_VECTOR(1DOWNTO0);SIGNALh,i,j,k:STD_LOGIC;SIGNALl,m,n,o,p:BOOLEAN;...a〈二bANDc;--b、c相与后向a赋值口d<=eORfORg;--两个操作符or相同,不需要加括号口h<二(iNANDj)NANDk;--NAND不属于AND,OR,NOR之中的一种,必须加括号l<=(m某ORn)AND(o某ORp);--操作符不同,必须加括号h<=iANDjANDk;--操作符相同,不必加括号h<=iANDjORk;--操作符不同,未加括号,表达错误a<=bANDe;--b,e的位矢长度不一致,表达错误h<=iORl;...--不同数据类型不能相互作用,表达错误3、VHDL顺序语句:顺序语句(SequentialStaement)和并行语句(ConcurrentStatement)是VHDL程序设计中两大基本描述语句系列。口顺序语句是相对于并行语句而言的,其特点是每一条顺序语句的执行(指仿真执行)顺序是与它们的书写顺序基本一致的。顺序语句只能出现在进程(Proce)和子程序中。在VHDL中,一个进程是由一系列顺序语句构成的,而进程本身属并行语句,在同一设计实体中,所有的进程是并行执行的。然而任一给定的时刻内,在每一个进程内,只能执行一条顺序语句。VHDL有如下六类基本顺序语句:赋值语句;转向控制语句;等待语句;子程序调用语句;返回语句;空操作语句。4、IF语句:口(3)(1)IF条件THENIF条件1THEN语句语句口ENDIF;ELSIF条件2THEN语句(2)IF条件THEN……语句ELSEELSE语句语句ENDIF;ENDIF;CASE语句CASE表达式IS口WHEN值1=>语句A;WHEN值2=>语句B;...口WHENOTHERS=>语句C;ENDCASEFOR循环口FOR循环语句的一般形式为:口[循环标号:]FOR循环变量IN循环次数范围LOOP顺序处理语句ENDLOOP[循环标号];BEGIN【例5-11】--8位奇偶校验口PROCESS(a)电路BEGINLIBRARYIEEE;口tmp<='0';USEIEEE.STD_LOGIC_1164.ALL;FORnIN0TO7LOOPENTITYp_checkIS--FOR循环语句PORT(a:INSTD_LOGIC_VECTOR(7tmp<=tmp某ORa(n);DOWNTO0);ENDLOOP;y:OUTSTD_LOGIC);y<=tmp;ENDp_check;ENDPROCESS;ARCHITECTUREbehaveOFp_checkISENDbehave;SIGNALtmp:STD_LOGIC;6、VHDL并行语句:口其执行方式与书写的顺序无关。在执行中,并行语句之间可以有信息往来,也可以是互为独立、互不相关、异步运行的。每一并行语句内部的语句运行方式可以有2种不同的方式,即并行执行方式(如块语句)和顺序执行方式(如进程语句)。并行语句主要有7种:・进程语句(PROCESSSTATEMENTS);•块语句(BLOCKSTATEMENTS);口・并行信号赋值语句(CONCURRENTSIGNALASSIGNMENTS);•条件信号赋值语句(SELECTEDSIGNALASSIGNMENTS);・元件例化语句(COMPONENTINSTANTIATIONS);•生成语句(GENERATESTATEMENTS);口■并行过程调用语句(CONCURRENTPROCEDURECALLS)。7、进程语句PROCESS语句格式[进程标号:]PROCESS[(敏感信号参数表)][IS][进程说明部分]BEGIN顺序描述语句ENDPROCESS[进程标号];PROCESS语句的组成口PROCESS语句结构是由3个部分组成的,即进程说明部分、顺序描述语句部分和敏感信号参数表。(1)进程说明部分主要定义一些局部量,可包括数据类型、常数、属性、子程序等。但需注意,在进程说明部分中不允许定义信号和共享变量。(2)顺序描述语句部分可分为赋值语句、进程启动语句、子程序调用语句、顺序描述语句和进程跳出语句等。(3)敏感信号参数表需列出用于启动本进程可读入的信号名(当有WAIT语句时例外)。敏感信号表的特点:(1)、同步进程的敏感信号表中只有时钟信号。(2)、异步进程敏感信号表中除时钟信号外,还有其它信号。(3)、如果有wait语句,则不允许有敏感信号表。进程语句有如下特点:(1)可以和其它进程语句同时执行,并可以存取结构体和实体中所定义的信号;(2)进程中的所有语句都按照顺序执行;(3)为启动进程,在进程中必须包含一个敏感信号表或WAIT语句;口(4)进程之间的通信是通过信号量来实现的。8、画出下面程序的信号图:IF(SEL某='0')THENtemp〈二a;口ENTITYmulISELSEtemp<=b;PORT(a,b,c,el某,ely:INBIT;口ENDIF;data_out:OUTBIT);ENDPROCESSp_a;ENDmul;p_b:PROCESS(temp,c,ely)ARCHITECTURE©某OFmulIS口BEGINSIGNALtemp:BIT;IF(ely='0')THENBEGINdata_out<=temp;p_a:PROCESS(a,b,el某)口ELSEdata_out<=c;BEGINENDIF;ENDPROCESSp_b;ENDe某;□并行信号赋值语句:1、简单信号赋值语句:信号赋值目标<=表达式;2、条件信号赋值语句:赋值目标(二表达式1WHEN赋值条件1ELSE表达式2WHEN赋值条件2ELSE...口表达式n;口3、选择信号赋值语句:WITH选择表达式SELECT赋值目标信号(二表达式1WHEN选择值1,表达式2WHEN选择值2,...口表达式nWHEN选择值n;口、,一、《 、'尸注意:选择信号赋值语句本身不能在进程中应用,但其功能却与进程中的CASE语句的功口能相似。选择信号语句中也有敏感量,即关键词WITH旁的选择表达式。口选择信号赋值语句不允许有条件重叠现象,也不允许存在条件涵盖不全的情况,为了防止这种情况出现,可以在语句的最后加上“表达式WHENOTHERS”子句。另外,选择信号赋值语句的每个子句是以“,”号结束的,只有最后一个子句才是以“;”号结束。用cae语句实现下面程序功能:口LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYdecoderISPORT(a,b,c:INSTD_LOGIC;data1,data2:INSTD_LOGIC;dataout:OUTSTD_LOGIC);ENDdecoder;ARCHITECTUREconcuntOFdecoderISSIGNALintruction:STD_LOGIC_VECTOR(2DOWNTO0);BEGINintruction<=c&b&a;WITHintructionSELECTdataout<=data1ANDdata2WHEN\data1ORdata2WHEN\data1NANDdata2WHEN\data1NORdata2WHEN\data1某ORdata2WHEN\data1某NORdata2WHEN\'Z'WHENOTHERS;ENDconcunt;原件例化语句:口包含元件定义和元件例化两部分:(1)COMPONENT语句可以在结构体(ARCHITECTURE)、程序包(PACKAGE)和块(BLOCK)口的说明中使用;GENERIC用于该元件的可变参数的代入和赋值;PORT则说明该元件的输入输出端口的信号规定;(2)COMPONENT语句分为“元件定义”和“元件例化”两部分;“元件定义”完成元件的“封装”,“元件例化”完成电路板上的元件“插座”的定义,“例化名”(标号名)相当于“插座名”是不可缺少的。(3)(信号,…)部分完成“元件”引脚与“插座”引脚的连接一一“关联”元件声明:对所调用的较低层次的实体模块(元件)的名称、类属参数、端口类型、数据类型的声明。[generic(类属声明);][port(端口声明);]元件的例化:把低层元件安装(调用)到当前层次设计实体内部的过程。端口映射方式:名称关联方式、位置关联方式例题:4位移位寄存器--元件例化语句ENTITYhifterISBEGINPORT(din,clk:INBIT;d(0)<=din;--并行信号赋值dout:OUTBIT);U0:dffPORTMAP(d(0),clk,d(1));--位置关联方式ENDhifter;U1:dffPORTMAP(d(1),clk,d(2));ARCHITECTUREaOFhifterISU2:dffPORTMAP(d=>d(2),clk=>clk,q=>d(3));COMPONENTdff--名字关联方式PORT(d,clk:INBIT;U3:dffPORTMAP(d=>d(3),clk=>clk,q=>d(4));q:OUTBIT);dout<=d(4);ENDCOMPONENT;ENDa;SIGNALd:BIT_VECTOR(0TO4);分析以下程序,用原理图的方法代替该程序。LIBRARYIEEE;口USEIEEE.STD_LOGIC_1164.ALL;ENTITYND2ISPORT(A,B:INSTD_LOGIC;C:OUTSTD_LOGIC);ENDND2;ARCHITECTUREARTND2OFND2ISBEGINY<=ANANDB;ENDARCHITECTUREARTND2;LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYORD41ISPORT(A1,B1,C1,D1:INSTD_LOGIC;Z1:OUTSTD_LOGIC);ENDORD41;ARCHITECTUREARTORD41OFORD41ISCOMPONENTND2PORT(A,B:INSTD_LOGIC;C:OUTSTD_LOGIC);ENDCOMPONENT;SIGNAL某,Y:STD_LOGIC;BEGINU1:ND2PORTMAP(A1,B1,某);一位置关联方式U2:ND2PORTMAP(A=>C1,C=>Y,B=>D1);--名字关联方式U3:ND2PORTMAP(某,Y,C=>Z1);一混合关联方式口ENDARCHITECTUREARTORD41;用VHDL语言编写的,所以其源程序也需要以.vhd文件类型保存1VHDL描述风格1、行为描述2、数据流描述3、结构描述口看书上例题5-41——5-43理解这三种描述风格作业:1、写出三输入与非门的实体描述ENTITYNANDISPORT(a,b,c:INBIT;Data_out:OUTBIT);ENDENTIT

温馨提示

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

评论

0/150

提交评论