版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、3.1 顺序语句顺序语句3.2 VHDL并行语句并行语句3.1 顺序语句顺序语句3.1.1 赋值语句赋值语句信号赋值语句信号赋值语句变量赋值语句变量赋值语句赋值目标赋值符号赋值源3.1.2 IF-ELSE 语句语句语法格式:语法格式:IF 条件式条件式1 THEN语句命令语句命令A方块;方块;ELSIF 条件式条件式2 THEN语句命令语句命令B方块;方块;ELSIF 条件式条件式3 THEN:ELSE语句命令语句命令N方块;方块;END IF;3.1 顺序语句顺序语句3.1.3 CASE语句语句CASE语句的结构如下:语句的结构如下:CASE CASE 选择信号选择信号 ISISWhen W
2、hen 信号值信号值1 1 = = 顺序语句;顺序语句;When When 信号值信号值2 2 = = 顺序语句;顺序语句;.END CASE END CASE ;信号值可以有四种不同的表达方式:信号值可以有四种不同的表达方式: 单个普通数值,如单个普通数值,如6 6。 数值选择范围,如数值选择范围,如(2 TO 4)(2 TO 4),表示取值,表示取值为为2 2、3 3或或4 4。 并列数值,如并列数值,如3 3 5 5,表示取值为,表示取值为3 3或者或者5 5。 混合方式,以上三种方式的混合。混合方式,以上三种方式的混合。【例【例3-1】 . . . . . . CASE sel IS
3、WHEN 0 = z1 z2 z3 z4AAAA=0;END CASE; END PROCESS;OP10 ; - 当当a大于大于10时跳出循环时跳出循环 END LOOP L2; . 进行下面范例前,先介绍数字逻辑里,常看到的同位产生器的概念,再用For-Loop循环方式来实现。 同位共分为两种形式:l奇同位(Odd Parity Bit):数据位与奇同位的1个数为奇数。 l偶同位(Even Parity Bit):数据位与奇同位的1个数为偶数。 比如数据位“D0D1D2”=“010”,由于它只有一个“1”,所以必须将偶同位P设定为“1”,以便使它变成“D0D1D2P”=“0101”。 在传
4、统的数字逻辑电路中,偶同位P可以用两个XOR门来实现。D0D1D2P图4 逻辑电路图【例【例3-4】(程序文件(程序文件EDAch3_2_1.vhd)用用For-Loop语句设计同位产生器语句设计同位产生器 LIBRARY ieee; USE ieee.std_logic_1164.all; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ch3_2_1 ISPORT(D: INSTD_LOGIC_VECTOR(0 TO 2);Z: OUT STD_LOGIC_VECTOR(0 TO 3); END c
5、h3_2_1; ARCHITECTURE a OF ch3_2_1 IS BEGIN PROCESS(D)VARIABLE TMP: STD_LOGIC; BEGINTMP:=0;-变量变量Tmp起始设成起始设成“0”0”FOR I IN 0 TO 2 LOOP-程序循环执行三次程序循环执行三次 TMP:=TMP XOR D(I);END LOOP;Z=D & TMP;-数据与同位结果数据与同位结果Tmp并置输出并置输出 END PROCESS; END a;仿真结果:仿真结果: 为了便于观察,仿真模式(为了便于观察,仿真模式(Simulation Mode)选功能)选功能仿真(仿真(Func
6、tional)。可以看到,数据)。可以看到,数据D=“011”时,输出数时,输出数据据Z(含同位)(含同位)=“0110”。综合后的综合后的RTL图图图5 例3-4的RTL图 可以将可以将RTL图(图图(图5)与传统的逻辑电路图(图)与传统的逻辑电路图(图4)进行比较,看到用进行比较,看到用VHDL语言描述的电路是符合要求的。语言描述的电路是符合要求的。这是这是Quartus II的一个优点。的一个优点。3.1.5 WAIT语句语句语法格式:语法格式:Wait UntilWait Until 条件式;条件式; 上述命令的意义是要求等待条件式成立,常和上述命令的意义是要求等待条件式成立,常和Pr
7、ocess或或Loop命令合用。命令合用。【例【例3-5】(程序文件(程序文件EDAch2_4_1.vhd)使用使用Wait Until 和和 Process命令命令LIBRARY ieee;USE ieee.std_logic_1164.all;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ch2_4_1 ISPORT(A,RST : INSTD_LOGIC;OP: OUTSTD_LOGIC);END ch2_4_1;ARCHITECTURE a OF ch2_4_1 ISBEGINPROCESSBEG
8、IN OP A A Null; -上面不成立时,不产生任何操作上面不成立时,不产生任何操作End Case;3.2 VHDL并行语句并行语句结构体中的并行语句主要有七种:1 1、并行信号赋值语句(、并行信号赋值语句(Concurrent Signal AssignmentsConcurrent Signal Assignments)。)。2 2、进程语句、进程语句(Process Statements)(Process Statements)。3 3、块语句、块语句(Block Statements)(Block Statements)。4 4、条件信号赋值语句、条件信号赋值语句(Select
9、ed Signal Assignments)(Selected Signal Assignments)。5 5、元件例化语句、元件例化语句(Component Instantiations)(Component Instantiations),其中包括类属配置语句。,其中包括类属配置语句。6 6、生成语句、生成语句(Generate Statements)(Generate Statements)。7 7、并行过程调用语句、并行过程调用语句(Concurrent Procedure Calls)(Concurrent Procedure Calls)。ARCHITECTURE 结构体名结构体名
10、 OF 实体名实体名 IS 说明语句说明语句 BEGIN 并行语句并行语句END ARCHITECTURE 结构体名结构体名3.2.1 并行信号赋值语句并行信号赋值语句1. 1. 简单信号赋值语句简单信号赋值语句赋值目标赋值目标 = 表达式表达式以下结构体中的五条信号赋值语句的以下结构体中的五条信号赋值语句的执行是并行发生的。执行是并行发生的。ARCHITECTURE curt OF bc1 ISSIGNAL s1, e, f, g, h : STD_LOGIC ;BEGIN output1 = a AND b ; output2 = c + d ; g = e OR f ; h = e XO
11、R f ; s1 = g ;END ARCHITECTURE curt;2. 2. 条件信号赋值语句条件信号赋值语句信号信号A = 信号信号B WHEN 赋值条件赋值条件 ELSE 信号信号C WHEN 赋值条件赋值条件 ELSE . 信号信号X ;3.2.1 并行信号赋值语句并行信号赋值语句LIBRARY ieee;USE ieee.std_logic_1164.all;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ch2_3_2 ISPORT(X,Y: INSTD_LOGIC;Z: OUT STD_L
12、OGIC);END ch2_3_2;ARCHITECTURE a OF ch2_3_2 ISBEGINZ=0 WHEN (X=0 AND Y=0)ELSE 1 WHEN(X=0 AND Y=1)ELSE 1 WHEN(X=1 AND Y=0)ELSE 0 ;END a;【例【例3-6】(程序文件(程序文件EDAch2_3_2.vhd)用用When-Else命令完成真值表功能命令完成真值表功能输入输入输出输出 X YZ 0 00 0 11 1 01 1 103. 3. 选择信号赋值语句选择信号赋值语句WITH 选择选择信号信号X SELECT 信号信号Y =信号值信号值A WHEN 选择值选择值
13、信号值信号值B WHEN 选择值选择值.信号值信号值Z WHEN 选择值;选择值;3.2.1 并行信号赋值语句并行信号赋值语句LIBRARY ieee;USE ieee.std_logic_1164.all;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ch2_3_3 ISPORT(S: INSTD_LOGIC_VECTOR(1 DOWNTO 0);Z: OUTSTD_LOGIC);END ch2_3_3;ARCHITECTURE a OF ch2_3_3 ISBEGINWITH S SELECTZ=0
14、WHEN 00, 1 WHEN 01, 1 WHEN 10, 0 WHEN OTHERS;END a;【例【例3-7】(程序文件(程序文件EDAch2_3_3.vhd)用用Select-Case命令完成真值表功能命令完成真值表功能输入输入输出输出 X YZ 0 00 0 11 1 01 1 10实例说明:实例说明: 上述例6和例7程序的功能是一样的,都是完成XOR门的电路功能。 使用With-Select时,必须特别注意它的功能在于,选择信号是针对某一特定的信号,而无法像例6中When-Else命令,作较多的信号条件方式比较。例3-6 时序波形例3-7 时序波形延时延时3.2.2 块语句结构(
15、块语句结构(BLOCK)块标号块标号 : BLOCK (块保护表达式)块保护表达式) 接口说明接口说明 类属说明类属说明 BEGIN 并行语句并行语句 END BLOCK 块标号块标号 ;3.2 VHDL并行语句并行语句输入值输入值半加法器(半加法器(M+N)半减法器(半减法器(M-N)MNSumCarryDifferenceBorrow000000011011101010110100半加法器、半减法器的真值表半加法器、半减法器的真值表【例【例3-83-8】采用】采用Block语句,设计半加器、半减器语句,设计半加器、半减器布尔表达式:布尔表达式:半加法器:半加法器:Sum=M NCarry=
16、MN半减法器:半减法器:Difference=M NBorrow=MN(M代表代表M信号取反向信号取反向) LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ch3_3_1 ISPORT(M,N: INSTD_LOGIC;C,S,B,D: OUTSTD_LOGIC);END ch3_3_1;ARCHITECTURE a OF ch3_3_1 ISBEGINHalf_adder:BLOCK -Half AdderBEGIN S=M
17、 XOR N; C=M AND N;END BLOCK Half_Adder;Half_Subtractor:BLOCK -Half SubtractorBEGIN D=M XOR N; B 连接端口连接端口名,名,.) ; -元件例化语句元件例化语句3.2 VHDL并行语句并行语句3.2.5 生成语句生成语句标号:标号: FOR 循环变量循环变量 IN 取值范围取值范围 GENERATE 组件标题:组件名称组件标题:组件名称Port Map(.)命令命令语句语句 END GENERATE 标号标号 ;表达式表达式 TO 表达式表达式 ; -递增方式,如递增方式,如1 TO 5表达式表达式 D
18、OWNTO 表达式表达式 ; -递减方式,如递减方式,如5 DOWNTO 1取值范围的语句格式,有两种形式:取值范围的语句格式,有两种形式:OP【例例3-9】 用用For-Generate语句,设计语句,设计4位移位寄存器位移位寄存器 本节所要介绍的For-Generate语句十分适用于高重复性的电路设计,比如图3-6的四位移位寄存器,可以看到 1个移位寄存器连续重复4次的电路,这时可考虑采用 For-Generate语句。DinCLK图3-6 逻辑电路图LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;
19、USE IEEE.STD_LOGIC_UNSIGNED.ALL;LIBRARY Altera; -使用使用Altera的的Library元件库元件库USE Altera.maxplus2.ALL;ENTITY ch3_4_1 ISPORT( DIN,CLK,CLRN,PRN: INSTD_LOGIC; Q1,Q2,Q3,Q4 : OUT STD_LOGIC );END ch3_4_1;ARCHITECTURE a OF ch3_4_1 IS SIGNAL DI: STD_LOGIC_VECTOR(0 TO 4);BEGINDI(0)DI(I),CLK=CLK, CLRN=CLRN,PRN=PR
20、N,Q=DI(I+1);END GENERATE;Q1=DI(1);Q2=DI(2);Q3=DI(3);Q4=DI(4);END a;范例程序范例程序(程序文件(程序文件EDAch3_4_1.vhd)综合后的综合后的RTL图图 由上图可知,用VHDL语言描述的电路与图3-6所要求的逻辑电路的设计是一致的。这样可以清楚、直观的看出设计的正确与否。图3-7 例3-9的RTL图仿真结果:仿真结果:传输延迟DIN 随着时钟脉冲周期,向右移动3.3 进程语句结构进程语句结构 3.3.1 进程语句格式进程语句格式PROCESS语句结构的一般表达格式如下语句结构的一般表达格式如下 进程标号进程标号: PROCESS ( : PROCESS ( 敏感信号参数表敏感信号参数表 ) IS) IS 进程说明部分进程说明部分 BEGIN BEGIN 顺序描述语句顺序描述语句 END PROCESS END PROCESS 进程标号进程标号;3.3 进程语句结构进程语句结构 3.3.2 PROCESS 组成组成PROCESS语句结构语句结构进程说明进程说明顺序描述语句顺序描述语句敏感信号参数表敏感信号参数表信号赋值语句变量赋值语句进程启动语句子程序调用语句顺序描述语句进程跳出语句3.3.3 进程要点进程要点1. PROCESS1. PR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 刨花板铺装工规章制度考核试卷含答案
- 花艺环境设计师岗前安全文明考核试卷含答案
- 孵化工岗位安全宣传考核试卷含答案
- 暑期网安课堂:文明上网保护个人隐私
- 高校顶岗实习岗前培训新范式:河北师范大学“TPTW模式”的深度解析与实践探索
- 高校英语专业学生英语语音错误剖析:溯源与教学优化策略
- 高校学生就业的资本驱动力:人力资本与家庭资本的实证探究
- 高校图书馆参考咨询:价值、困境与突破路径探究
- 高校全日制硕士研究生就业匹配的多维度解析-基于Y大学的实证洞察
- 高新技术企业风险投资中NFVA、项目创新与治理结构的联动效应及优化策略研究
- 2026安徽滁州市天长市镇街应急消防综合工作站招聘员额制安全监管员32人模拟试卷(考点精练)附答案详解
- 2026河北保定市国康医养发展集团有限公司公开招聘工作人员5人笔试参考试题及答案详解
- 2026年山西省中考数学试卷(含答案)
- 2026年法律职业资格考试《行政法与行政诉讼法》冲刺试卷
- 2025年司法行政基础知识真题及答案解析
- 2026年营养指导员考试真题及答案
- 骨科护理教学查房:脊柱侧弯患者的家庭护理指导
- 手足外科植皮护理查房
- GB/T 28561-2023船舶电气设备自动化、控制和测量仪表
- 交通信号灯控制器设计报告
- 户外低体温症的预防及救护讲义
评论
0/150
提交评论