《VHDL语法入门》PPT课件.ppt
《《VHDL语法入门》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《VHDL语法入门》PPT课件.ppt(78页珍藏版)》请在三一办公上搜索。
1、本章内容,1.1 VHDL程序构件1.2 文法规则1.3 数据对象及类型1.4 运算符与表达式1.5 VHDL语句1.6 进程与子程序1.7 资源库与程序包,1.1 VHDL程序构件,库引用说明实体说明构造体配置说明,1.1 VHDL程序构件,示例,Library ieee;Use ieee.std_logic_1164.all;-entity xor_gate is port(a,b:IN bit;c:OUT bit);end xor_gate;-architecture data_flow1 of xor_gate isbegin c=(a and(not b)or(not a)and b
2、);end data_flow1;-configuration cnf of xor_gate is for data_flow1 end for;end cnf;,-库引用说明,-实体说明,-构造体,-配置说明,1.1 VHDL程序构件,库引用说明对需引用的资源库及程序包进行说明类似于C语言中的.h头文件引用,1.1 VHDL程序构件,实体说明实体entity一个设计实体与外部的接口定义语法格式entity 设计实体名 is 端口说明;end 设计实体名;,1.1 VHDL程序构件,端口说明port(端口信号名:端口模式 数据类型名:=初始值;);端口模式INOUTINOUTBUFFER,1
3、.1 VHDL程序构件,IN从外部输入至实体;单向端口;,entity,1.1 VHDL程序构件,OUT从实体输出至外部;单向端口;,entity,1.1 VHDL程序构件,INOUT可以从外部输入至实体;也可以从实体输出至外部;双向端口;,entity,en,1.1 VHDL程序构件,BUFFER可以从实体输出至外部;也可以从端口回读该输出值至实体;不可以从外部输入至实体;单向端口(伪双向端口);,entity,Q,D,1.1 VHDL程序构件,构造体构造体architecture一个设计实体的功能与(/或)结构描述一个设计实体可以有多个构造体语法格式architecture 构造体名 of
4、 设计实体名 is 说明区;begin 执行语句区;end 构造体名;,1.1 VHDL程序构件,示例1,architecture data_flow of xor_gate isbegin c=(a and(not b)or(not a)and b);end data_flow;,1.1 VHDL程序构件,示例2,architecture behavioral of xor_gate isbegin process(a,b)begin if(a=0 and b=1)then c=1;elsif(a=1 and b=0)then c=1;else c=0;end if;end process;
5、end behavioral;,1.1 VHDL程序构件,示例3,architecture structure of xor_gate is component not_gate port(a:IN bit;b:OUT bit);end component;component and_gate port(a,b:IN bit;c:OUT bit);end component;component or_gate port(a,b:IN bit;c:OUT bit);end component;,signal na,nb:bit;signal c1,c2:bit;begin u1:not_gate
6、 port map(a,na);u2:not_gate port map(b,nb);u3:and_gate port map(a,nb,c1);u4:and_gate port map(b,na,c2);u5:or_gate port map(c1,c2,c);end structure;,1.1 VHDL程序构件,配置说明将具体的构造体分配给实体说明示例,configuration conf1 of xor_gate is for data_flow end for;end conf1;,configuration conf2 of xor_gate is for structure en
7、d for;end conf1;,1.1 VHDL程序构件,关于构件的几点说明实体说明是必须的;构造体是必须的;库引用说明可要可不要,但一般需要;配置说明可要可不要,但一般不需要;,1.2 文法规则,关键字标识符数值表示文法格式,1.2 文法规则,关键字如 entity,architecture,package,configuration,port,begin,end,等,查阅相关资料,1.2 文法规则,标识符26个英文大/小写字母(首字符必用字母);数字0-9;下划线_;不能用关键字;,1.2 文法规则,数值表示数字十进制数,2-16为基的数;整数,浮点实数;前面可加0,中间不能加0;相邻数
8、字之间可插入下划线_;,1.2 文法规则,例子:十进制:012,12_3,2E3;12.0,2.5E2;2进制:2#11_11#,2#1011#E4;2#100.1111#E2;16进制:16#5A#,16#28_C#E4;16#22.8FF#E3;,1.2 文法规则,字符被单引号括起来的ASCII字符,如,aZ,09等;字符串被双引号括起来的ASCII字符,如,“Hello”;位串被双引号括起来的数字序列,其前冠以基数说明符;如,B“0110_1111”,O“117”,X“FFE0”;,1.2 文法规则,文法格式关键字、标识符:不区分大小写;注释:-,且只在该文本行有效;分隔:;为行分隔,V
9、HDL的语句行可写在不同文本行中;空格:除关键字、标识符自身中间不能插入空格外,其他地方可插入任意数目的空格;,1.3 数据对象及类型,数据对象数据类型,1.3 数据对象及类型,数据对象VHDL语言中用于进行赋值等操作的客体 信号(Signal)信号赋值:sig=a+b;信号说明:端口信号port(端口信号名:端口模式 数据类型名:=初始值;);内部信号signal 信号名:数据类型名:=初始值;例:signal sel:bit:=0;,1.3 数据对象及类型,变量(Variable)变量赋值:var:=a+b;变量说明:variable 变量名:数据类型名:=初始值;例:variable d
10、et:bit:=0;,1.3 数据对象及类型,信号与变量的区别信号:用于与外部的接口,及;用于构造体中的各进程模块之间或其内部;全局性数据对象;变量:用于进程、子程序等模块的内部;局部性数据对象;,1.3 数据对象及类型,例子:信号与变量,entity exmp1 is port(a:in Integer;b:out Integer);end;architecture behv of exmp1 is signal c1,c2:Integer;begin b=c1+c2;p1:process(a)variable tmp:integer:=0;begin tmp:=tmp+1;c1=a+tmp
11、;end process;,p2:process(a)variable tmp:integer:=1;begin tmp:=tmp*2;c2=a+tmp;end process;end;,1.3 数据对象及类型,数据类型VHDL语言中数据对象被赋予的类型,如Integer(整型)、Bit(位型)等;VHDL-强类型语言预定义类型 vs.自定义类型:如Integer,Real,Bit等已经在VHDL标准中预先定义,可直接使用;也可按照类型说明的格式自定义用户所需的类型;,1.3 数据对象及类型,类型的分类标量类型(基本数据类型)整数类型实数类型枚举类型物理类型复合类型(基于标量类型的复合数据类型
12、)数组记录,1.3 数据对象及类型,标量类型预定义类型:如Integer,Real,Bit,Boolean,Character,Time等(STANDARD程序包)类型说明(以上述预定义类型说明为例)整型、实型:type Integer is range 2147483647 to+2147483647;-32位整数 type Real is range 1.0E+38 to+1.0E+38;-浮点数,1.3 数据对象及类型,枚举:type Bit is(0,1);type Boolean is(false,true);物理:type Time is range 2147483647 to+2
13、147483647 units fs;ps=1000 fs;ns=1000 ps;us=1000 ns;ms=1000 us;sec=1000 ms;min=60 sec;hr=60 min;end units;,1.3 数据对象及类型,复合类型预定义类型:如数组 Bit_vector 等(STANDARD程序包)类型说明数组:type Bit_vector is array(Natural range)of Bit;-非限定性数组,数组的下标范围可在以后确定,-如,signal d_bus:Bit_vector(7 downto 0);type bit8 is array(7 downto
14、0)of Bit;-自定义数组类型,1.3 数据对象及类型,记录:(电路设计中一般不常用,文件操作中可能用到)type date is record day:Integer range 1 to 31;month:Integer range 1 to 12;year:Integer range 0 to 3000;end record;,1.3 数据对象及类型,子类型对一些已定义的数据类型进行一定的范围限制,从而形成一种特殊的数据类型子类型说明标量子类型:subtype int4 is Integer range(-8 to 7);非限定性数组子类型:subtype bit8 is Bit_v
15、ector(7 downto 0);,1.3 数据对象及类型,隐含子类型说明(没有显式的子类型名)signal dat:Integer range 0 to 15;variable bit8:Bit_vector(0 to 7);,1.3 数据对象及类型,子类型的特点在运算中对数值范围进行限制;子类型与其父类型相兼容,可以相互操作;例:,architecture st of sub_test is subtype int4 is integer range 8 to 7;type my_int4 is range 8 to 7;signal a1,a2:integer;signal b:int
16、4;signal c:my_int4;Begin a1=b;-legal a2=c;-illegal!end st;,1.4 运算符与表达式,运算符表达式,1.4 运算符与表达式,运算符VHDL语言中用于进行算术、逻辑等运算的标识符或其它符号 算术运算符:、MOD、REM、*、ABS关系运算符:、逻辑运算符:NOT、AND、NAND、OR、NOR、XOR符号运算符:(正号)、(负号)连接运算符:&(字符串 or 位串),1.4 运算符与表达式,表达式VHDL语言中由运算符将对象、常数、函数调用及括号等基本元素连接起来的式子算术表达式:a b关系表达式:x y逻辑表达式:a1 AND a2,1.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL语法入门 VHDL 语法 入门 PPT 课件

链接地址:https://www.31ppt.com/p-5454319.html