已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2 选1 多路选择器LIBRARY IEEE;-IEEE 库使用说明 USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux21 IS-器件mux21 的外部接口信号说明-PORT相当于器件的引脚,这一部分称为实体 PORT ( a b : IN STD_LOGIC;s : IN STD_LOGIC;y : OUT STD_LOGIC );END ENTITY mux21;-器件mux21 的内部工作逻辑描述即-为实体描述的器件功能结构称为结构体ARCHITECTURE one OF mux21 IS BEGINy = a WHEN s = 0 ELSE b WHEN s = 1 ;END ARCHITECTURE one;1位锁存器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;-锁存器的实体 定义了此器件的 -输入输出引脚及其信号属性ENTITY Latch ISPORT(D : IN STD_LOGIC; ENA : IN STD_LOGIC;Q : OUT STD_LOGIC); END ENTITY Latch-结构体 ARCHITECTURE one OF Latch IS-定义信号 SIGNAL sig_save : STD_LOGIC;-进程语句结构描述逻辑的时序方式 BEGIN PROCESS (D, ENA)BEGIN IF ENA = 1 THEN sig_save = D ;END IF ;Q = sig_save ;END PROCESS ;END ARCHITECTURE one;1位全加器-或门逻辑描述LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL;ENTITY or2 ISPORT (a,b :IN STD_LOGIC; c : OUT STD_LOGIC );END ENTITY or2ARCHITECTURE fu1 OF or2 ISBEGINc = a OR b;END ARCHITECTURE fu1;-半加器描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_adder ISPORT (a b : IN STD_LOGIC; co, so : OUT STD_LOGIC);END ENTITY h_adderARCHITECTURE fh1 OF h_adder ISBEGINso = (a OR b)AND(a NAND b);co ain b =bin co=d so =e); u2 : h_adder PORT MAP( a =e b =cin co =f so =sum); u3 : or2 PORT MAP(a =d b =f c =cout);END ARCHITECTURE fd1 ;1. 实体语句结构以下是实体说明单元的常用语句结构ENTITY 实体名 ISGENERIC ( 类属表) PORT ( 端口表 ) END ENTITY 实体名实体说明单元必须按照这一结构来编写实体应以语句ENTITY 实体名 IS 开始以语句END ENTITY 实体名结束 其中的实体名可以由设计者自己添加。COMPONENT h_adder - 元件调用说明PORT ( a b : IN STD_LOGIC ;co so : OUT STD_LOGIC );END COMPONENT;。GENERIC 类属说明语句GENERIC( 常数名数据类型 : 设定值 常数名 数据类型 : 设定值 )类属参量以关键词GENERIC 引导一个类属参量表,在表中提供时间参数或总线宽度等静态信息。将类属说明放在其中且放在端口说明,语句的前面在一个实体中定义的来自外部赋入。ENTITY mcu1 ISGENERIC (addrwidth : INTEGER := 16);PORT(add_bus : OUT STD_LOGIC_VECTOR(addrwidth-1 DOWNTO 0) );.ENTITY PGAND2 ISGENERIC ( trise : TIME := 1 ns;tfall : TIME := 1 ns ) ;PORT ( a1 : IN STD_LOGIC ;a0 : IN STD_LOGIC ;z0 : OUT STD_LOGIC );END ENTITY PGAND2;PORT 端口说明PORT ( 端口名 : 端口模式数据类型 端口名 : 端口模式数据类型 ) ;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL ;ENTITY nand2 ISPORT(a : IN STD_LOGIC ;b : IN STD_LOGIC ;c : OUT STD_LOGIC ) ;END nand2 ;结构体结构体的语句格式如下ARCHITECTURE 结构体名 OF 实体名 IS说明语句BEGIN功能描述语句END ARCHITECTURE 结构体名;结构体中的说明语句,是对结构体的功能描述语句中将要用到的信号(SIGNAL) 数据类型(TYPE) 常数(CONSTANT) 元件(COMPONENT) 函数(FUNCTION) 和过程(PROCEDURE)等加以说明。需要注意的是在一个结构体中,说明和定义的数据类型常数元件函数和过程只能用于这个结构体中。功能描述语句结构h块语句是由一系列并行执行语句构成的组合体,它的功能是将结构体中的并行语句组成一个或多个子模块h进程语句定义顺序语句模块 用以将从外部获得的信号值或内部的运算数据向其它的信号进行赋值h信号赋值语句将设计实体内的处理结果向定义的信号或界面端口进行赋值h子程序调用语句用以调用过程或函数 并将获得的结果赋值于信号h元件例化语句对其它的设计实体作元件调用说明 并将此元件的端与其它的元件信号或高层次实体的界面端口进行连接块语句结构BLOCKBLOCK 语句的表达格式如下块标号BLOCK 块保护表达式接口说明类属说明BEGIN并行语句END BLOCK 块标号接口说明部分有点类似于实体的定义部分,它可包含由关键词PORT GENERIC PORTMAP 和GENERIC MAP 引导的接口说明等语句。对BLOCK 的接口设置以及与外界信号的连接状况加以说明,这类似于原理图间的图示接口说明,块的类属说明部分和接口说明部分的适用范围仅限于当前BLOCK ,所以所有这些在BLOCK 内部的说明对于这个块的外部来说是完全不透明的,即不能适用于外部环境或由外部环境所调用,但对于嵌套于更内层的块却是透明的即可将信息向内部传递块的说明部分可以定义的项目主要有h 定义 USE 语句h 定义子程序h 定义数据类型h 定义子类型h 定义常数h 定义信号h 定义元件程序 3-13a1 : out1 = 1 after 3 ns ;blk1 : BLOCKBEGINA2 : out2 = 1 AFTER 3 ns ;A3 : out3 = 0 AFTER 2 ns ;END BLOCK blk1 ;程序 3-14a1 : out1 = 1 AFTER 3 ns ;a2 : out2 = 1 AFTER 3 ns ;a3 : out3 = 0 AFTER 2 ns ;进程PROCESSPROCESS 语句的表达格式如下进程标号 PROCESS ( 敏感信号参数表 ) IS进程说明部分BEGIN顺序描述语句END PROCESS 进程标号2. PROCESS 组成如上所述PROCESS 语句结构是由三个部分组成的即进程说明部分顺序描述语句部分和敏感信号参数表(1) 进程说明部分主要定义一些局部量 可包括数据类型常数变量属性子程序等但需注意在进程说明部分中不允许定义信号和共享变量(2) 顺序描述语句部分可分为赋值语句 进程启动语句子程序调用语句顺序描述语句和进程跳出语句等它们包括h 信号赋值语句 即在进程中将计算或处理的结果向信号SIGNAL 赋值h 变量赋值语句 即在进程中以变量VARIABLE 的形式存储计算的中间值h 进程启动语句 当PROCESS 的敏感信号参数表中没有列出任何敏感量时进程的启动只能通过进程启动语句WAIT 语句这时可以利用WAIT 语句监视信号的变化情况以便决定是否启动进程WAIT 语句可以看成是一种隐式的敏感信号表h 子程序调用语句 对已定义的过程和函数进行调用并参与计算h 顺序描述语句 包括IF 语句CASE 语句LOOP 语句NULL 语句等h 进程跳出语句 包括NEXT 语句EXIT 语句用于控制进程的运行方向(3) 敏感信号参数表需列出用于启动本进程可读入的信号名当有WAIT 语句时例外但VHLD 程序特别是进程结构设计者应当从三个方面去判断它的功能和执行情况1 基于CPU 的纯软件的行为仿真运行方式2 基于VHDL 综合器的综合结果所可能实现的运行方式3 基于最终实现的硬件电路的运行方式(1) 在同一结构体中的任一进程是一个独立的无限循环程序结构 但进程中却不必放置诸如软件语言中的返回语句它的返回是自动的进程只有两种运行状态即执行状态和等待状态(2) 必须注意 PROCESS 中的顺序语句的执行方式与通常的软件语言中的语句的顺序执行方式有很大的不同软(3) 虽然同一结构体中的不同进程是并行运行的但同一进程中的逻辑描述语句则是顺序运行的因而在进程中只能设置顺序语句(4) 进程的激活必须由敏感信号表中定义的任一敏感信号的变化来启动否则必须有一个显式的WAIT 语句来激励(5) 结构体中多个进程之所以能并行同步运行 一个很重要的原因是进程之间的通信是通过传递信号和共享变量值来实现的所(6) 进程是 VHDL 重要的建模工具(7) 进程有组合进程和时序进程两种类型 组合进程只产生组合电路时序进程产生时序和相配合的组合电路这两种类型的进程设计必须密切注意VHDL 语句应用的特殊方面这在多进程的状态机的设计中各进程有明确分工子程序(SUBPROGRAM)VHDL 子程序具有可重载性的特点即允许有许多重名的子程序但这些子程序的参数类型及返回值数据类型是不同的子程序的可重载性是一个非常有用的特性3.5.1 函数FUNCTION函数的语言表达格式如下FUNCTION 函数名参数表RETURN 数据类型-函数首FUNCTION 函数名参数表RETURN 数据类型 IS - 函数体 说明部分 BEGIN顺序语句END FUNCTION 函数名1. 函数首函数首是由函数名参数表和返回值的数据类型三部分组成的2 函数体函数体包含一个对数据类型常数变量等的局部说明以及用以完成规定算法或转换的顺序语句部分一旦函数被调用就将执行这部分语句在函数体结尾需以关键词END FUNCTION 以及函数名结尾重载函数 OVERLOADED FUNCTIONVHDL 允许以相同的函数名定义函数但要求函数中定义的操作数具有不同的数据类型以便调用时用以分辨不同功能的同名函数即同样名称的函数可以用不同的数据类型作为此函数的参数定义多次以此定义的函数称为重载函数过程 PROCEDUREVHDL 中子程序的另外一种形式是过程PROCEDURE 过程的语句格式是PROCEDURE 过程名参数表- 过程首PROCEDURE 过程名 参数表IS说明部分BIGIN - 过程体顺序语句END PROCEDURE 过程名与函数一样过程也由两部分组成即由过程首和过程体构成过程首也不是必需的过程体可以独立存在和使用即在进程或结构体中不必定义过程首而在程序包中必须定义过程首过程首由过程名和参数表组成参数表可以对常数变量和信号三类数据对象目标作出说明并用关键词IN OUT 和INOUT 定义这些参数的工作模式即信息的流向如重载过程OVERLOADED PROCEDURE库LIBRARY库LIBRARY 的语句格式如下LIBRARY 库名IEEE 库是VHDL 设计中最为常见的库它包含有IEEE 标准的程序包和其它一些支持工业标准的程序STD_LOGIC_1164NUMERIC_BIT 和NUMERIC_STD 等程序STD 库VHDL 语言标准定义了两个标准程序包即STANDARD 和TEXTIO 程序包文件输入/输出程序包它们都被收入在STD 库中只要在VHDL 应用环境中即可随时调用这两个程序包中的所有内容即在编译和综合过程中VHDL 的每一项设计都自动地将其包含进去了由于STD 库符合VHDL 语言标准在应用中不必如IEEE 库那样以显式表达出来如在程序中以下的库使用语句是不必要的WORK 库WORK 库是用户的VHDL 设计的现行工作库用于存放用户设计和定义的一些设计单元和程序包因而是用户的临时仓库用户设计项目的成品半成品模块以及先期已设计好的元件都放在其中VITAL 库使用VITAL 库可以提高VHDL 门级时序模拟的精度因而只在VHDL 仿真器中使用USE 语句的使用将使所说明的程序包对本设计实体部分或全部开放即是可视的USE语句的使用有两种常用格式USE 库名.程序包名.项目名USE 库名.程序包名.ALL程序包PACKAGE程序包的内容主要由如下四种基本结构组成因此一个程序包中至少应包含以下结构中的一种h 常数说明 在程序包中的常数说明结构主要用于预定义系统的宽度如数据总线通道的宽度h VHDL 数据类型说明主要用于在整个设
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 重庆人文科技学院《奥尔夫音乐教育》2022-2023学年第一学期期末试卷
- 重庆财经学院《信息系统前端综合设计》2022-2023学年期末试卷
- 2024北京工大附中高二(上)期中数学(教师版)
- 重庆三峡学院《高级语言程序》2021-2022学年期末试卷
- 重庆人文科技学院《市场调查与预测分析实训》2021-2022学年第一学期期末试卷
- 重庆人文科技学院《人力资源管理综合模拟实训》2021-2022学年第一学期期末试卷
- 2021年新课标人教版高考生物必修选修知识点全册归纳清单
- 重庆人文科技学院《景观训练》2022-2023学年第一学期期末试卷
- 重庆人文科技学院《教师资格笔试与面试实训》2021-2022学年第一学期期末试卷
- 2021医院感控持续改进手册(护士版)
- 幼儿园幼小衔接实施方案(修改)
- 2023北京海淀区八上初二期末数学试卷及答案
- 浙江重症医学专科护士理论考核试卷与答案
- 沟槽土方开挖工程专项施工方案范文
- 住宅质量通病防治手册=防渗漏篇
- 第二单元良知与悲悯《学习任务三:分析戏剧冲突,探究悲剧产生的原因》名师单元教学设计2课时
- 产品质量风险辨识与控制清单范例
- 文化差异与跨文化交际知到章节答案智慧树2023年郑州大学
- 电力电缆试验
- 压疮与失禁性皮炎鉴别
- 2023跨界联名营销趋势报告-SocialBeta
评论
0/150
提交评论