第一章1.什么叫EDA技术?及狭义定义(书P1)ElectronicDesignAutomation--电子设计自动化。EDA的广义定义范围包括:半导体工艺设计自动化、可编程器件设计自动化、电子系统设计自动化、印刷电路板设计自动化、仿真与测试、故障诊断自动化、形式验证自动化统称EDA工程。2.EDA发展历程:CAD-CAE-EDA3.EDA技术的主要内容实现载体(硬件基础):大规模可编程逻辑器件(PLD_ProgrammableLogicDevice)描述方式:硬件描述语言(HDL_HarddescripationLauguage,VHDL,VerilogHDL等)设计工具:开发软件、开发系统硬件验证:实验开发系统FPGA在结构上主要分为三个部分,即可编程逻辑单元,可编程输入/输出单元和可编程连线三个部分。CPLD在结构上主要包括三个部分,即可编程逻辑宏单元,可编程输入/输出单元和可编程内部连线。4.硬件描述语言(HDL_HardwareDescriptionLanguage)VHDL:IEEE标准硬件描述语言,在电子工程领域,已成为事实上的通用硬件描述语言。系统级抽象描述能力较强。Verilog:支持的EDA工具较多,适用于RTL级和门电路级的描述,其综合过程较VHDL稍简单,门级开关电路描述能级较强,但其在高级描述方面不如VHDL。ABEL:一种支持各种不同输入方式的HDL,系统级抽象描述能力差,适应于门级电路描述。5.仿真工具功能仿真(也叫前仿真、系统级仿真、行为仿真)验证系统的功能。时序仿真(也叫后仿真、电路级仿真):验证系统的时序特性、系统性能。6.EDA的工程设计流程(P8)第二章1.在系统可编程技术(ISP)定义ISP(In_SystemProgrammability/Programming)是指对器件、电路板、整个电子系统进行逻辑重构和修改功能的能力。可在制造前、制造过程中、甚至在交付用户使用后进行。2.ISP技术的优越性设计:设计修改方便,产品面市速度快,减少原材料成本,提高器件及板级的可测试性。制造:减少制造成本,免去单独编程工序,免去重做印刷电路板的工作(直接编程),大量减少库存,减少预处理成本,提高系统质量及可靠性。现场服务/支持:提供现场系统重构或现场系统用户化的可能(无需重做电路板),提供遥控现场升级及维护(通过因特网)的可能。3.CPLD和FPGA的主要区别:(1)结构上的不同:最基本的逻辑单元结构差异(2)集成度的不同(生产工艺决定)CPLD:500-50000门,EEPROM工艺FPGA:1K-10M门,SROM工艺(3)应用范围的不同CPLD逻辑能力强而寄存器少(1K左右),输入变量多,适应于控制密集型系统;FPGA逻辑能力较弱(四输入查找表)但寄存器多(100多K),适用于数据密集型系统,输入变量多,需要利用相邻器件,造成器件资源浪费。(4)使用方法的不同(与生产工艺关联)4.Altera公司PLD分为两大系列:MAX(MultipleArrayMatrix):多阵列矩阵内部结构:可编程的“与”阵列和固定“或”阵列实现逻辑功能;采用EPROM工艺或EEPROM工艺;属CPLD。FLEX系列:灵活逻辑单元阵列(FlexibleLogicElementMatrix)5.FLEX10K系列中集成度最小的是EPF10KLC84。EPF代表是FLEX系列;10代表门数,可用门或系统门,单位以K,即芯片内部包含了10K系统门;LC代表器件封装形式;84代表管脚数。第三章1.什么是VHDL2.2选1选择器的VHDL描述:3.VHDL程序基本结构实体(Entity)结构体(Architecture)配置(Configuration)库(Library)、程序包(Package)4.实体定义实体是一个设计实体的表层设计单元,定义系统的输入输出端口,是设计实体经封装后对外的一个通信界面。5.结构体定义结构体是用于描述设计实体的内部结构以及实体端口间的逻辑关系。6.VHDL语言要素四类语言要素:数据对象、数据类型、操作数、操作符7.基本标识符中的英文字母不分大小写;VHDL的保留字不能作为标识符使用。8.数据对象常量(Constant)变量(Variable)信号(Signal)三种对象的物理含义:•常量代表数字电路中的电源、地、恒定逻辑值等常数;•变量代表暂存某些值的载体,常用于描述算法;•信号代表物理设计中的某一条硬件连接线,包括输入、输出端口(一般其它高级语言没有)。9.操作符VHDL语言1.顺序描述语句:执行顺序与书写顺序一致,与传统软件设计语言的特点相似。顺序语句只能用在进程与子程序中。2.case语句特点case语句常用来描述总线或编码、译码行为。可读性比if语句强。Case语句使用注意:1)分支条件的值必须在表达式的取值范围内。2)两个分支条件不能重叠。3)CASE语句执行时必须选中,且只能选中一个分支条件。4)如果没有others分支条件存在,则分支条件必须覆盖表达式所有可能的值。对std_logc,std_logic_vector数据类型要特别注意使用others分支条件。3.并发语句4.进程(process)语句特点1、进程与进程,或其它并发语句之间的并发性;2、进程内部的顺序性;3、进程的启动(执行)与挂起;--仿真4、进程与进程,或其它并发语句之间的通信。5.VHDL的层次化设计与元件声明6.端口映射方式:名称关联方式:低层次端口名=当前层次端口名、信号名例:or2portmap(o=n6,i1=n3,i2=n1)位置关联方式:当前层次端口名,当前层次端口名,┈)例:or2portmap(n3,n1,n6)7.基本逻辑电路设计:基本逻辑电路、组合逻辑电路、时序逻辑电路8.基本门电路(直接调用逻辑运算符)9.编码器设计一个8输入优先级编码器,y0级别最低,y7级别最高;输出为3位编码。方法1:利用if多选择语句自顶向下的优先特性方法2:进程内为顺序语句,最先描述优先级最低,最后描述优先级最高,可实现优先级编码。方法3:利用条件赋值语句architecturebehaviorofpriorityisbeginvec=“111”wheny7=‘1’else--先判断优先级别最高“110”wheny6=‘1’else“101”wheny5=‘1’else“100”wheny4=‘1’else“011”wheny3=‘1’else“010”wheny2=‘1’else“001”wheny1=‘1’else“000”wheny0=‘1’else“XXX”;--仿真有用,综合被忽略endbehavior;10.译码器:译码器是编码器的逆过程。如3-8译码器方法1:使用process语句libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitydecoderisport(inp:instd_logic_vector(2downto0);outp:outstd_logic_vector(7downto0));enddecoder;architecturertlofdecoderisbeginprocess(inp)beginoutp=(others=’0’);--所有元素全部赋0outp(conv_integer(inp))=‘1’;--对某一位赋1endprocess;endrtl;方法3:使用case语句实现。方法4:使用条件赋值语句12.时序逻辑电路设计触发器、寄存器、计数器、分频器、信号发生器等。D触发器异步置位/复位D触发器