VHDL语言基本单元及其构成——EDA学习笔记(一)

本文介绍了VHDL程序的基本结构,包括库、函数包使用、实体和结构体的详细说明。实体作为设计单元,描述了设计实体与外部电路的接口,包括类属和端口说明。结构体则描述了设计实体的内部逻辑,通过功能描述语句实现输入输出的连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个相对完整的VHDL程序至少包括实体说明和实体对应的结构体两个基本组成部分。实际上,一个完整的VHDL程序应具有如下所示的比较固定的结构体,包括四个部分。 

库、函数包使用说明:用于打开(调用)本设计实体将要用到的库和程序包。

实体说明:描述该设计实体与外界接口信号,是可视部分。

结构体说明:用于描述该设计实体内部工作的逻辑关系,是不可视部分。

配置说明语句:主要用于以层次化方式中对特定的设计实体进行元件例化,或是为实体选定某个特定的结构体。

 一、实体

实体(entity)是一个设计实体的表层设计单元,功能是对这个设计实体与外部电路进行接口描述。

1.实体语句结构

entity 实体名 is
[generic(类属表);]
[port(端口表);]
end entity 实体名;

实体说明单元必须以语句“entity 实体名 is”开始,以语句“end entity 实体名;”,实体名有设计者命名,用来表示设计电路芯片的名称,也可以作为其他设计调用该设计实体时的名称。

注意:实体名和源程序文件的名字必须一致。

2.类属说明语句

类属(generic)参量是一种端口界面常数,常以一种说明的形式放在实体或块结构体前的说明部分。类属为设计实体和其外部环境通信的静态信息提供通道,特别是用来规定端口的大小、实体中子元件的数目、实体的定时特性等。类属的值可以有设计外部提供。因此,设计者可以从外部通过类属参量的重新设定而容易的改变一个设计实体或一个元件的内部电路结构和规模。

generic (常数名:数据类型[:=设定值];
         ...
         常数名:数据类型[:=设定值]);
        

例如:

generic(wide:integer:=32);--说明宽度为32位
generic(tph_h1,tph_1h:time:=5ns);--典型延时

3.端口说明语句

由端口(port)引导的端口说明语句是对一个设计实体界面的说明。端口为设计实体和外部环境的动态通信提供通道。

port(端口名:端口模式 数据类型;
     ...
     端口号:端口模式 数据类型);

(1)端口名

端口名是设计者为实体的每一个对外通道所取的名字。

(2)端口模式

①输入(IN):只读模式,将变量或者信号通过该端口读入。

②输出(OUT):单向幅值模式,将信号通过该端口输出。

③双向(INOUT):信号是双向的,既可以进入实体也可以离开实体。双向模式还可以用于内部反馈。

④缓冲(BUFFER):具有读功能的输出模式,即信号输出到实体外部,但同时也在内部反馈使用。缓冲模式不允许做双向端口使用。

二、结构体

结构体用来描述设计实体的结构和行为,即描述实体的功能,把设计实体的输入和输出之间的联系建立起来。

每个实体可以有多个结构体,每个结构体对应着实体不同结构和算法实现方案。

 

1.结构体一般语句结构

achitecture 结构体 of 实体名 is
    [说明语句]
begin
    [功能描述语句]
end achitecture 结构体;

2.结构体说明语句

结构体中的说明语句是对结构体的功能描述语句中将要用到的信号(signal)、数据类型(type)、常数(constant)、元件(component)、函数(function)和过程(process)等加以说明的语句。

3.功能描述语句

功能描述语句包括块语句、进程语句、信号幅值语句、子程序语句和元件例化语句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

单片机学习之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值