【教学课件】第7章VHDL要素.ppt
《【教学课件】第7章VHDL要素.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第7章VHDL要素.ppt(59页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第7章 VHDL要素7.1 算术操作符与优先级算术操作符与优先级 与传统的程序语言一样,VHDL表达式中的基本元素也是由不同类型的运算符相连而成的。这里所说的基本元素称为操作数(Operands),运算符称为操作符(Operators)。VHDL操作符可分为逻辑操作符(参)、关系操作符(参)、算术操作符、符号操作符和重载操作符(Overloading Operator)。7.1.1 算术操作符Arithmetic Operator类别类别操作操作符符功能功能操作数操作数类类型型备备注注例例求和求和操作操作符符+加加整数整数A+BA+B-减减求求积积操作操作符符*乘乘整数、整数、实实数、数、浮点
2、数浮点数2 2的的幂幂,可用可用移位移位LPMLPM库库无此限无此限制制A*BA*B/除除整数、整数、实实数、数、浮点数浮点数MODMOD取模取模整数整数REMREM取余取余整数整数符号符号操作操作符符+正数正数整数整数A*A*(-B B)-负负数数移位移位操作操作符符SLLSLL逻辑逻辑左移左移0 0A A:BITBIT、STDSTD、布布尔尔的一的一维维数数组组和整数;和整数;B B:移位位数整数:移位位数整数A SLL BA SLL BSRLSRL逻辑逻辑右移右移0 0SLASLA算算术术左移左移(左复制)(左复制)SRASRA算算术术右移右移(右复制)(右复制)ROLROL循循环环左移
3、左移RORROR循循环环右移右移混合混合操作操作符符*乘方乘方整数整数+非非负负整数整数浮点数浮点数+非非负负整数整数MAX MAX PLUPLUSIISII不不支持支持A*B=AA*B=AB BABSABS取取绝对值绝对值整数整数&并置并置一一维维数数组组【例【例7-1】用】用SLL完成完成3-8译码器的设计译码器的设计 ENTITY decoder3to8 IS port (input:IN INTEGER RANGE 0 TO 7;output:OUT BIT_VECTOR(7 DOWNTO 0);OUT BIT_VECTOR(7 DOWNTO 0);END decoder3to8;AR
4、CHITECTURE behave OF decoder3to8 IS BEGIN output=”00000001”SLL input;-被移位部分是常数!END behave;【例【例7-2】乘方和取绝对值语法例】乘方和取绝对值语法例SIGNAL a,b:INTEGER RANGE -8 to 7;SIGNAL c:INTEGER RANGE 0 to 5;SIGNAL d:INTEGER RANGE 0 to 3;a=ABS(b);c=2*d;7.1.2 VHDL操作符优先级运算符运算符优优先先级级NOT,ABS,*NOT,ABS,*优先级高优先级高优优先先级级低低*,/,MOD,REM
5、*,/,MOD,REM+(正号)(正号),-,-(负负号)号)+,-,&+,-,&SLL,SLA,SRL,SRA,ROL,RORSLL,SLA,SRL,SRA,ROL,ROR=,/=,=,/=,=AND,OR,NAND,NOR,XOR,AND,OR,NAND,NOR,XOR,XNORXNOR在编程时可充分利用括号,可有效避免错误。7.2 BUFFER类型与操作符重载函数【例【例6-36-3】4 4位计数器设计。位计数器设计。题目分析:题目分析:计数器:对时钟信号计数器:对时钟信号CLKCLK进行计数,即在进行计数,即在CLKCLK上升沿时输上升沿时输出值出值Q=Q+1Q=Q+1;端口设置:端口
6、设置:CLKCLK为为IN BITIN BIT,Q=Q+1Q=Q+1要实现将输出到端口要实现将输出到端口的值反馈回来加的值反馈回来加1 1,只有采用,只有采用BUFFERBUFFER端口类型;要实现端口类型;要实现算术运算,数据类型须采用算术运算,数据类型须采用INTEGERINTEGER。注意:表面上注意:表面上BUFFERBUFFER具有双向端口具有双向端口INOUTINOUT的功能,但实的功能,但实际上其输入功能是不完整的,它只能将自己输出的信号际上其输入功能是不完整的,它只能将自己输出的信号再反馈回来。再反馈回来。7.2.1 BUFFER类型类型ENTITY CNT4 ISENTITY
7、 CNT4 IS PORT PORT (CLKCLK:IN BIT IN BIT;Q Q :BUFFER INTEGER RANGEBUFFER INTEGER RANGE(15 DOWNTO 015 DOWNTO 0););););END CNT4END CNT4;ARCHITECTURE bhv OF CNT4 IS ARCHITECTURE bhv OF CNT4 IS BEGIN BEGIN PROCESS(CLK)PROCESS(CLK)BEGIN BEGIN IF CLKEVENT AND CLK=1 THEN IF CLKEVENT AND CLK=1 THEN Q=Q Q=Q十
8、十1 1;END IF END IF;END PROCESS END PROCESS;END bhvEND bhv;BUFFEF类型在多级设计中不便于综合,常用类型在多级设计中不便于综合,常用OUT类型。类型。ENTITY CNT4 1S ENTITY CNT4 1S PORT(CLK PORT(CLK:IN BITIN BIT;Q Q :OUTOUT INTEGER RANGE INTEGER RANGE(15 DOWNTO 015 DOWNTO 0););ENDEND;ARCHITECTURE bhv OF CNT4 ISARCHITECTURE bhv OF CNT4 ISSIGNAL
9、Q1SIGNAL Q1:INTEGER RANGEINTEGER RANGE(15 DOWNTO 015 DOWNTO 0);BEGIN BEGIN PROCESS (CLK)PROCESS (CLK)BEGIN BEGIN IF CLKEVENT AND CLK=l THEN IF CLKEVENT AND CLK=l THEN Q1=Q1+1 Q1=Q1+1;END IF END IF;Q=Q1 Qb THEN RETURN a IF ab THEN RETURN a;ELSE RETURN b ELSE RETURN b;END IF END IF;END FUNCTION max EN
10、D FUNCTION max;-结束结束FUNCTIONFUNCTION语句语句ENDEND;-结束结束PACKAGE BODYPACKAGE BODY语句语句-下面是函数调用下面是函数调用 LIBRARY IEEELIBRARY IEEE;-函数应用实例函数应用实例 USE IEEE USE IEEESTD_LOGIC_1164STD_LOGIC_1164ALLALL;USE WORK USE WORKpackexppackexpALLALL;-打开自定义程序包打开自定义程序包ENTITY axamp ISENTITY axamp IS PORT(datl PORT(datl,dat2dat
11、2:IN STD_LOGIC_VECTOR(3 DOWNTO 0)IN STD_LOGIC_VECTOR(3 DOWNTO 0);dat3 dat3,dat4dat4:IN STD_LOGIC_VECTOR(3 DOWNTO 0)IN STD_LOGIC_VECTOR(3 DOWNTO 0);outl outl,out2out2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)OUT STD_LOGIC_VECTOR(3 DOWNTO 0);ENDEND;ARCHITECTURE bhv OF axamp ISARCHITECTURE bhv OF axamp IS BEGIN
12、 BEGIN outl=max(datl outl=max(datl,dat2)dat2);用在赋值语句中的并行函数调用语句用在赋值语句中的并行函数调用语句 PROCESS(dat3 PROCESS(dat3,dat4)dat4)BEGIN BEGIN out2=max(dat3 out2b THEH RETURN a;ELSE RETURN b;END IF;END FUNCTION max;-结束MAX语句FUNCTION max(a,b:IN INTEGER)RETURN INTEGER IS-定义函数体 BEGIN IF a b THEN RETURN a;ELSE RETURN b;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 VHDL 要素
限制150内