第四讲VHDL操作符研讨.pptxVIP

  • 4
  • 0
  • 约2.13千字
  • 约 19页
  • 2018-11-11 发布于福建
  • 举报
第四讲VHDL操作符研讨

赋值运算符 逻辑运算符 关系运算符 算术运算符 移位运算符 并置运算符;在VHDL语言中,共有6种逻辑运算符,他们分别是: NOT 取反; AND 与; OR 或; NAND 与非; NOR 或非; XOR 异或。 ; 【例1】 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的数据类型是 ... -- 布尔量BOOLEAN,因而不能相互作用,表达错误。 ; 关系操作符; VHDL语言中有5类算术运算符,他们分别是: 求和操作符: +、- 求积操作符:*、/、MOD、REM 符号操作符: +、- 混合操作符: **、ABS 移位操作符:SLL、SRL、SLA、SRA、ROL、ROR ;求和操作符;【例6】 PACKAGE example_arithmetic IS TYPE small_INt IS RANGE 0 TO 7 ; END example_arithmetic ; USE work.example_arithmetic.ALL ; ENTITY arithmetic IS PORT (a,b : IN SMALL_INT ; c : OUT SMALL_INT) ; END arithmetic ; ARCHITECTURE example OF arithmetic IS BEGIN c = a + b ; END example ; ;求积操作符;混合操作符; 移位操作符;【例8】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY decoder3to8 IS port ( input: IN STD_LOGIC_VECTOR(2 DOWNTO 0); output: OUT BIT_VECTOR (7 DOWNTO 0)); END decoder3to8; ARCHITECTURE behave OF decoder3to8 IS BEGIN output = SLL CONV_INTEGER(input); --被移位部分是常数! END behave; ; 并置运算符; 赋值运算符;例 首先定义下列信号和变量; 即用户自定义操作符,可以与预定义的操作符具有相同的名称。对已存在的操作符重新定义,可进行不同类型操作数之间的运算。 例:对一个整数和一个1位的二进制数进行加法运算 function “+” (a: integer; b: bit) return integer is begin if (b=‘1’) then return a+1; else return a; end if; end “+”;; 运算符 NOT,ABS,** *,

文档评论(0)

1亿VIP精品文档

相关文档