第四章VHDL设计初步PPT课件_第1页
第四章VHDL设计初步PPT课件_第2页
第四章VHDL设计初步PPT课件_第3页
第四章VHDL设计初步PPT课件_第4页
第四章VHDL设计初步PPT课件_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

第四章VHDL设计初步,EDA,VHDL(VeryHighSpeedIntegratedCircuitHardwareDescriptionLanguage),意为超高速集成电路硬件描述语言。由美国国防部7080年代组织研制开发,1985年完成第一版,1987年成为IEEEStd1076-1987。美国国防部规定所有官方的ASIC设计都必须用VHDL为设计描述语言,此后渐渐成为工业标准为大家接受。1993年修改成IEEEStd1164-1993。1995年,中国国家技术监督局组织编撰并出版CAD通用技术规范,推荐VHDL语言作为我国电子设计自动化硬件描述语言的国家标准。,VHDL的由来,4.1概述,一些语法约定,可选内容大小写不敏感-后面为注释层次缩进源文件名必须与实体名一致,4.2VHDL语言的基本单元及其构成,4.2.12选1多路选择器的VHDL描述,LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux21ISPORT(a,b,s:INBIT;q:OUTBIT);ENDmux21;ARCHITECTUREconnectOFmux21ISBEGINq=aWHENs=0ELSEb;ENDconnect;,设计一个2选1多路通道,程序包,实体,结构体,信号传输符号,4.2.2VHDL程序的基本结构,1、ENTITY(实体)是VHDL设计中最基本的组成部分之一,它类似于原理图中的一个部件符号,它并不描述设计的具体功能,只定义了该设计所需的全部输入/输出信号。,实体的格式如下:ENTITY实体名ISGENERIC(常数名:数据类型:=设定值);PORT(列出设计的所有输入/输出信号);END实体名;,VHDL结构要点,实际上是器件名,最好用相应功能来确定,如counter4b,adder8b。注意不能用prim等库的元件的名字。,规定实体的内部特性参数,如端口大小,子元件数目,定时特性等。,端口说明格式为:PORT(端口名:端口模式数据类型);,VHDL结构要点,INOUTINOUTBUFFER,端口模式:用来说明数据、信号通过该端口的方向。(1)IN信号进入实体;(2)OUT信号离开实体,不能在内部反馈使用;(3)INOUT信号是双向的,既可进入也可离开实体;(4)BUFFER信号输出到实体外部,但同时也可在实体内部反馈,允许内部引用该端口的信号。,注意简单地说=或:=In端口out端口=或:=buffer端口=或:=buffer端口,VHDL结构要点,In信号只能被引用,不能被赋值out信号只能被赋值,不能被引用buffer信号可以被引用,也可以被赋值,2、Arcthitecture(结构体)格式:Arcthitecture结构体名of实体名is说明语句内部信号、常数、元件、数据类型、函数等的定义begin功能描述语句end结构体名;,VHDL结构要点,并行语句或顺序语句或它们的混合。,描述器件内部逻辑功能或电路结构。,VHDL结构要点,说明语句说明功能描述中用到的信号(SIGNAL)数据类型(TYPE)常数(CONSTANT)元件(COMPONENT)函数(FUNCTION)过程(PROCEDURE),VHDL结构要点,功能描述:块语句、进程语句、信号赋值语句、子程序调用语句、元件例化语句多个语句可以是并行执行的,也可顺序执行,取决于所使用的语句类型:块语句:多个并行语句构成的模块进程语句:顺序语句模块信号赋值语句:向信号或端口赋值子程序调用语句:调用一个已设计好子程序。元件例化语句:调用元件,并将元件拼接为电路模块,VHDL结构要点,ENTITYmux21aISPORT(a,b:INBIT;s:INBIT;q:OUTBIT);ENDENTITYmux21a;ARCHITECTUREoneOFmux21aISBEGINq=aWHENs=0ELSEb;ENDARCHITECTUREone;,WHEN_ELSE并行赋值语句,赋值语句,条件判断表达式,ARCHITECTUREoneOFmux21aISSIGNALd,e:BIT;BEGINd=aAND(NOTs);e=bANDs;q=dORe;ENDARCHITECTUREone;,逻辑操作符:BIT,BOOLEAN,STD_LOGIC,ARCHITECTUREoneOFmux21aISBEGINq=(aAND(NOTs)OR(bANDs);ENDARCHITECTUREone;,ARCHITECTUREoneOFmux21aISBEGINPROCESS(a,b,s)BEGINIFs=0THENqSave,VHDL文件.vhdAHDL文件.tdfVerilog文件.v,技巧:从保存路径直接新建一个文件夹,将当前设计指定为工程,然后选择器件、分配引脚,File-Project-SetProjecttoCurrentFile,排错,有两种定位错误的方法,第1步、单击Error行,使之反色显示第2步、单击Locate按钮,直接双击Error行,常见错误,标点错误将设计文件放于根目录下,没有放在工作库下文件后缀.vhd设成.tdf设计文件名和实体名不一致底层设计没有运行createdefaultincludefile命令,仿真下载,时序仿真和功能仿真的意义时序仿真就是接近真实器件运行特性的时序仿真,仿文件中已包含了器件硬件特性参数,因而仿真精度高。但时序仿真的仿真文件必须来自针对具体器件的综合器与适配器。功能仿真是直接对VHDL、原理图描述或其它描述形式的逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计要求的过程。仿真过程不涉及任何具体器件的硬件特性。,仿照第三章的内容进行仿真和下载,LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDFF1ISPORT(clk:INSTD_LOGIC;d:INSTD_LOGIC;q:OUTSTD_LOGIC);ENDDFF1;,ddf1,打开IEEE库,STD_LOGIC:标准逻辑位在综合器中,STD_LOGIC被看作有9种值,如-、X、0、1和Z等而BIT只能取0和1,程序包,4.4VHDL程序设计举例,例41D触发器,ARCHITECTUREbhvOFDFF1ISSIGNALq1:STD_LOGIC;BEGINPROCESS(clk)BEGINIFclkEVENTANDCLK=1THENq1=D;ENDIF;q=q1;ENDPROCESS;ENDbhv;,引进内部节点信号,进程语句及敏感信号,检测clk上升沿,将数据输出端口,不完整条件语句,顺序语句,边沿型触发器的时序波形,LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.all;ENTITYtest1ISport(clk,d:INSTD_LOGIC;q:OUTSTD_LOGIC);ENDtest1;ARCHITECTUREtest1_bodyOFtest1ISBEGINPROCESS(clk)BEGINIFrising_edge(clk)THENq=d;ENDIF;ENDPROCESS;ENDtest1_body;,测定上升沿的函数,clk必须是STD_LOGIC,例41基本语法小结,定义信号SIGNAL:SIGNALA1:STD_LOGIC;,信号属性函数EVENT,PROCESS语句结构:顺序语句,行为描述语句,敏感信号表,PROCESS语句特点,时序电路:不完整条件语句产生时序电路,时钟上升沿测试语句结构:CLKEVENTANDCLK=1,RISING_EDGE(),例42一位全加器,半加器真值表,方法一:根据电路原理图,LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYh_adder1ISPORT(a,b:INSTD_LOGIC;co,so:OUTSTD_LOGIC);ENDh_adder1;ARCHITECTUREfh1OFh_adder1ISBEGINso=NOT(aXOR(NOTb);co=aANDb;ENDfh1;,并行赋值语句,方法二:根据真值表,ARCHITECTUREfh2OFh_adder2ISSIGNALsel:STD_LOGIC_VECTOR(1DOWNTO0);BEGINselsosososoNULL;ENDCASE;ENDPROCESS;ENDfh2;,并置操作符,完整条件语句,全加器,或门描述LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYor2aISPORT(a,b:INSTD_LOGIC;c:OUTSTD_LOGIC);ENDor2a;ARCHITECTUREoneOFor2aISBEGINc=aORb;ENDone;,全加器,LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYf_adderISPORT(ain,bin,cin:INSTD_LOGIC;cout,sum:OUTSTD_LOGIC);ENDENTITYf_adder;ARCHITECTUREfd1OFf_adderISCOMPONENTh_adder1PORT(a,b:INSTD_LOGIC;co,so:OUTSTD_LOGIC);ENDCOMPONENT;COMPONENTor2aPORT(a,b:INSTD_LOGIC;c:OUTSTD_LOGIC);ENDCOMPONENT;,SIGNALd,e,f:STD_LOGIC;BEGINu1:h_adder1PORTMAP(ain,bin,d,e);u2:h_adder1PORTMAP(e,cin,f,sum);u3:or2aPORTMAP(d,f,cout);ENDfd1;,d,e,f,例42基本语法小结,CASE语句:表达真值表CASEISWHEN;ENDCASE;,标准逻辑矢量数据类型:STD_LOGIC_VECTOR,B:OUTSTD_LOGIC_VECTOR(7DOWNTO0);SIGNALA:STD_LOGIC_VECTOR(1TO4);B=“01100010”;-B(6)=?B(4DOWNTO1)=“1101”;-B(3)=?A(1TO4)=“1101”;-A(3)=?B(7DOWNTO4)连接端口名,);,并置操作符:“USEIEEE.std_logic_1164.all;ENTITYcnt4_1ISPORT(clk:INBIT;q:BUFFERINTEGERRANGE15DOWNTO0);ENDcnt4_1;ARCHITECTUREbehaveOFcnt4_1ISBEGINPROCESS(clk)BEGINIFclkEVENTANDclk=1THENq=q+1;ENDIF;ENDPROCESS;ENDbehave;,取整数数据类型,为什么?,整数取值范围,端口信号模式取BUFFER,为什么?,注意整数和位的不同表达方式!,例43四位加法计数器,定输出信号数据类型为整数类型:INTEGER,必须定义整数取值范围,RANGE15DOWNTO0,端口信号模式取缓冲型:BUFFER,整数和位的表达方式:1+5;1;“1011”,加减算术符的适用范围:整数Q=Q+1;,例43基本语法小结,如何进行四位加法计数器的设计?,计数器由组合电路模块和时序电路模块构成:加1组合电路、锁存器;计数时钟其实是锁存信号,BUFFER并非是一种特殊的硬件端口结构,只是一种功能描述,作为内部输出信号可以反馈到实体内部。,注意BUFFER与INOUT不同。,4位锁存器,组合电路加1器,锁存信号,输出反馈,综合后的计数器电路RTL图,LIBRARYIEEE;USEIEEE.std_logic_1164.all;USEIEEE.STD_LOGIC_UNSIGNED.ALL;Entitycnt4_2isport(clk:instd_l

温馨提示

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

评论

0/150

提交评论