第3的章 VHDL数据类型与顺序语句.ppt

  1. 1、本文档共92页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3的章 VHDL数据类型与顺序语句

* * * * * ??一般在结构体中,类属的应用与常数是一样的,例如:当用实体例化一个设计实体的器件时,可以用类属表中的参数项定制这个器件,如可以将一个实体的传输延迟,上升和下降延时等参数加到类属参数表中,然后根据这些参数进行定制,这对于系统仿真控制是十分方便的。其中的常数名是由设计者确定的类属常数名,数据类型通常取 INTEGER 或TIME 等类型,设定值即为常数名所代表的数值,但需注意 VHDL 综合器仅支持数据类型为整数的类属值.因此,设计者可以从外面通过参数传递说明语句中的类属参量的重新设定,十分方便地改变设计实体或一个元件的内部电路结构和规模。 * * 3.3 IF语句使用示例 3.3.7 计数器更常用的VHDL表达方式 注意:Q的端口模式是OUT,由于Q没有输入的的端口特性,因此Q不能直接用表达式Q=Q+1,考虑到计数器必须建立一个用于计数累加的寄存器,因此,在计数器内部先定义一个Q1。由于Q1是内部信号,不必像端口信号那样需要定义他们的端口模式,即Q1的数据流动方向是不受方向限制的。 3.3 IF语句使用示例 3.3.7 计数器更常用的VHDL表达方式 3.3 IF语句使用示例 3.3.8 实用计数器的VHDL设计 IF语句属于类型3,嵌套了多个IF语句,产生计数器时序电路。 IF语句属于类型2,叙述完整,产生纯组合逻辑多路选择器, 3.3 IF语句使用示例 3.3.8 实用计数器的VHDL设计 3.3 IF语句使用示例 3.3.8 实用计数器的VHDL设计 3.3 IF语句使用示例 3.3.9 含同步并行预置功能的8位移位寄存器设计 1、一个时钟周期后将上一个时钟周期移位寄存器中的高7位二进制数,即当前值REG8(7 downto 0)赋给此寄存器的低7位REG8(6 downto 0)。于是其串行移空的最高位始终由并行预置数的最高位填补。 2、将上一时钟周期移位寄存器中的最低位即当前值REG8(0)箱QB输出 3.3 IF语句使用示例 3.3.9 含同步并行预置功能的8位移位寄存器设计 3.3 IF语句使用示例 3.3.10 优先编码器设计 3.3 IF语句使用示例 3.3.10 优先编码器设计 LOOP语句就是循环语句,可使所包含的一组顺序语句被循环执行,其执行次数可由设定的循环参数决定,循环的方式由NEXT和EXIT语句来控制。其语句格式如下: [LOOP 标号:] [重复模式] LOOP 顺序语句; END LOOP [LOOP 标号]; 3.4.1 LOOP循环语句 3.4 VHDL其它顺序语句 【例】 简单LOOP语句的使用。 … L2: LOOP A:=A+1; EXIT L2 WHEN A10; --当A大于10时跳出循环 END LOOP L2; … (1)单个LOOP循环语句 3.4 VHDL其它顺序语句 3.4.1 LOOP循环语句 (2)FOR_LOOP语句 WHILE LOOP语句格式 [LOOP 标号:] WHILE 循环控制条件 LOOP 顺序语句; END LOOP [LOOP 标号]; FOR后面的循环变量是一个临时变量,属LOOP语句的局部变量,不用事先定义。 “循环次数范围”规定LOOP语句中的顺序语句被执行的次数。循环变量从循环次数范围的初始值开始,每执行完一次顺序语句后递增1,直到循环次数范围指定的最大值。此外,循环次数范围应以常数表示,否则在LOOP体内的逻辑可以重复可能的范围,这将导致耗费过大的硬件资源,综合器不支持没有约束条件的循环。 在此语句中,若条件为真则对其中的顺序语句循环执行,否则结束循环。 【例】FOR_LOOP语句的使用(8位奇偶校验逻辑电路的VHDL程序)。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY P_CHECK IS PORT (A:IN STD_LOGIC_VECTOR(7 DOWNTO 0); Y:OUT STD_LOGIC); END ENTITY P_CHECK; ARCHITECTURE ART OF P_CHECK IS SIGNAL TMP: STD_LOGIC; BEGIN PROCESS(A) IS BEGIN TMP =‘0’; FOR N IN 0 TO 7 LOOP TMP =TMP XOR A(N); END LOOP;

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档