[信息与通信]VHDL程序的主要描述语句

上传人:无*** 文档编号:177550454 上传时间:2022-12-26 格式:PPT 页数:91 大小:3.62MB
收藏 版权申诉 举报 下载
[信息与通信]VHDL程序的主要描述语句_第1页
第1页 / 共91页
[信息与通信]VHDL程序的主要描述语句_第2页
第2页 / 共91页
[信息与通信]VHDL程序的主要描述语句_第3页
第3页 / 共91页
资源描述:

《[信息与通信]VHDL程序的主要描述语句》由会员分享,可在线阅读,更多相关《[信息与通信]VHDL程序的主要描述语句(91页珍藏版)》请在装配图网上搜索。

1、3.5 VHDL3.5 VHDL的的 主主 要要 描描 述述 语语 句句VHDL程序组成部分及其功能程序组成部分及其功能VHDLVHDL程序程序实体(实体(EntityEntity)结构体(结构体(ArchitectureArchitecture)配置(配置(ConfigurationConfiguration)包集合(包集合(PackagePackage)库(库(LibraryLibrary)基本设计单元基本设计单元所必需的部分所必需的部分实体实体-规定设计单元的输入规定设计单元的输入输出接口信号和引脚输出接口信号和引脚构造体构造体-定义设计单元的具体定义设计单元的具体构造或功能(行为)构造

2、或功能(行为)vhdl中的主要描述语句分为两类:描述行为和描述结构。描述行为描述行为并行信号赋值并行信号赋值 进程进程 断言断言 子程序子程序 描述结构描述结构元件元件 端口映射端口映射生成生成参数说明参数说明一描述行为:描述信号的变换、组合、传输。描述行为描述行为并行信号赋值并行信号赋值 进程进程 断言断言 子程序子程序 1.并行信号赋值 包括:(1)基本型;(2)条件型;(3)选择型;其中,条件语句内部有优先级,按顺序执行,基本及选择语句都是并行语句(1)基本型 格式:信号名信号名=敏感信号量表达式敏感信号量表达式 after 时间表达式 例:s=x xor y;sum=s xor cin

3、 after 1ns;说明:若未注明延时表示延时很小,延时。延时可分为两类:传输延时与惯性延时 传输延时传输延时:模拟信号在连线(或传输线)上的延时。格式:b=transport a after 20ns;惯性延时:惯性延时:用于模拟器件或系统的延时特性,也称固有延时。格式:b=inertial a after 20ns;或b=a after 20ns;即缺省时指inertial固有延时 例:2选1多路选择器实体的语法格式:实体的语法格式:entity entity 实体名实体名 isis generic(generic(参数名:数据类型:初始值参数名:数据类型:初始值);对类属参数进行说明对

4、类属参数进行说明 portport(端口名(端口名1 1:方向:方向 数据类型;数据类型;.端口名端口名n n:方向:方向 数据类型数据类型);end end 实体名实体名;(1076-1987 version);(1076-1987 version)end entityend entity实体名实体名;(1076-1993 version);(1076-1993 version)端口方向(端口类型)结构体的语法格式:的语法格式:architecture 结构体名称 of 实体名称 is 说明语句 内部信号、常数、数据类型、子程序(函数、过程)、元件等的说明;begin 功能描述语句;end

5、architecture 结构体名称;vhdl中的主要描述语句分为两类:描述行为和描述结构。描述行为描述行为并行信号赋值并行信号赋值 进程进程 断言断言 子程序子程序 描述结构描述结构元件元件 端口映射端口映射生成生成参数说明参数说明1.并行信号赋值 包括:(1)基本型;(2)条件型;(3)选择型;其中,条件语句内部有优先级,按顺序执行,基本及选择语句都是并行语句(2)条件型 根据不同的条件给目标信号赋不同的值。格式:目标信号=表达式1 when 条件1 else 表达式2 when 条件2 else .表达式n-1 when 条件n-1 else 表达式n when 条件n;(2)条件型说明

6、:(1)赋值情况:满足某个条件,就将对应的表达式的值代入目标信号。(2)最后一个表达式可以不跟条件,表示上述条件均不满足时,将该表达式的值代入目标信号。(3)执行:条件型信号赋值语句是按顺序执行的,与进程中的多if语句等价,因此有优先级,前面的优先级最高,但if语句可以嵌套,该语句不能嵌套,但if语句只能在进程中使用。例:2选1多路选择器例:用条件型语句设计一个四选一的数据选择器例:用条件型语句设计一个四选一的数据选择器练习:用条件型语句设计一个八选一的数据选择器vhdl中的主要描述语句分为两类:描述行为和描述结构。描述行为描述行为并行信号赋值并行信号赋值 进程进程 断言断言 子程序子程序 描

7、述结构描述结构元件元件 端口映射端口映射生成生成参数说明参数说明1.并行信号赋值 包括:(1)基本型;(2)条件型;(3)选择型;其中,条件语句内部有优先级,按顺序执行,基本及选择语句都是并行语句(2)条件型 根据不同的条件给目标信号赋不同的值。格式:目标信号=表达式1 when 条件1 else 表达式2 when 条件2 else .表达式n-1 when 条件n-1 else 表达式n when 条件n;(3)选择型 根据选择条件表达式的值不同,给目标信号赋不同的值。格式:with 信号 select 目标信号=表达式1 when 条件1,表达式2 when 条件2,.表达式n when

8、 条件n;表达式n when others;(3)选择型说明:(1)赋值情况:当被选择的信号发生变化时,启动执行,满足哪一个条件,就将其对应的表达式代入目标信号。(2)选择型语句中各行结尾均未“,”,只有最后一行用“;”,不能有重叠的条件分支,最后条件可为 others,若最后条件不为 others,则其它条件必须包含表达式的所有可能值。(3)执行:选择型信号赋值语句无优先级顺序,与进程中的 case 语句等价。例:用选择型语句设计一个四选一的数据选择器例:用选择型语句设计一个四选一的数据选择器练习:用选择型语句设计一个八选一的数据选择器三种并行信号赋值语句的共同特点:(1)赋值目标必须时信号

9、,与其他并行语句同时执行,与书写顺序无关;(2)每一个信号赋值语句等效于一个进程语句,所有输入信号的变化都将启动该语句的执行。c=a xor b;一描述行为:描述信号的变换、组合、传输。描述行为描述行为1.1.并行信号赋值并行信号赋值 2.2.进程进程 3.3.断言断言 4.4.子程序子程序 2.2.进程进程 进程的特点:进程的特点:(1)进程内部的顺序性;(2)进程的启动与挂起;(3)进程与进程,或其它并发语句之间的并发性及通信;2.2.进程进程 进程的格式:进程的格式:进程名:process(敏感信号表)说明语句;(变量、数据类型和子程序,可无)begin 顺序描述语句;end proce

10、ss 进程名;例:二选一的数据选择器例:二选一的数据选择器 architecture arch of mux21a is begin p1:process(a,b,s)variable d,e,:bit;begin d:=a and(not s);e:=b and s;y=d or e;end process p1;end arch进程进程说明:(1)process语句可由敏感量启动,启动后将从上至下逐句执行一遍,中间不能控制其启、停,若process后无敏感量,则必须由wait语句,若都无,则程序会周而复始的循环执行;进程也可由wait语句来启动,但不能同时使用敏感信号和wait,也不能同时

11、没有。(2)一个结构体中的多个进程之间是并行执行的,进程内部是顺序执行的。进程进程说明:(3)进程之间的通信是通过信号量来实现的,信号量可以将值带出进程,而变量的值要从进程内部输出,则必须将其值代入信号量,由信号量带出进程。(4)同步进程的敏感信号表中只有时钟信号,而异步进程的敏感信号表总除了时钟信号外还有其他信号。进程中的语句进程中的语句 等待语句;顺序信号赋值;控制语句,控制语句是均按顺序执行的语句;包括进程中控制语句进程中控制语句 控制语句控制语句 分支分支 循环循环 case if for 无限无限whilenext,exit进程中的语句进程中的语句 等待语句;顺序信号赋值;控制语句;

12、2.2.进程进程 进程的格式:进程的格式:进程名:process(敏感信号表)说明语句;(变量、数据类型和子程序,可无)begin 顺序描述语句;end process 进程名;(1)进程中的wait语句wait语句用于控制进程的启、停只能用于进程的开始或结尾处,有四种形式:wait on 信号表;表示待表中信号有变化时进程启动。wait until条件表达式;当条件满足(真),进程启动。wait for 时间表达式;等到状态时限到,进程启动,不可综合,不讨论。wait;无限等待。注意:条件表达式及时间表达式若为表达式需加括号。例:以二选一数据选择器为例,分别写出四种进程,判断对错。archi

13、tecture arch of mux21a is begin p1:process(a,b,s)variable d,e,:bit;begin d:=a and(not s);e:=b and s;y=d or e;end process p1;end arch例:以二选一数据选择器为例,分别写出四种进程,判断对错。architecture arch of mux21a is begin p2:process variable d,e,:bit;begin d:=a and(not s);e:=b and s;y=d or e;end process p2;end arch例:以二选一数据选

14、择器为例,分别写出四种进程,判断对错。architecture arch of mux21a is begin p3:process(a,b,s)variable d,e,:bit;begin d:=a and(not s);e:=b and s;y=d or e;wait on a,b,s;end process p3;end arch;例:以二选一数据选择器为例,分别写出四种进程,判断对错。architecture arch of mux21a is begin p4:process(a,b,s)variable d,e,:bit;begin d:=a and(not s);e:=b an

15、d s;y=d or e;wait on a,b,s;end process p4;end arch进程中的语句进程中的语句 等待语句;顺序信号赋值;控制语句,控制语句是均按顺序执行的语句;包括(2)顺序语句 顺序信号赋值语句:形式与并行信号赋值语句相同,但执行方式不同,顺序语句的执行严格按照语句的先后顺序,例:二选一的数据选择器 architecture arch of mux21a is begin p1:process(a,b,s)variable d,e,:bit;begin d:=a and(not s);e:=b and s;y=anots or bs;end process p1

16、;end arch进程中的语句进程中的语句(2)进程等待语句;顺序信号赋值;控制语句,控制语句是均按顺序执行的语句;包括(3)控制语句控制语句:控制程序的分支和循环。控制语句控制语句 分支分支 循环循环 case if for 无限无限whilenext,exit if if 语句:只能在进程内部使用。语句:只能在进程内部使用。if if 语句有三种:语句有三种:(1 1)if if 语句的门闩控制(语句的门闩控制(if ifthenthen)(2 2)if if 二分支(二分支(if ifthenthenelseelse)(3 3)if if 多分支多分支(if ifthenthenelsi

17、felsif.else.else)if if 语句:只能在进程内部使用。语句:只能在进程内部使用。if if 语句的门闩控制(语句的门闩控制(if ifthenthen)格式:if 条件 then 顺序语句;end if;例:if (ena=1)then q=d;end if;综合后生成锁存器(latch)条件改为时钟沿,则生成 D触发器:寄存器的数量?上升沿的描述上升沿的描述上升沿的描述if if 二分支(二分支(if ifthenthenelseelse)格式:if 条件 then 顺序语句;else 顺序语句;end if;用条件来选择两条不同执行路径。例:二选一选择器 architec

18、ture rtl of mux2 is begin process(a,b,sel)begin if(sel=1)then y=a;else y=b;end if;end process;end rtl;if if 多分支(多分支(if ifthenthenelsifelsif.else.else)if语句的多选择控制又称为 if 语句的嵌套。格式:if 条件 then 顺序语句;elsif 条件 then 顺序语句;elsif 条件 then 顺序语句;else 顺序语句;end if;例:四选一选择器 If语句的说明:(1)if语句的条件判断输出是布尔量,即真(true)假(false),

19、因此在if语句的条件表达式中只能使用关系操作符及逻辑运算操作的组合表达式;(2)if 多分支语句中隐含了优先级别的判断,最先出现的条件优先级最高,可用于设计具有优先级的电路,如8-3优先级编码器等。(3)不完整条件语句综合结果完整条件语句综合结果:q=aWHEN sela=1ELSEbWHEN selb=1ELSEc;If-Then StatementsIf-Then Statements Similar to Conditional Signal AssignmentPROCESS(sela,selb,a,b,c)BEGIN IF sela=1 THEN q=a;ELSIF selb=1 T

20、HEN q=b;ELSE q=c;END IF;END PROCESS;selacbaselbq练习:用if语句及条件型语句设计8-3优先级编码器。input(0)y(0)y(2)y(1)input(1)input(2)input(3)input(4)input(5)input(6)input(7)输输 入入编码输出编码输出InputInput(0)InputInput(1 1)InputInput(2 2)InputInput(3 3)InputInput(4 4)InputInput(5 5)InputInput(6)InputInput(7 7)y2y2y1y1y0y0 x xx xx

21、xx xx xx xx x0 01 11 11 1x xx xx xx xx xx x0 01 11 11 10 0 x xx xx xx xx x0 01 11 1 1 10 01 1x xx xx xx x0 01 11 11 11 10 00 0 x xx xx x0 01 11 11 11 10 01 11 1x xx x0 01 11 11 11 11 10 01 10 0 x x0 01 11 11 11 11 11 10 00 01 10 01 11 11 11 11 11 11 10 00 00 08-3优先级编码器。库及实体的描述LIBRARY IEEE;LIBRARY IE

22、EE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ENTITY priorityencoderpriorityencoder IS ISPORT(PORT(input:IN STD_LOGIC_VECTOR(7 input:IN STD_LOGIC_VECTOR(7 DOWNTO 0);DOWNTO 0);y:OUT STD_LOGIC_VECTOR(2 y:OUT STD_LOGIC_VECTOR(2 DOWNTO 0)DOWNTO 0););END END priorityencoderpriorityenc

23、oder;结构体的描述ARCHITECTURE ARCHITECTURE rtlrtl OF OF priorityencoderpriorityencoder IS ISBEGINBEGINPROCESS(input)PROCESS(input)BEGINBEGIN IF (input(0)=IF (input(0)=0 0)THEN y=)THEN y=“111111”;ELSIF(input(1)=ELSIF(input(1)=0 0)THEN y=)THEN y=“110110”;ELSIF(input(2)=ELSIF(input(2)=0 0)THEN y=)THEN y=“101

24、101”;ELSIF(input(3)=ELSIF(input(3)=0 0)THEN y=)THEN y=“100100”;ELSIF(input(4)=ELSIF(input(4)=0 0)THEN y=)THEN y=“011011”;ELSIF(input(5)=ELSIF(input(5)=0 0)THEN y=)THEN y=“010010”;ELSIF(input(6)=ELSIF(input(6)=0 0)THEN y=)THEN y=“001001”;ELSIF(input(7)=ELSIF(input(7)=0 0)THEN y=)THEN y=“000000”;ELSE

25、y=ELSE y 顺序语句;when 分支条件2=顺序语句;.when 分支条件n=顺序语句;end case;case case 语句语句 其中的分支条件可有以下四种形式:when 值=顺序语句;指满足某一值执行后面的语句。when 值 to 值=顺序语句;指满足某一取值范围执行后面的语句。when 值|值|值|值=顺序语句;多值,或的关系,只要满足其中的一个值即可执行后面的语句。when others=顺序语句;其他所有缺省值。case case 语句语句说明(1):1)分支条件的值必须在选择条件的取值范围内。2)两个分支条件不能重叠,case语句执行时必须选中,且只能选中一个分支条件,如

26、果没有 others 分支条件存在,则分支条件必须覆盖表达式所有可能的值。3)对std_logc,std_logic_vector数 据类型要特别注意使用others分支条 件。case case 语句语句说明(2):4)符号“=”表示值和执行语句的对应关系;5)case语句中所有值是并行处理的,与if语句不同,if语句有优先级,此外,case语句对任意项无法描述,例优先编码器,用case语句不好描述,但用if语句却容易描述,但ieee正在讨论任意项的描述,也许将来可以用case语句来描述。例1:用case 语句描述四选一电路 ai0i1i2i3bq Similar to Selected S

27、ignal AssignmentPROCESSPROCESS(sela,selb,a,b,c)BEGINBEGIN CASE CASE sel ISIS WHEN WHEN“00”=q q q q q=X;END CASE END CASE;END PROCESSEND PROCESS;WITH WITH sel SELECTSELECT q=i0 WHEN WHEN“00”,i1 WHEN WHEN“01”,i2 WHEN WHEN“10”,i3 WHEN WHEN“11”,X WHEN OTHERS;WHEN OTHERS;selabcd2qCase StatementCase Statement 练习:设计38译码器 g1,g2a,g2b为控制端,当g1为高电平并且g2a和g2b均为低电平时才正常译码,否则输出均为高电平。38译码器 case case 语句语句 注意:通常在case语句中,when语句可以颠倒次序而不至于发生错误,但在if语句中,颠倒条件的次序往往会使逻辑功能发生变化,因为if语句有优先级的问题,在前面的优先级高于后面。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


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