EDA技术实用教程第4章是什么是VHDL?VeryhighspeedintegratedHardwareDescriptionLanguage(VHDL)是IEEE、工业标准硬件描述语言用语言的方式而非图形等方式描述硬件电路容易修改容易保存特别适合于设计的电路有:复杂组合逻辑电路,如:•译码器、编码器、加减法器、多路选择器、地址译码器…...状态机等等……..VHDL的功能和标准VHDL描述输入端口输出端口电路的行为和功能VHDL有过两个标准:IEEEStd1076-1987(calledVHDL1987)IEEEStd1076-1993(calledVHDL1993)【例4-1】ENTITYmux21aISPORT(a,b:INBIT;s:INBIT;y:OUTBIT);ENDENTITYmux21a;ARCHITECTUREoneOFmux21aISBEGINy=aWHENs='0'ELSEb;ENDARCHITECTUREone;实体结构体4.1多路选择器VHDL描述图4-1mux21a实体图4-2mux21a结构体4.1.12选1多路选择器的VHDL描述4.1.12选1多路选择器的VHDL描述【例4-2】ENTITYmux21aISPORT(a,b:INBIT;s:INBIT;y:OUTBIT);ENDENTITYmux21a;ARCHITECTUREoneOFmux21aISSIGNALd,e:BIT;BEGINd=aAND(NOTS);e=bANDs;y=dORe;ENDARCHITECTUREone;【例4-3】...ARCHITECTUREoneOFmux21aISBEGINy=(aAND(NOTs))OR(bANDs);ENDARCHITECTUREone;4.1.12选1多路选择器的VHDL描述【例4-4】ENTITYmux21aISPORT(a,b,s:INBIT;y:OUTBIT);ENDENTITYmux21a;ARCHITECTUREoneOFmux21aISBEGINPROCESS(a,b,s)BEGINIFs='0'THENy=a;ELSEy=b;ENDIF;ENDPROCESS;ENDARCHITECTUREone;4.1.12选1多路选择器的VHDL描述图5-3mux21a功能时序波形完整VHDL程序的组成5个部分实体(Entity)用于描述所设计的的系统的外部接口信号;结构体(Architecture)用于描述系统内部的结构和行为;建立输入和输出之间的关系;配置(Configuration)配置用于从库中选取所需单元来组成系统设计的不同版本包集合(Package)包集合存放各个设计模块共享的数据类型、常数和子程序等;库(Library)库存放已经编译的实体、构造体、包集合和配置。4.1.2VHDL相关语句说明1.实体说明【例】ENTITY实体名ISPORT(端口名:端口模式数据类型名;……端口名:端口模式数据类型名);ENDENTITY实体名;或:【例】ENTITY实体名ISPORT(端口名:端口模式数据类型名;……端口名:端口模式数据类型名);END实体名;4.1.2VHDL相关语句说明2.实体名3.PORT语句和端口名4.端口模式INOUTINOUTBUFFER5.数据类型BIT,STD_LOGIC4.1.2VHDL相关语句说明6.结构体说明【例】ARCHITECTUREarch_nameOFe_nameIS(说明语句)BEGIN(功能描述语句)ENDARCHITECTUREarch_name;或:【例】ARCHITECTUREarch_nameOFe_nameIS(说明语句)BEGIN(功能描述语句)ENDarch_name;7.信号传输(赋值)符号和数据比较符号=实体说明和构造体说明的作用实体说明在VHDL程序设计中描述一个元件或一个模块与系统的其余部分之间的连接关系,可以看作一个电路图的符号。(因为在一张电路图中,某个元件与其他元件的连接关系是明显直观的)。构造体具体指明了该设计实体的行为,定义了该设计实体的功能,规定了该设计实体的数据流程,指派了该设计实体的内部元件的连接关系。4.1.2VHDL相关语句说明8.逻辑操作符AND、OR、NOT9.IF_THEN条件语句10.WHEN_ELSE条件信号赋值语句赋值目标=表达式WHEN赋值条件ELSE表达式WHEN赋值条件ELSE...表达式;11.PROCESS进程语句和顺序语句12.文件取名和存盘进程(PROCESS)描述*进程描述的格式如下:[进程名]:PROCESS(信号1,信号2,……)BEGIN::ENDPROCESS进程名;例4-4进程(PROCESS)描述*进程语句的顺序性在PROCESS中的语句是顺序执行的。*进程语句的启动(1)信号列表被称为敏感量列表。当PROCESS所带的信号量发生变化时,PROCESS中的语句就会执行一遍。执行完后,返回开始处等待敏感量的新变化。周而复始。(2)如果进程语句不带敏感变量表,可用waiton语句WAITONaFOR5nsWAITONaUNTILb=’1’;上述两者必居其一。*进程语句的同步描述实际设计中,同一构造体可以有多个进程存在,还可以边通信边同步执行。几种组合逻辑电路的VHDL描述基本门电路译码器编码器与优先编码器选择器见WORD文档组合逻辑电路设计1