- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
赋值运算符 赋值运算符用来给信号、变量和常量赋值。 例 首先定义下列信号和变量 Signal x: std_logic; Varibale y: std_logic_vector(3 downto 0); Signal w: std_logic_vector(0 to 7); X= ‘1’; Y:= “0000”; W= ; W= (0=’1’,others=’0’); --最低位是1,其它位0 * 第4讲 VHDL运算操作符 * 第1讲 EDA技术概论 赋值运算符 逻辑运算符 关系运算符 算术运算符 移位运算符 并置运算符 VHDL操作符 与其他程序设计语言相似,VHDL中的表达式也是由运算符将基本元素连接起来形成。 在VHDL语言中共有6类操作符 在VHDL语言中,共有6种逻辑运算符,他们分别是: NOT 取反; AND 与; OR 或; NAND 与非; NOR 或非; XOR 异或。 逻辑运算符 这6种逻辑运算符可以对 “BIT”和“STD_LOGIC ”等逻辑型数据、“STD_LOGIC _VECTOR”逻辑型数组及布尔数据进行逻辑运算。 必须注意: 运算符的左边和右边,以及代入的信号的数据类型必须是相同的。 【例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,因而不能相互作用,表达错误。 逻辑操作符 关系操作符 【例2】 ENTITY relational_ops_1 IS PORT ( a,b : IN BIT_VECTOR (0 TO 3) ; output : OUT BOOLEAN) ; END relational_ops_1 ; ARCHITECTURE example OF relational_ops_1 IS BEGIN output =(a=b) ; END example ; 【例3】 ENTITY relational_ops_2 IS PORT (a,b : IN INTEGER RANGE 0 TO 3 ; output : OUT BOOLEAN) ; END relational_ops_2 ; ARCHITECTURE example OF relational_ops_2 IS BEGIN output=(a=b) ; END example ; 六种关系运算操作符: “ = ”(等于)、 “/=”(不等于)、 “ ”(大于)、 “ ”(小于)、 “=”(大于等于) “=”(小于等于) VHDL语言中有5类算术运算符,他们分别是: 求和操作符: +、- 求积操作符:*、/、MOD、REM 符号操作符: +、- 混合操作符: **、ABS 移位操作符:SLL、SRL、SLA、SRA、ROL、ROR 算术运算符 求和操作符 【例5】 VARIABLE a,b ,c ,d ,e ,f : INTEGER RANGE 0 TO 255 ; ... a :=
文档评论(0)