VHDL程序结构介绍
- 格式:pptx
- 大小:1.61 MB
- 文档页数:24
VHDL程序的基本结构(1)LIBRARY和PACHAGE的声明部分作⽤:库(Library)是⽤于存放预先编译好的程序(package),程序包中定义了数据集合体、逻辑操作和元件等。
主要是声明在设计或实体中将⽤到的常数,数据类型,元件及⼦系统等。
使⽤格式:LIBRARY 库名;USE 库名.程序包名.ALL;例如: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;(2)ENTITY定义作⽤:定义本设计的输⼊/出端⼝,即定义电路的外观,即I/O接⼝的类型和数量使⽤格式:格式:ENTITY 实体名 ISport( 端⼝名:端⼝模式数据类型;........端⼝名:端⼝模式数据类型;)END 实体名;例:ENTITY MUX41A ISPORT (A,B,C,D,s0,s1,s2,s3 :IN STD_LOGIC;Y : OUT STD_LOGIC);END ENTITY MUX41A;(3)ARCHITECTURE定义作⽤:定义实体的实现。
即电路的具体描述,说明电路执⾏什么动作或实现功能。
使⽤格式:ARCHITECTURE 结构体名 of 实体名 ISbegin描述语句;end 结构体名;例如:ARCHITECTURE BHV OF MUX41A ISSIGNAL S:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINS <= s3 & s2 & s1 & s0 ;Y<=A WHEN S="1110" ELSEB WHEN S="1101" ELSEC WHEN S="1011" ELSED WHEN S="0111" ELSE‘1’;END BHV;。
VHDL语言的程序结构与数据类型VHDL语言的程序结构与数据类型第2节 VHDL语言的程序结构与数据类型[学习要求] 掌握VHDL硬件描述语言的基本语法和源文件的结构,学会用VHDL硬件描述语言设计典型数字逻辑电路。
[重点与难点]重点:VHDL语言的程序结构;VHDL语言的数据类型及数据对象。
难点:VHDL的数据对象中的变量和信号的区别。
[理论内容]一、VHDL的程序结构图1 VHDL的程序结构图图1中是VHDL的全部结构,但实际上并不需要全部的结构,就像在许多设计项目中,大部分工程师只用到VHDL其中的30%的语法。
通常图2的结构才是基本和必需的。
USE定义区ENTITY定义区ARCHITECTURE定义区图2 VHDL程序的基本结构由于VHDL已是IEEE规定的标准,所以只是CPLD、FPGA等芯片公司,它们都会提供这个标准的定义库(Library IEEE),而且由于这里面写了许多的定义和参数,初学者一时之间也不容易全部了解,所以全部写上以减轻负担,后面的章节的程序默认也这么写。
程序如: USE IEEE.STD_LOGIC_1164.ALL; 代表本程序引用IEEE 标准定义库的STD_LOGIC_1164全部定义。
VHDL语言编写是属于自由格式,所以在一个完整命令叙述写完时,必须为它加上“;”,作为前后命令的分界,如上述的Use定义命令。
程序的注释采用“--”Entity部分是用来定义电路的输入和输出所用。
定义区的命令格式为:Architecture部分是描述这个电路的功能部分,其书写的语法因具体电路的功能而定,下一节将详细介绍。
_以下是一个简单的例子:library ieee; --采用ieee标准库use ieee.std_logic_1164.all; --使用其中的定义包,以后照着写即可use IEEE.STD_LOGIC_UNSIGNED.all; --同上use IEEE.STD_LOGIC_ARITH.all; --同上entity test is --定义实体名port( --以下是定义输入输出端口pin1 : in std_logic; --pin1为输入端口,数据类型为std_logic pin2 : in std_logic; --同上pin3 : out std_logic --pin3为输出端口,数据类型为std_logic ); --端口定义完成end test; --实体描述完成architecture behavior of test is --定义结构体begin --结构体开始pin3<=pin1 and pin2; --该语法表示将pin1和pin2相与送至pin3end behavior; --结构体描述完成其实VHDL语言在书写上和高级语言的描述十分相似(风格更似于Ada语言),与C语言的比较如图3所示,大家不要把它看得很神秘。