第四章 硬件描述语言VHDL基础.doc

上传人:夏** 文档编号:562699139 上传时间:2023-07-06 格式:DOC 页数:7 大小:52KB
返回 下载 相关 举报
第四章 硬件描述语言VHDL基础.doc_第1页
第1页 / 共7页
第四章 硬件描述语言VHDL基础.doc_第2页
第2页 / 共7页
第四章 硬件描述语言VHDL基础.doc_第3页
第3页 / 共7页
第四章 硬件描述语言VHDL基础.doc_第4页
第4页 / 共7页
第四章 硬件描述语言VHDL基础.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《第四章 硬件描述语言VHDL基础.doc》由会员分享,可在线阅读,更多相关《第四章 硬件描述语言VHDL基础.doc(7页珍藏版)》请在金锄头文库上搜索。

1、第四章 硬件描述语言VHDL基础第一节 概述VHDL与高级语言的区别:VHDL的程序的一些并行语句可以自动重复执行,不需要循环语句,而且许多语句的执行不以书写的顺序来执行,而是并发执行的。第二节 VHDL程序结构一、基本结构及举例一个完整的VHDL设计文件,包含实体说明(Entity)、结构体(Architecture)、配置(Configuration)、程序包(Package)和库(Library)五个部分。其中,Package和Library都用来说明需要使用的外部资源,Package中说明自定义(或别人定义)的程序包,而Library则说明已经经过编译好的程序包。Entity描述输入/

2、输出端口,Architecture则说明实体的内部结构或功能,当有多个Architecture的时候要使用Configuration来指定哪一个起作用。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY and2 ISPORT(A,B: IN STD_LOGIC;L: OUT STD_LOGIC);END and2;ARCHITECTURE behave OF and2 ISBEGINL=A AND B;END behave;二、实体说明格式:ENTITY 实体名ISGENERIC(类属表);PORT(端口表);END ENTITY实体名;注意:实体

3、名一定要与设计文件名相同,否则无法编译。(注:上面使用 的部分表示可以没有,使用()的部分表示必须有,下同)其中,GENERIC定义本实体中使用的局部常数,使用较少。一般格式为:GENERIC(常数名表:数据类型:=设定值;);如:GENERIC (m:TIME:=3ns); A=B AND C AFTER m;PORT则说明实体的输入/输出信号及其模式,模式有IN(输入)、OUT(输出)、INOUT(输入输出)和BUFFER(输出并向内部反馈)四种一般格式为:PORT(端口名表:端口模式 数据类型;);三、结构体及其描述1、结构体的格式:ARCHITECTURE 结构体名 OF 实体名 IS

4、说明语句BEGIN并行语句;END ARCHITECTURE 结构体名;说明语句用来说明本结构体要用到的信号、类型、常数、元件、函数和过程等。并行语句则说明了实体的具体结构或功能,有五种:块语句(BLOCK)、进程语句(PROCESS)、信号赋值语句、子程序(含过程(PROCEDURE)和函数(FUNCTION)、元件例化语句(COMPONENT)2、结构体的描述方式1),行为描述ARCHITECTURE behave OF mux2 ISBEGINY=Input(0) WHEN sel=1 ELSE Input(1);END behave;2),数据流描述ARCHITECTURE rtl O

5、F mux2 ISSIGNAL tmp1,tmp2,tmp3:STD_LOGIC;BEGINtmp1=in0 AND sel;tmp2=in1 AND (NOT sel);tmp3=tmp1 OR tmp2;y=tmp3;END rtl;3),结构描述ARCHITECTURE archi OF rsff ISCOMPONENT nand2PORT(a,b:IN BIT; c:OUT BIT);END COMPONENT;BEGINU1:nand2 PORT MAP(set,qbar,q);U2:nand2 PORT MAP(q,reset,qbar);END archi;4),混合描述第三节

6、VHDL的基本数据类型一、 数据对象CONSTANT(常量)、VARIABLE(变量)、SIGNAL(信号)说明格式:对象类别 表识符表:类型:=初始值;常量的值不能改变,而变量和信号的值可以改变,但两者有区别:1),信号的声明在子程序、进程等的外部,变量声明则在内部;2),在进程中,信号赋值是在进程结束时起作用,而变量赋值立即起作用;3),信号赋值用=,变量赋值用:=。二、数据类型对数据的操作必须与其类型相匹配。标准定义的数据类型有:INTEGER(整数)、REAL(实数)、CHARACTER(字符)、STRING(字符串)、BOOLEAN(布尔)、BIT(位)、BIT_VECTOR(位矢量

7、)、TIME(时间)、NATURAL(自然数)、SEVERITY LEVEL(错误等级)。常使用IEEE预定义的标准逻辑位与向量:STD_LOGIC, STD_LOGIC_VECTOR。与BIT、BIT_VECTOR类似,但有差别,有0、1、Z、X四种取值,而后者只有0和1。三、标识符四、运算符按优先级从高到低有:NOT、ABS、*、/、MOD、REM+(正号)、-(负号)+、-、&SLL、SLA、SRL、SRA、ROL、ROR=、/=、=AND、OR、NAND、NOR、XOR、XNOR五、VHDL属性用得较多的是信号属性函数event,如果信号上发生了事件则其值为TRUE,否则为FALSE,

8、clkevent AND clk=1表示时钟上升沿,而clkevent AND clk=0表示时钟下降沿。第四节 VHDL的基本描述语句一、顺序语句1、IF语句IF 布尔表达式1 THEN顺序语句1ELSIF布尔表达式2 THEN顺序语句2.END IF;可变为:IF 。THEN 。END IF;或:IF 。 THEN 。ELSE 。 END IF;2、CASE 语句CASE 表达式 ISWHEN 条件 = 顺序语句;WHEN OTHERS = 顺序语句;如:CASE s ISWHEN “00” = y y y y=d;END CASE;3,LOOP 语句与循环相关的五种语句:1)循环标号:L

9、OOP顺序语句;END LOOP循环标号;2)循环标号:FOR 循环变量 IN 范围LOOP顺序语句;END LOOP循环标号;3)循环标号:WHILE 条件LOOP顺序语句;END LOOP循环标号;4)NEXT 循环标号 WHEN 条件;用来跳出当前循环5)EXIT 循环标号 WHEN 条件;用来结束当前循环4,NULL语句二、并行语句1,PROCESS进程语句标号:PROCESS(敏感信号表)说明语句;BEGIN顺序语句;END PROCESS标号;2-4译码器:LIBRARAY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UN

10、SIGNED.ALL;ENTITY ymq ISPORT(a0,a1:IN STD_LOGIC;y0,y1,y2,y3:OUT STD_LOGIC);END ymq;ARCHITECTURE ar OF ymq ISBEGINPROCESS(a0,a1)BEGINy0=(NOT a0) AND (NOT a1);y1=(NOT a0) AND a1;y2= a0 AND (NOT a1);y3= a0 AND a1;END PROCESS;END ar;无敏感信号的进程(D触发器):PROCESSBEGINWAIT ON cp;IF cp=1 THENq=d;nq=NOT d;END IF;E

11、ND PROCESS;2,BLOCK语句主要是结合并行语句,使程序结构清晰。3,并行信号赋值语句1)简单信号赋值。格式:信号=表达式;2)条件信号赋值。格式:信号=表达式 WHEN 条件 ELSE .3)选择信号赋值。格式: WITH 选择表达式 SELECT 信号=表达式 WHEN 选择值 .例:1)q=b+c;2) y=a WHEN q=”00” ELSE b WHEN q=”01” ELSE c WHEN q=”10” ELSE d;3) WHIT q SELETy=a WHEN “00”, b WHEN “01”, c WHEN “10”, d WHEN OTHERS;4,元件例化语句

12、包含两个部分:1)元件声明:COMPONENT 元件实体名PORT(元件端口信息);END COMPONENT;2)元件例化语句:例化名:元件名 PORT MAP (端口列表);4位加法器:LIBRARAY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY add_4 ISPORT(x,y:IN STD_LOGIC_VECTOR(3 DOWNTO 0); ci:IN STD_LOGIC;s:OUT STD_LOGIC_VECTOR(3 DOWN

13、TO 0);co: OUT STD_LOGIC);END add_4;ARCHITECTURE ar OF add_4 ISCOMPONENT add_1 ISPORT(x,y,ci:IN STD_LOGIC;s,co:OUT STD_LOGIC);END COMPONENT;SIGNAL cm:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINyj0:add_1 PORT MAP(x(0),y(0),ci,s(0),cm(0);yj1:add_1 PORT MAP(x(1),y(1), cm(0),s(1),cm(1);yj2:add_1 PORT MAP(x(2),y(2), cm(1),s(2),cm(2);yj3:add_1 PORT MAP(x(3),y(3), cm(2),s(3),co);END ar;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY add_1 ISPORT(x,y,ci:IN STD_LOGIC;s,co:OUT STD_LOGIC);END add_1;ARCHITECTURE arch OF add_1 ISBEGINs=x XOR y XOR ci;co=(x AND y) OR (x AND ci ) OR( y AND ci);END arch;5,生成语句

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号