版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、六、VHDL语言的并行语句,1、并行信号赋值语句,4、进程语句,3、块语句,2、条件信号赋值语句,5、元件例化语句,6、生成语句,7、并行过程调用语句,结构体,结构体中的并行语句模块,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 ARCHITECTURE curt;,2、条件信号赋值语句,赋值目标 =
2、 表达式 WHEN 赋值条件 ELSE 表达式 WHEN 赋值条件 ELSE . 表达式 ;,例 ENTITY mux IS PORT ( a,b,c : IN BIT ; p1,p2 : IN BIT ; z : OUT BIT ); END; ARCHITECTURE behv OF mux IS BEGIN z = a WHEN p1 = 1 ELSE b WHEN p2 = 1 ELSE c ; END;,选择信号赋值语句,WITH 选择表达式 SELECT 赋值目标信号 =表达式 WHEN 选择值, 表达式 WHEN 选择值, ., 表达式 WHEN 选择值;,例 . WITH se
3、lt SELECT muxout = a WHEN 0|1 , - 0或1 b WHEN 2 TO 5 , - 2或3,或4或5 c WHEN 6 , d WHEN 7 , Z WHEN OTHERS ; .,3、块语句,块标号 : BLOCK (块保护表达式) 接口说明; 类属说明; BEGIN 并行语句; END BLOCK 块标号 ;,与大部分的VHDL语句不同,BLOCK语句的应用,包括其中的类属说明和端口定义,都不会影响对原结构体的逻辑功能的仿真结果。,例 . b1 : BLOCK SIGNAL s1: BIT ; BEGIN S1 = a AND b ; b2 : BLOCK SI
4、GNAL s2: BIT ; BEGIN s2 = c AND d ; b3 : BLOCK BEGIN Z = s2 ; END BLOCK b3 ; END BLOCK b2 ; y = s1 ; END BLOCK b1 ; .,4、进程语句,进程标号: PROCESS ( 敏感信号参数表 ) IS 进程说明部分 BEGIN 顺序描述语句; END PROCESS 进程标号;,PROCESS语句结构的一般表达格式如下,在一个结构体中多个PROCESS语句可以同时并发运行,而进程内部语句之间是顺序关系。 PROCESS语句在VHDL程序中,是描述硬件并行工作行为的最常用、最基本的语句。,P
5、ROCESS 组成,PROCESS语句结构,进程说明,顺序描述语句,敏感信号参数表,信号赋值语句,变量赋值语句,进程启动语句,子程序调用语句,顺序描述语句,进程跳出语句,(1) 进程说明部分主要定义一些局部量,可包括数据类型、常数、属性、子程序等。但需注意,在进程说明部分中不允许定义信号和共享变量。,(2) 顺序描述语句部分可分为赋值语句、进程启动语句、子程序调用语句、顺序描述语句和进程跳出语句等。,(3)为启动进程,在进程中必须包含有一个显式的敏感信号量表或者包含一个WAIT语句;敏感信号表应当紧跟在PROCESS之后,含有敏感信号表的进程语句中不允许再显式出现WAIT语句。,说明,1. P
6、ROCESS为一无限循环语句,2. PROCESS语句具有顺序/并行运行双重性,3. 进程必须由敏感信号的变化来启动,4. 信号是多个进程间的通信线,PROCESS语句特点,5. 一个进程中只允许描述对应于一个时钟信号的同步时序逻辑,例:ENTITY mul IS PORT (a, b, c, selx, sely : IN BIT; data_out : OUT BIT ); END mul; ARCHITECTURE ex OF mul IS SIGNAL temp : BIT; BEGIN p_a : PROCESS (a, b, selx) BEGIN IF (selx = 0) TH
7、EN temp = a; ELSE temp = b; END IF; END PROCESS p_a; p_b: PROCESS(temp, c, sely) BEGIN IF (sely = 0) THEN data_out = temp; ELSE data_out = c; END IF; END PROCESS p_b; END ex;,上例的综合结果,例: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10 IS PORT(CLR: IN STD_LOGIC
8、; IN1:IN STD_LOGIC_VECTOR(3 DOWNTO 0); OUT1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END ENTITY CNT10; ARCHITECTURE ART OF CNT10 IS BEGIN PROCESS (IN1,CLR) IS BEGIN IF (CLR= 1 OR IN1= 1001) THEN OUT1S2,B=D1); -名字关联方式 U3:ND2 PORT MAP (S1,S2,C=Z1); -混合关联方式 END ARCHITECTURE ARTORD41;,例:,6、生成语句,标号: FOR 循环变量 IN
9、 取值范围 GENERATE 说明; BEGIN 并行语句; END GENERATE 标号 ;,表达式 TO 表达式 ; - 递增方式,如1 TO 5 表达式 DOWNTO 表达式 ; - 递减方式,如5 DOWNTO 1,标号: IF 条件 GENERATE 说明; BEGIN 并行语句; END GENERATE 标号 ;,取值范围,生成语句有一种复制作用,在设计中,只要根据某些条件,设定好某一元件或设计单位,就可以利用生成语句复制一组完全相同的并行元件或设计单元电路结构。,:,生成语句的两种形式,例:利用生成语句产生的八个相同的电路模块,主要的VHDL程序如下: COMPONENT C
10、OMP IS PORT (X:IN STD_LOGIC;Y: OUT STD_LOGIC); END COMPONENT COMP; SIGNAL A,B:STD_LOGIC_VECTOR (0 TO 7); GEN: FOR I IN ARANGE GENERATE U1:COMP PORT MAP (X= A(I), Y=B(I); END GENERATE GEN; ,7、并行过程调用语句,PROCEDURE 过程名(参数1;参数2;) IS 声明语句; BEGIN 顺序处理语句; END 过程名;,并行过程调用语句可以作为一个并行语句直接出现在结构体或块语句中。并行过程调用语句的功能等
11、效于包含了同一个过程调用语句的进程。并行过程调用语句的语句调用格式与前面讲的顺序过程调用语句是相同的。,过程调用的实质内容要先装入程序包中(Package):,过程名(关联参数表);,并行过程调用:,位置关联方式,名字关联方式 =,参数关联方式,例:设有一过程PROCEDURE vect(a,b:IN BIT; x,y:INOUT BIT); 则调用时: 位置关联方式:vect(in1,in2,out1,out2); 名字关联方式:vect(a=in1,b=in2,x=out1,y=out2);,使用说明,1、过程的参数表中可以使用IN、OUT、INOUT三种;(不能理解为端口) 2、过程可以
12、返回多个变量(通过OUT、INOUT 定义的参数返回); 3、参数对象可以为常量(IN方式)、信号、变量; 4、在进程外的过程调用为并行过程调用;在进程内的为顺序过程调用;,函数调用:,FUNCTION 函数名(参数1;参数2) RETURN 数据类型名 IS 定义变量语句; BEGIN 顺序处理语句; RETURN 返回变量名; END 函数名;,函数调用的实质内容要先装入程序包中(Package):,函数名(关联参数表);,使用说明,1、函数的参数表中只能为IN的信号与常量; 2、函数返回值只有一个(通过RETURN实现,由函数名传给调用者); 3、也可以像过程一样使用位置关联方式和名字关
13、联方式;,1、过程可以有多个返回值,函数只有一个; 2、参数传递方式不同: 过程(IN OUT INOUT) 函数(IN),过程(Procedure) 函数(Function)两者的主要区别:,1 库的种类,A. IEEE库,B. STD库,C. WORK库,D. VITAL库,七、VHDL库,2 库的用法,LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.STD_ULOGIC ; USE IEEE.STD_LOGIC_1164.RISING_EDGE ;,USE语句的使用有两种常用格式: USE 库名.程序包名.项目名 ; USE 库名.程序包名.ALL ;,库的
14、作用范围从一个实体说明开始到它所属的结构体、配置为止,当有两个实体时,第二个实体前要另加库和包的说明。,程序包,常数说明,VHDL数据类型说明,元件定义,子程序,定义程序包的一般语句结构如下: PACKAGE 程序包名 IS - 程序包首 程序包首说明部分; END 程序包名; PACKAGE BODY 程序包名 IS - 程序包体 程序包体说明部分以及包体内顺序语句; END 程序包名;,3 VHDL程序包,例: 程序包首,PACKAGE logic IS TYPE three_level_logic IS (0,1,z); -数据类型项目 CONSTANT unknown_value :
15、three_level_logic :=0; - 常数项目 FUNCTION invert (input: three_level_logic) RETURN three_level_logic; -函数项目 END logic;,PACKAGE BODY logic IS FUNCTION invert (input: three_level_logic); -函数项目描述 BEGIN CASE input IS WHEN 0 = RETURN 1; WHEN 1 = RETURN 0; WHEN Z = RETURN Z; END CASE; END invert; END logic;,
16、程序包体,USE logic.three_level_logic, logic.invert; -使用数据类型和 函数两个项目 ENTITY inverter IS PORT(x: IN three_level_logic ; y: OUT three_level_logic); END inverter; ARCHITECTURE inverter_body OF inverter IS BEGIN kk: PROCESS BEGIN Y=invert(x) AFTER 10ns; WAIT ON x; END PROCESS; END inverter_body;,该包使用例:,PACKA
17、GE seven IS SUBTYPE segments is BIT_VECTOR(0 TO 6) ; TYPE bcd IS RANGE 0 TO 9 ; END seven ; USE WORK.seven.ALL ; - WORK库默认是打开的, ENTITY decoder IS PORT (input: bcd; drive : out segments) ; END decoder ; ARCHITECTURE simple OF decoder IS BEGIN WITH input SELECT drive = B1111110 WHEN 0 , B0110000 WHEN 1 , B1101101 WHEN 2 , B1111001 WHEN 3 , B0110011 WHEN 4 , B1011011 WHEN 5 , B1011111 WHEN 6 , B1110000 WHEN 7 , B1111111 WHEN 8 , B1111011 WHEN 9 , B0000000
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大专平面设计课程教学框架
- 生命安全教育主题班会
- 安全教育洪灾应对指南
- 教育论坛策划与实施方案
- 店铺交易流程规范与实施
- 教育与政治制度
- 5.25心理健康教育概述
- 面包制作流程
- 课件制作大赛教程
- 六十岁婚后协议书
- 2025年家电维修工(四级)技术创新考试试卷及答案
- REACH SVHC 251项高关注物质清单
- 心静脉导管、PICC、CVC管道维护考试题(含答案)
- 行政工作行政工作处理标准化流程
- 粮食行业消防安全培训课件
- 2025年广东深圳江铜融资租赁有限公司招聘笔试
- 2025年四川省凉山州小升初语文试卷
- 2025版标准劳动合同模板下载
- 家长情绪管理课件教学
- 金融企业贷款减免管理办法
- 民间协会预算管理办法
评论
0/150
提交评论