网站大量收购独家精品文档,联系QQ:2885784924

EDA技术实用教程(潘松第5版)第3章-VHDL设计初步PPT.ppt

EDA技术实用教程(潘松第5版)第3章-VHDL设计初步PPT.ppt

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

类型 操作符 功能 操作数数据类型 逻辑 操作符 AND 与 BIT、BOOLEAN、STD_LOGIC OR 或 BIT、BOOLEAN、STD_LOGIC NOT 非 BIT、BOOLEAN、STD_LOGIC NAND 与非 BIT、BOOLEAN、STD_LOGIC NOR 或非 BIT、BOOLEAN、STD_LOGIC XOR 异或 BIT、BOOLEAN、STD_LOGIC XNOR 同或 BIT、BOOLEAN、STD_LOGIC NXOR 异或非 BIT、BOOLEAN、STD_LOGIC 逻辑操作符(P64、P359)    在逻辑操作符中,如果逻辑操作符左边和右边值的类型为数组,则这两个数组的位宽要相等。    在一个表达式中有两个以上的运算符时,需要使用括号将这些运算分组。如果运算中的运算符相同,且是AND、OR、XOR中的一种,则不需使用括号;如果一串运算中的运算符不同或有除这三种运算符外的运算符,则必须用括号。    如:A and B and C and D  (A or B) xor C 逻辑操作符  【例】   SIGNAL a, b, c : STD_LOGIC_VECTOR (3 DOWNTO 0);   SIGNAL d, e, f, g : STD_LOGIC_VECTOR (1 DOWNTO 0);   SIGNAL h, I, j, k : STD_LOGIC;   SIGNAL l, m, n, o, p: BOOLEAN;     …   a=b AND c;--b、c相与后向a赋值,a、b、c的数据类型同属4位长的位矢量      d=e OR f OR g;--两个操作符OR相同,不需括号   h=(i NAND j) NAND k;--NAND不属上述三种算符中的一种,必须加括号 l=(m XOR n) AND (o XOR p);--操作符不同,必须加括号    h=i AND j AND k;--两个操作符都是AND,不用加括号   h=i AND j OR k;--两个操作符不同,未加括号,表达错误   a=b AND e;--操作数b与e的位矢长度不一致,表达错误   h=i OR l;--i的数据类型是STD_LOGIC,而l的数据类型是布尔量,因而不能相互作用,表达错误  【例3-2】(P61)    LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder IS PORT(a,b: IN STD_LOGIC; co,so: OUT STD_LOGIC); END ENTITY h_adder; ARCHITECTURE fh1 OF h_adder IS BEGIN so = a XOR b co = a AND b; END ARCHITECTURE fh1 ; a b so co 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 半加器真值表 关系 操作符 = 等于 任何数据类型 /= 不等于 任何数据类型 小于 枚举与整数及对应的一维数组 大于 枚举与整数及对应的一维数组 = 小于等于 枚举与整数及对应的一维数组 = 大于等于 枚举与整数及对应的一维数组    关系操作符的作用是将相同的数据类型的数据对象进行数值比较或关系排序判断,并将结果用布尔类型的数据表示出来,即其运算结果为TRUE和FALSE两种。 关系操作符    不同长度的数组也可以进行运算,两个数组的操作运算是从左至右逐一对各元素进行比较来决定的,在比较过程中,并不管原数组的下标定义顺序,即不管是用TO还是用DOWNTO。比较过程中,只要有一对元素不等,就可确定两者的关系,得出布尔结果。如:    ‘1’=‘1’; “101”=“101”;    “1”“011”; “101”<“110”; “ 1011”“101011”    其结果均为TRUE。     对于这些判断中出现的错误,可以用STD_LOGIC_ARITH程序包中定义的UNSIGNED数据类型来解决,即将这些进行操作的数据的数据类型定义为UNSIGNED。如    UNSIGNED’(“1”) UNSIGNED’(“011”)的比较结果则为TURE。    【例9-22】  ENTITY relational_ops_1 IS PORT (a, b: IN BIT_VECTOR(0 TO 3); m: OUT BOOLEAN); END re

文档评论(0)

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

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

1亿VIP精品文档

相关文档