《《VHDL语言》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《VHDL语言》PPT课件.ppt(22页珍藏版)》请在三一办公上搜索。
1、VHDL语言,HDL,Hardware Description Language,硬件,描述,语言,产生:,1962年,发展:,最初,个别厂家个别使用,70年代末,美国国防部提出VHSIC(Very High Speed IC)计划。,80年代初,产生VHDL(Very high speed IC HDL)语言。,1987.12,作为IEEE标准(87版)。,1993,经修改的VHDL再次被IEEE标准认证(93版)。,1995,中国国家技术监督局推荐为国家标准。,VHDL语言的优点,支持自上而下的设计方法(整体描述),半加器描述事例:WHEN“00”=so so so so=0;co=1;,
2、节省资源,丰富的仿真语句和库函数,对设计的描述具有相对独立性,Max+plus2下的VHDL语言的格式,加入库,LIBRARY IEEE;,LIBRARY;USE.ALL;USE.ALL;,P.42 表3-3,VHDL语言的基本结构,实体,构造体,实体结构,用以描述外部端口,用以描述内部结构及行为,ENTITY 实体名 IS PORT(端口名1,端口名2,端口名n:方向 数据类型名;端口名a,端口名b,端口名m:方向 数据类型名);END 实体名;,半加器实体说明举例ENTITY h_adder IS PORT(a,b:IN STD_LOGIC;co,so:OUT STD_LOGIC);END
3、 h_adder;,VHDL语言的基本结构,ENTITY 实体名 IS PORT(端口名1,端口名2,端口名n:方向 数据类型名;端口名a,端口名b,端口名m:方向 数据类型名);END 实体名;,实体结构,端口名是设计者为实体的每一个对外通道所取的名字。,数据类型是指端口上流动的数据的表达格式或取值类型。,P.13 表2-1,方向 是指这些通道上的数据流动方式。,STD_LOGIC:位,STD_LOGIC_Vector(n downto 0):位总线,Library Ieee;Entity d38 IsPort(c,b,a,g1,g2a,g2b:In std_logic;y:Out std_
4、logic_vector(7 downto 0);End d38;,138译码器举例,VHDL语言的基本结构,VHDL语言的基本结构,构造体结构,ARCHITECTURE 结构体名 OF 实体名 IS 定义语句BEGIN 功能描述语句END ARCHITECTURE 结构体名;,注:,工程名(project)、文件名(*.vhd)、实体名必须一致。,定义语句:用于对构造体内使用的信号signal、变量variable等定义。,Architecture func of d38 issignal indata:std_logic_vector(2 downto 0);begin,VHDL语言的基本
5、结构,VHDL操作符列表,优先级:P.45 表3-4,VHDL语言的基本结构,构造体结构,ARCHITECTURE 结构体名 OF 实体名 IS 定义语句BEGIN 功能描述语句END ARCHITECTURE 结构体名;,功能描述语句,并行语句,顺序语句,并行语句,1.简单信号赋值语句,赋值目标=表达式,注:,赋值语句“=”与小于等于“=”位置不同,2.条件信号赋值语句,赋值目标=表达式 WHEN 赋值条件 ELSE 表达式 WHEN 赋值条件 ELSE.表达式;,例:二选一电路,例:半加器电路,顺序语句,1.进程(PROCESS)语句,进程语句实际是并行语句,但却是顺序语句不可缺少的。实际
6、上所有的顺序语句都包含在进程语句之内。,格式,PROCESS(敏感信号1,敏感信号2,敏感信号n)Begin顺序语句;END PROCESS;,顺序语句,2.IF 语句,格式,IF 条件 THEN 处理语句;ELSIF 条件 THEN 处理语句;ELSIF 条件 THEN 处理语句;ELSE 处理语句;END IF;,例:D触发器,顺序语句,3 CASE语句,格式,CASE 表达式 ISWhen 选择值=顺序语句;When 选择值=顺序语句;.END CASE;,例:138译码器,VHDL文字规则,整数:整数都是十进制的数,如:5,678,0,156E2(=15600)。,实数:实数也都是十进
7、制的数,但必须带有小数点,如:1.335,1.0,44.99E-2(=0.4499),数制表示:10#170#;-(十进制表示,等于 170)16#FE#;-(十六进制表示,等于 254)2#1111_1110#;-(二进制表示,等于 254)8#376#;-(八进制表示,等于 254),字符串:ERROR,Both S and Q equal to 1,X,BB$CC,VHDL文字规则,标识符,规则:l有效的字符:包括26个大小写英文字母,数字包括09 以及下划线“_”。l任何标识符必须以英文字母开头。l必须是单一下划线“_”,且其前后都必须有英文字母或数字。l标识符中的英语字母不分大小写。
8、l允许包含图形符号(如回车符、换行符等),也允许包含空格符。,下标名,SIGNAL a,b:STD_LOGIC_VECTOR(0 TO 3);SIGNAL m:INTEGER RANGE 0 TO 3;SIGNAL y,z:STD_LOGIC;y=a(m);z=b(3);,VHDL数据类型,1.布尔(BOOLEAN)数据类型,2.位(BIT)数据类型,现为std_logic。,3.位矢量(BIT_VECTOR)数据类型,现为std_logic_vector。,4.字符(CHARACTER)数据类型,5.整数(INTEGER)数据类型,6.实数(REAL)数据类型,7.字符串(STRING)数据
9、类型,其它并行语句,1.变量赋值语句,变量目标:=表达式,Variable x,y:integer:=10;Constant Vcc:real:=5.0;Temp3:=temp1+temp2;,WITH 条件表达式 SELECT 赋值目标信号=表达式 WHEN 条件1,表达式 WHEN 条件2,.表达式 WHEN 条件n;,2.选择信号赋值语句,其它并行语句,例:decoder、四选一电路,其它并行语句,3.元件调用语句,COMPONENT 元件名 IS GENERIC(类属表);PORT(端口名表);END COMPONENT 文件名;元件名 PORT MAP(端口名=连接端口名,.);,例
10、:交通灯,其它顺序语句,1.LOOP语句,(1)单个LOOP语句,其语法格式如下:LOOP标号:LOOP 顺序语句 END LOOP LOOP标号;,用法示例如下:.L2:LOOP a:=a+1;EXIT L2 WHEN a 10;-当a大于10时跳出循环 END LOOP L2;.,其它顺序语句,1.LOOP语句,(2)FOR_LOOP语句,语法格式如下:LOOP标号:FOR 循环变量,IN 循环次数范围 LOOP 顺序语句 END LOOP LOOP标号;,【例9-5】SIGNAL a,b,c:STD_LOGIC_VECTOR(1 TO 3);.FOR n IN 1 To 3 LOOPa(n)=b(n)AND c(n);END LOOP;,例:parity_check,