VHDL语言通常包括库说明、实体说明、结构体说明3个部分。
library ieee
use ieee.std_logic_1164.all--库说明
entity dff1 is
port(clk,d:in std_logic
q:out std_logic)
end dff1 --实体说明
architecture rtl of dff1 is
begin
process(clk)
begin
if(clk'event and clk='1')then
q<=d
end if
end process
end rtl --结构体说明
VHDL提供5个库,IEEE库,STD库,VITAL库,自定义库和WORK库
IEEE库包含的常用程序包有:
std_logic_1164:常用数据类型(其中有std_logic、std_logic_vector数据类型)和函数的定义、各种类型转换 函滚皮数及逻辑运算。
std_logic_arith:它在std_logic_1164的基础上定义了无符段让号数unsigned、有符号数signed数据类型并为其定义了相应的算术运算、比较,无符号数unsigned、有符号数signed及整数integer之间转换函数。
std_logic_unsigned和std_logic_signed:定义了integer数据类型和std_logic及std_logic_vector数据类型混合运算的运算符,并定义了一个由std_logic_vector型到integer型的转换函数。其中std_logic_signed中定义的运算符是有符号数运算符。
STD库是标准库,包含两个程序包:
standard:定义了基本数据类型、子类型和函数及各种类型的转换函数等。
textio文本程序包:定义了支持文本文件 *** 作的许多类型和子程序等。在使用textio程序包之前,需要先写上use语句use std.txtio.all。
VITAL库:使用VITAL可以提高门级时序仿真的精度,一般在VHDL语言程序进行仿真时使用。主要包含两个程序包。
VITAL_timing:时序仿真包
VITAL_primitives:基本单元程序包
WORK库,是现行的工作库,设计人员设计的VHDL语言程序的编译结果不需任何说明,都将存放在WORK库中。WORK库可以是设计者个人使用,也可提供给设计组多人使用。
库说明的语法结构
library 库名;
use 库名.程序包名.项目名;
###########################################################################################
实体说明
实体的电路意义相当于器件,在电路原理图上相当于握备局元件符号,他是完整的、独立的语言模块
实体说明语句的语法:
entity 实体名 is
port(端口1: 端口方式1 端口类型1;
端口2: 端口方式2 端口类型2;......);
end 实体名
端口方式有五种:
in 输入类型 信号从该端口进入实体
out 输出类型 信号从实体内部经该端口输出
inout 输入输出类型 信号既可以从该端口输入也可以输出
buffer 缓冲型 与out类似但在结构体内部可以作反馈
linkage 无制定方向,可以与任何方向的信号连接
############################################################################################
结构体说明
结构体会给模块的具体实现,指定输入与输出之间的行为。
结构体语法如下:
architecture 结构体名称 of 实体名 is
结构体说明部分;
begin
结构体并行语句部分;
end 结构体名称;
结构体说明:对结构体内部所使用的信号、常数、数据类型和函数进行定义。
结构体并行语句:具体确定各个输入、输出之间的关系,描述了结构体的行为,是一组并行处理语句。
结构体对实体的输入输出关系可以用3中方式进行描述,即行为描述(基本设计单元的数学模型描述)、寄存器传输描述(数据流描述)、和结构描述(逻辑元器件连接描述)。不同的描述方式,只体现在描述语句上,而框架是完全一样的
一开头 应该要有library ieee接着就要包括你程序中要用到的库,比如说最经常的use ieee.std_logic_1164.all
接着是实体返散备entity,通俗点就是所对应的输入输出端口
最后是结构体architecture ,,就是你要实掘洞现的功能
结构体中还经常包括进程process,但不是一定要包括进程的,进程语句是在有用到顺序语句,比如说If else case when的时候就得用上
必不可少的部分就漏毁是头文件library ieee要用到的库,实体,结构体
1.实体(ENTITY),实体的作用是给出实际电路的外部视图(引脚的数目,引脚的作用等),它描述了电路的封装结构2.端口(PORT),在VHDL语言里的端口指的就是电路引脚,而非普通软件程序设计语言意义上的进程所拥有的端口。例如:一个2输入与门两个输入引脚,一个输出引脚就是端口。端口语句正如上面实体上定义的一样。
3.结构体(ARCHITECTURE),结构体的作用是具键搭亩体描述一个实体稿森的行为(描述实体所描述的电路的功能),元枝敬件以及元件内部的连接关系
4.库(LIBRARY),VHDL语言的库和普通的软件程序设计语言的库并没有什么大的区别。一个库的用法正如上面在实体中展示的那样
5.程序包(PACKAGE),通常在我们的VHDL程序中,需要调用的程序包大多数是IEEE库的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)