vhdl程序的基本结构vhdl程序一般由5个部分组成.ppt

上传人:tia****nde 文档编号:12806486 上传时间:2020-05-25 格式:PPT 页数:34 大小:355.81KB
返回 下载 相关 举报
vhdl程序的基本结构vhdl程序一般由5个部分组成.ppt_第1页
第1页 / 共34页
vhdl程序的基本结构vhdl程序一般由5个部分组成.ppt_第2页
第2页 / 共34页
vhdl程序的基本结构vhdl程序一般由5个部分组成.ppt_第3页
第3页 / 共34页
点击查看更多>>
资源描述
2020/5/25,VHDL语言,刘书桂天津大学精密仪器与光电子工程学院精密测试技术及仪器国家重点实验室电话:27404779Email:sgliu,VHDL程序的基本结构,VHDL程序一般由5个部分组成:Library(程序库)Package(程序包)Entity(实体)Architecture(构造体)Configuration(配置),VHDL程序的基本结构,VHDL程序一般由5个部分组成:Library(程序库)Package(程序包)Entity(实体)Architecture(构造体)Configuration(配置),库和程序包,库:存放已编译过的实体、构造体、程序包和配置程序包:由一组对外可见的信号、常量、数据类型、子程序、属性等组成的程序集合,库和程序包的使用,Library;Use.;例:Libraryieee;Useieee.std_logic_1164.all;,常用库,StdVHDL的标准库ieeeIEEE认可的标准库Work现行作业库Vital面向ASIC的库用户自定义库,常用库及其程序包,Std:VHDL的标准库standard:定义了bit,bit_vector,character,time等数据类型textio:包含了对文本文件进行读写操作的过程和函数缺省说明:librarystd;usestd.standard.all;,常用库及其程序包,IEEE:IEEE认可的标准库std_logic_1164:定义了std_logic,std_logic_vector,std_ulogic,std_ulogic_vector等数据类型,VHDL程序的基本结构,VHDL程序一般由5个部分组成:Library(库)Package(程序包)Entity(实体)Architecture(构造体)Configuration(配置),设计实体,实体说明,构造体,设计实体的组成,设计实体,实体说明,构造体1,有多个构造体的设计实体的组成,构造体2,构造体n,配置,设计实体,实体说明,构造体,设计实体的组成,实体说明,Entityis类属说明;端口说明;实体说明部分;实体语句部分;Endentity;最简单的例:entitynothingisendnothing;,实体说明-类属说明,类属为设计实体和外部环境通讯的静态通信提供通道。可以定义端口大小、元件数目及定时特性等Generic(constant参数名:in子类型标识:=静态表达式;);例:Generic(delay:time:=10ns);,实体说明-端口说明,端口为设计实体和外部环境通讯的动态通信提供通道port(signal端口名:模式子类型标识:=静态表达式;);模式:in,out,inout,bufferInout和buffer都是双向端口,但buffer只能有一个驱动源例:Port(a,b:inbit;q:outbit);,实体说明-实体说明部分,用于定义设计实体接口中的公共信息,如定义新的数据类型和常量等例:定义新的数据类型colorTypecolorisarray(6downto0)ofstd_logic;,实体说明-实体语句部分,是设计实体接口的共同部分。只能由并行断言语句、并行过程调用语句、被动进程语句组成,且不能在语句中给信号赋值。,设计实体,实体说明,构造体,设计实体的组成,构造体,architectureofis构造体说明语句;BeginEndarchitecture;,构造体构造体说明语句,定义本构造体内部使用的信号、常数、数据类型和函数因为它们仅限于内部使用,所以没有也不需要有方向的说明,构造体功能描述语句,具体描述构造体的行为和结构。功能描述语句是并行执行的,并不以语句的书写顺序为执行顺序。有5种类型的功能描述语句:信号赋值语句、块语句、进程语句、子程序调用语句、元件例化语句。,并行信号赋值语句,1、简单赋值语句目标信号=表达式;2、条件信号赋值语句目标信号=表达式1when条件1else表达式2when条件2else表达式n-1when条件n-1else表达式n;3、选择信号赋值语句with条件表达式select目标信号=表达式1when条件1,表达式2when条件2,表达式nwhen条件n;,块语句,块标号:BLOCK保护表达式类属子句;端口子句;块说明部分;BEGINENDBLOCK块标号;,类属子句用于参数的定义;端口子句用于信号的定义;块说明部分对该块要用到的信号、常数、元件和子程序等进行说明;块语句部分对该块的功能进行描述,块语句部分的语句是并行执行的,和书写顺序无关。,进程语句,进程标号:PROCESS敏感信号表IS进程语句说明部分;BEGINENDPROCESS进程标号;,敏感信号表列出进程对其敏感的所有信号,每当其中的一个或多个信号发生变化时,就会启动进程的执行;进程语句说明部分对该进程要用到的变量、子程序等进行说明;进程语句部分对该进程的功能进行描述,进程语句部分的语句是顺序执行的,和书写顺序有关。,子程序调用语句,过程名(参数表);,子程序调用语句若位于“构造体”或“块语句”中,它就是并发语句;若位于“进程语句”或另一个“子程序”中,它就是顺序语句;,设计实体,实体说明,构造体1,有多个构造体的设计实体的组成,构造体2,构造体n,配置,配置,一个实体可以拥有多个不同的构造体,而每个构造体在实体中的地位是相同的。可以利用配置语句为实体指定一个构造体。,最简单的缺省配置格式结构,CONFIGURATION配置名OF实体名ISFOR构造体名ENDFOR;END配置名;,CONFIGURATION配置名OF实体名IS语句说明;END配置名;,配置例,ENTITYcounterIS-ENDcounter;ARCHITECTUREcount_255OFcounterIS-ENDcount_255;ARCHITECTUREcount_64kOFcounterIS-ENDcount_64k;CONFIGURATIONsmall_countOFcounterISFORcount_255ENDFOR;ENDsmall_count;CONFIGURATIONbig_countOFcounterISFORcount_64KENDFOR;ENDbig_count;,现场演示4选1数据选择器,Entitymux4isEndmux4;Architecturertlofmux4isBeginEndrtl;,现场演示4比特可逆计数器,端口方向说明,只写,可有多个驱动,可读、可写,可读写,仅1个驱动,只读,在实际的数字集成电路中,IN相当于只可输入的引脚,OUT相当于只可输出的引脚,BUFFER相当于带输出缓冲器并可回读的引脚,INOUT相当于双向引脚。,2020/5/25,PACKAGE,已在设计实体中定义的数据类型、子程序或数据对象对于其它的实体是不可用的,或者说是不可见的。为了使其能被更多的实体访问和共享,可以将它们收集在一个程序包中。,2020/5/25,PACKAGE,2020/5/25,PACKAGE,程序包首:,程序包首的说明语句可收集多个VHDL设计所需的公共信息,包括数据类型说明,信号说明,子程序说明以及元件说明等。程序包可以只由程序包首组成。,PACKAGEupacISCONSTANTk:INTEGER:=4;TYPEinstructionIS(add,sub,adc,inc,srf,slf);SUBTYPEcpu_busISSTD_LOGIC_VECTOR(k-1DOWNTO0);ENDupac;,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!