VHDL基本语句用法教学文案

上传人:go****e 文档编号:137422965 上传时间:2020-07-08 格式:PPT 页数:74 大小:618.50KB
返回 下载 相关 举报
VHDL基本语句用法教学文案_第1页
第1页 / 共74页
VHDL基本语句用法教学文案_第2页
第2页 / 共74页
VHDL基本语句用法教学文案_第3页
第3页 / 共74页
VHDL基本语句用法教学文案_第4页
第4页 / 共74页
VHDL基本语句用法教学文案_第5页
第5页 / 共74页
点击查看更多>>
资源描述

《VHDL基本语句用法教学文案》由会员分享,可在线阅读,更多相关《VHDL基本语句用法教学文案(74页珍藏版)》请在金锄头文库上搜索。

1、第10章 VHDL基本语句,一:主要内容:VHDL基本语句讲解 顺序语句 并行语句 二:重点掌握:常用VHDL基本语句及应用,10.1.1 赋值语句,信号赋值语句,变量赋值语句,信号代入语句: 格式: 目的信号变量=信号变量表达式 例: a=b;,变量赋值语句: 格式: 目的变量:=表达式 例: c:=a+d,信号与变量的区别: (1)信号赋值可以有延迟时间,变量赋值无时间延迟 (2)信号除当前值外还有许多相关值,如历史信息等,变量只有当前值 进程对信号敏感,对变量不敏感 (3)信号可以是多个进程的全局信号,但变量只在定义它之后的顺序域可见 (4)信号可以看作硬件的一根连线,但变量无此对应关系

2、。,10.1 顺序语句,10.1.2 IF 语句已讲过,IF 条件 THEN END IF;,10.1.3 CASE语句,1) CASE语句的结构: CASE 表达式 IS When 选择值 = 顺序语句; When 选择值 = 顺序语句; . 【WHEN OTHERS =】; END CASE ;,2)多条件选择值的一般表达式: 选择值 |选择值 ,3)选择值 表达方式: (1)单个普通数值,如6。 (2)数值选择范围,如(2 TO 4),表示取值为 2、3或4。 (3)并列数值,如35,表示取值为3或者5。 (4)混合方式,以上三种方式的混合。,4)CASE 语句举例,LIBRARY IE

3、EE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux41 IS PORT (s4,s3, s2,s1 : IN STD_LOGIC; z4,z3, z2,z1 : OUT STD_LOGIC); END mux41; ARCHITECTURE activ OF mux41 IS SIGNAL sel : INTEGER RANGE 0 TO 15; BEGIN z1 z1 z2 z3 z4=1 ; - 当sel为815中任一值时选中 END CASE ; END activ ;,例【 10.1】, CASE 语句病句举例,【例10.2】,10.1.4 LOOP

4、语句,格式: LOOP标号: LOOP 顺序语句 END LOOP LOOP标号 ;,格式: LOOP标号: FOR 循环变量,IN 循环次数范围 LOOP 顺序语句 END LOOP LOOP标号;,见例1,见例2,见例3,1 、单个LOOP语句,2、FOR_LOOP语句,10.15 NEXT 语句-跳出本次循环,1、格式: (1)NEXT; 无条件终止当前的循环,跳回到本次循环LOOP语句处,开始下次循环。 (2)NEXT LOOP标号; - -同(1)。 (3)NEXT LOOP标号 WHEN 条件表达式;- - 条件表达式为TRUE,执行NEXT语句, 进入跳转操作,否则继续向下执行。

5、,2、注意:NEXT语句用于跳出本次循环 且控制内循环的结束. 在多重循环中必加标号。,3、举例,例1,例2,10.1.6 EXIT语句-结束循环状态,1、格式: (1)EXIT; - -结束本次循环 (2)EXIT LOOP标号; - - 同上 (3)EXIT LOOP标号 WHEN 条件表达式;,2、举例,例 1,3、NEXT与 EXIT区别: NEXT语句是转向LOOP语句的起始点。 EXIT 语句是转向LOOP语句的终点。,10.1.7 WAIT语句 - 等待语句,1)格 式: (1)WAIT; - - 功能:将程序挂起,直到满足条件。 (2) WAIT ON 信号表; (3)WAIT

6、 UNTIL 条件表达式; (4)WAIT FOR 时间表达式;,2)举 例,见例1,见例2,【例3】,说明 1 : 一般只有WAIT_UNTIL格式的等待语句可以被综合器接受(其余语句格式只能在VHDL仿真器中使用) , WAIT_UNTIL语句三种表达方式: WAIT UNTIL 信号=Value ; - (1) WAIT UNTIL 信号EVENT AND 信号=Value; - (2) WAIT UNTIL NOT 信号STABLE AND 信号=Value; - (3),说明2 : 对应的硬件结构相同的时钟信号clock上跳沿应用的四条WAIT语句: WAIT UNTIL clock

7、 =1; WAIT UNTIL rising_edge(clock) ; WAIT UNTIL clock =1 AND clockEVENT; WAIT UNTIL NOT clock STABLE AND clock =1 ;,3)说 明,说明3 : WAIT语句可用于Process 进程中的任何地方,已列出敏感信号的 Process中不能用WAIT语句。,10.1.8 子程序调用语句,1、过程调用 - 就是执行一个给定名字和参数的过程。,1)格式: 过程名(形参名= 实参表达式 ,形参名= 实参表达式) ;,2)一个过程的调用将分别完成以下三个步骤:,(1)将IN和INOUT模式的实参值

8、赋给欲调用的过程中与它们对应的形参; (2)执行这个过程; (3)将过程中IN和INOUT模式的形参值返回给对应的实参。,3)举例, 例1 ,【例2】,2、函数调用,函数调用与过程调用是十分相似的, 不同之处:调用函数将返还一个指定数据类型的值, 函数的参量只能是输入值。,1)格式: FUNCTION 函数名(参数表) RETURN 数据类型; - 函数首 FUNCTION 函数名(参数表) RETURN 数据类型 IS - - 函数体,2)详细内容已讲过,10.1.9 返回语句(RETURN),1)格式: 语句格式一: RETURN; -只用于结束过程,并不返回任何值。 语句格式二: RET

9、URN 表达式; -只用于函数,并返回一个值。,2)举例, 例1 过程调用返回例子, 例2 幻灯片 60函数调用返回例子,10.1.10 空操作语句(NULL),1)语句格式:NULL;,例:CASE Opcode IS WHEN 001 = tmp := rega AND regb ; WHEN 101 = tmp := rega OR regb ; WHEN 110 = tmp := NOT rega ; WHEN OTHERS = NULL ; END CASE ;,3)说明:在上例的CASE语句中,NULL用于排除一些不用的条件。 等同:WHEN OTHERS = tmp := reg

10、a ;,2)举例:,10.2 并行语句, 结构体中的并行语句种类: 1、并行信号赋值语句(Concurrent Signal Assignments)。 2、进程语句(Process Statements)。 3、块语句(Block Statements)。 4、条件信号赋值语句(Selected Signal Assignments)。 5、元件例化语句(Component Instantiations),其中包括类属 、 配置语句。 6、生成语句(Generate Statements)。 7、并行过程调用语句(Concurrent Procedure Calls)。, 并行语句位置: A

11、RCHITECTURE 结构体名 OF 实体名 IS 说明语句 BEGIN 并行语句 END 结构体名;,10.2.1 并行信号赋值语句,1. 简单信号赋值语句,格式:赋值目标 = 表达式,例: ARCHITECTURE curt OF bc1 IS SIGNAL s1, e, f, g, h : STD_LOGIC ; BEGIN output1 = a AND b ; output2 = c + d ; g = e OR f ; h = e XOR f ; s1 = g ; END curt; 注:例中的五条信号赋值语句的执行是并行发生的。,2. 条件信号赋值语句,赋值目标 = 表达式1

12、WHEN 赋值条件1 ELSE 表达式2 WHEN 赋值条件2 ELSE . 表达式n ;,1)格式:,2)举例:,【例1】 ENTITY mux IS PORT ( a,b,c : IN BIT ; p1,p2 : IN BIT ; z : OUT BIT ); END mux; ARCHITECTURE behv OF mux IS BEGIN z = a WHEN p1 = 1 ELSE b WHEN p2 = 1 ELSE c ; END;,例1的逻辑电路图见 图1,3. 选择信号赋值语句,WITH 选择表达式 SELECT 赋值目标信号 =表达式1 WHEN 选择值1 表达式2 WH

13、EN 选择值2 . 表达式n WHEN 选择值n;,1)格式:,2)举例:例2,例3,10.2.2 块语句结构(BLOCK),块标号 : BLOCK (块保护表达式) 接口说明 类属说明 BEGIN 并行语句 END BLOCK 块标号 ;,1)格式:,# 标号是必需的; # 在对程序进行仿真时,BLOCK中的语句是并行执行的,与书写顺序无关。 # 一个BLOCK等价于一个结构体。,2)说明:,3)举例:,【例2】,块语句嵌套例子: 【例3】,【 例1】,10.2.3 并行过程调用语句,1)格式:过程名(关联参量名);,2)举例:,【例1】,【例2】,【例3】,10.2.4 元件例化语句,CO

14、MPONENT 元件名 IS GENERIC (类属表); - 元件定义(说明)语句 PORT (端口名表); END COMPONENT 文件名; 例化名 :元件名 PORT MAP( 端口名 = 连接端口名,.) ; - - - - 元件例化(调用)语句。,1)格式:,(1) 元件声明语句用于调用已生成的元件,这些元件可能在库中, 也可能是预先编写的元件实体描述.; (2) 元件语句可以在ARCHITECTURE,PACKAGE和BLOCK的说明部分. (3)元件例化中,两层端口名(信号)之间的关系为映射关系:,2)说明:,3) 举例:例1 ,例 2 ,例 3,10.2.5 生成语句,标号

15、: FOR 循环变量 IN 取值范围 GENERATE 说明 BEGIN 并行语句 END GENERATE 标号 ;,2)格式:,标号: IF 条件 GENERATE 说明 Begin 并行语句 END GENERATE 标号 ;,取值范围的语句格式,有两种形式: 表达式 TO 表达式 ; - 递增方式,如1 TO 5 表达式 DOWNTO 表达式 ; -递减方式,如5 DOWNTO 1,3)说明:,1)作用:复制作用,根据某些条件,设定好某一元件或设计单位,就可利用 生成语句复制一组完全相同的并行元件或设计单位。, 生成语句四部分组成:,(2)生成方式,(3)说明部分,(4)并行语句,(1)标号,* 【例1】,* 【例2】,* 【例3】, 举例:,10.2.6 REPORT语句 -报告相关信息语句。 -格式: REPORT ;,10.2.7 断言语句 -时序仿真和程序调试的人机对话。 -格式: ASSERT REPORT SEVERITY,10.3 属性描述与定义语句,可综合属性: LEFT、RIGHT、HIGH、LOW、RANGE、REVERS RANGE、 LENGTH、EVENT及STABLE。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 其它小学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号