硬件描述语言及器件3(侯伯亨版)重点分析.ppt

硬件描述语言及器件3(侯伯亨版)重点分析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据类型转换 函数名 功能 Std_logic_1164 to_stdlogicvector(a) 由bit_vector转化为std_logic_vector to_bitvector 由std_logic_vector转化为bit_vector to_stdlogic 由bit转化为std_logic to_bit 由std_logic转化为bit Std_logic_arith conv_std_logic_vector(a,位长) 由integer、unsigned、signed转化为std_logic_vector Conv_integer(a) unsigned、signed转化为integer Std_logic_unsigned Conv_integer(a) 由std_logic_vector转化为integer 使用转换函数进行算术运算 Library ieee; Use ieee.std_logic_1164.all; Use ieee.std_logic_arith.all; Use ieee.std_logic_unsigned.all; Entity conv is port( a : in unsigned(3 downto 0); b: in std_logic_vector(3 downto 0); sum : out std_logic_vector(7 downto 0) ); end conv; Architecture a of conv is Begin sum = conv_std_logic_vector(a,4) + b; End a; 运算操作符 VHDL运算符的种类包含数值运算、赋值(assignment)与连接运算。 数值运算以运算优先权的低高分为逻辑、关系、加法、乘法及其它运算符; 赋值(assignment)运算符可以完成数据赋值操作; 连接(association)运算符()可用来连接两种数据类型。 并置操作符“” 并置操作符“”用于位、位向量和标准逻辑向量的连接。例如 architecture behave of connect is signal q: std_logic_vector(2 downto 0); signal a,b,c: std_logic; begin q= a b c; --直接连接 --q= (2= a, 1= b, 0= c); --聚合连接 end behave; 其中,聚合连接采用指定位的脚标来进行位的连接。 逻辑运算符 (1) NOT——取反 (2) AND——与 (3) OR——或 (4) NAND——与非 (5) NOR——或非 (6) XOR——异或; 逻辑运算符只能用于bit,std_logic,boolean三种类型的数据。其中not 的优先级最高,其他5个逻辑运算符的优先级相同 a=b and c or d; --是不合法的 a=(b and c) or d --是正确的 向量信号进行逻辑运算 逻辑运算符必须是一个位执行逻辑与、或等运算,如果多个位数做运算,必须先将其分解成一个个独立的位运算,最后再用连接符号“”将独立的位合并成一组输出信号,得到最后的结果。 a(3) = b(3) and c(3); a(2) = b(2) and c(2); a(1) = b(1) and c(1); a(0) = b(0 )and c(0); BCDout = a(3) a(2) a(1) a(0); 关系运算符 关系运算符是两个对象在比较运算时,将两个操作数比较的结果表示出来所使用的符号,列表如下: = ——等于 /= ——不等于 < ——小于 <= ——小于等于 > ——大于 >= ——大于等于 关系运算符 关于运算符,在VHDL程序设计中有如下规则: 两个对象进行比较时,数据类型一定要相同。 =(等于)和/=(不等于)适用于所有数据类型的对象之间的比较。 大于、小于、大于等于、小于等于适用于整数、实数位、位矢量及数组类型的比较。 <=符号有两种含义:赋值符和小于等于符,要根据上下文判断。 两个位矢量类型的对象比较时,自左至右,按位比较。 如: Signal a : std_logic_vector(3 donwto 0); Signal b : std_logic_vector(2 donwto 0); a = “1010”;---10 b = “111”; ---7 If (a b) then -- a(2) b(2) … Else … End if; (使用ieee.std_logic_u

文档评论(0)

创业文库 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档