学校在大二开设EDA技术与VHDL设计课程,结课后整理一下VHDL的基本用法
前言
1.EDA技术
EDA(Electronic Design Automation)是电子设计自动化的英文缩写。是随着集成电路和计算机技术飞速发展应运而生的一种快速、有效、高级的电子设计自动化技术。EDA工具融合了应用电子技术、计算机技术和智能化技术的最新成果,主要进行三方面的辅助设计工作:集成电路(IC)设计、电子电路设计和印制电路板(PCB)设计。在数字设计领域,EDA技术就是依靠功能强大的电子计算机和EDA软件工具,对以硬件描述语言HDL(Hardware Description Language)形式给出的系统设计文件自动地进行逻辑编译、化简、分割、综合、优化和仿真,直至下载到可编程逻辑器件CPLD/FPGA或专用集成电路芯片中,实现既定的电路功能。EDA技术使电路设计者的工作仅限于利用硬件描述语言和EDA软件平台来完成对系统硬件功能的实现,极大地提高了设计效率,缩短了设计周期,节约了设计成本。
2.VHDL
VHDL的英文全名为VHSICHDL(Very-High Speed Integrated Circuit Hardware Description Language),VHDL主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法十分类似于一般的计算机高级语言。
VHDL
一、结构与要素
通过一个简单实例直观感受VHDL程序的基本框架
例1.D触发器
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY MYDFF IS
PORT(clk,d,clr:in std_logic; --clr是异步清零端
q: out std_logic);
END MYDFF;
ARCHITECTURE rt1 of MYDFF IS
BEGIN
PROCESS(clr,clk)
BEGIN
IF clr='1' THEN q<='0'; -- clr为高电平时,输出清零
ELSIF clk'event and clk='1' THEN
q<=d;
END IF;
END PROCESS;
END rtl;
可以观察到,一个最基本的VHDL程序可以划分为三个部分。
例1的第一段为库、程序包说明;第二段为实体部分;第三段为结构体部分。除了这些外,还可以包括配置部分。其中实体和结构体是必需的。
1.实体
描述数字系统的输入/输出接口
一般结构:
ENTITY 实体名 IS
[GENERIC(参数名:数据类型);]
[PORT (端口号);]
END [ENTITY 实体名];
端口说明的一般格式:
PORT(端口号{,端口名}:端口模式 数据类型;
…
端口号{,端口名}:端口模式 数据类型);
(1)IN
(2)OUT
(3)BUFFER
(4)INOUT
2.结构体
描述基本设计单元(实体)的结构、行为、元器件及内部连接关系。也就是说定义了设计实体的功能。
一般格式:
ARCHITECTURE <结构体名> OF <实体名> IS
<信号定义语句,包括定义内部信号、常数、数据类型、函数等;>
BEGIN
<并行语句>
<进程语句>
END [ARCHITECTURE 结构体名];
3.VHDL库
库是经编译后数据的集合,它可以存放程序包定义、实体定义、结构体定义和配置定义。
(1)IEEE库
(2)STD库
(3)WORK库
(4)用户自定义库
4.VHDL程序包
存放各个设计能够共享的信号说明、常量说明、数据类型说明、子程序说明、属性说明和元器件说明等部分。
如果需要使用程序包中的某些说明和定义,只需使用USE语句进行说明即可。
标准程序包
(1)STD_LOGIC_1164
包含一些数据类型、子类型和函数定义,使用最广的是两个数据类型STD_LOGIC和STD_LOGIC_VECTOR。
(2)STD_LOGIC_ARITH
扩展了三个数据类型UNSIGNED、SIGNED和SMALL_INT
(3)STD_LOGIC_UNSIGNED和STD_LOGIC_SIGNED
可用于INTEGER类型及STD_LOGIC和STD_LOGIC_VECTOR类型混合运算的运算符,并定义了由STD_LOGIC_VECTOR型到INTEGER型的转换函数。
5.配置
可以把特定的结构体关联到(指定给)一个确定的实体
一般格式:
CONFIGURATION 配置名 OF 实体名 IS
FOR 选配结构体名
END FOR;
END 配置名;
二、基本语句与基本设计
1.顺序语句
顺序语句只能用于进程和子程序中,被用来描述组合逻辑和时序逻辑。常用的顺序描述语句有:赋值语句、IF语句、CASE语句、LOOP语句、NEXT语句EXIT语句、子程序调用语句、RETURE语句、WAIT语句和NULL语句。
2.并行语句
各种并行语句在结构体中的执行同步进行的,其执行顺序与书写顺序无关。
3.VHDL组合逻辑电路、时序逻辑电路
组合逻辑电路没有记忆功能,而时序电路具有记忆功能,简单点说,组合电路没有时钟,时序电路有时钟