VHDL入门基础——语法规则

VHDL基础语法——结构篇(1)

1. 程序结构
(Library):存放已经编译好的包集合,实体,结构体以及配置等。
(Package):声明实体中将要使用的信号定义,常数定义,数据类型,函数定义等。
实体(Entity):定义电路的输入/输出接口(port)
结构体(Architecture):描述电路功能,一个Entity可以包含多个Arc,但是同一时间,只能有一个Arc被使用
配置(Configuration):决定哪一个Arc被使用
tips:
1.上述所有结构并非必不可少,理论上只需要库的调用,实体申明,以及结构体描述
2.VHDL中的注释:–(内容),类似Verilog中//,汉字容易乱码,尽量用英文
3.VHDL中不区分大小写

2.实体
申明格式:
Entity Ename is
[Generic (常数名:数据类型:设定值)] --[]若没有可缺省
Port(
端口名1:端口方向 端口类型;
端口名2:端口方向 端口类型;
。。。
); --最后一个端口名不加分号
tips:
1.端口方向:in、out、inout、buffer(实体内部可读)
2.端口类型:申明端口的数据类型,std_logic、std_logic_vector、integer
VHDL是强类型语言,同一数据类型端口信号和操作数才能相互作用

3.结构体
结构体Arc用以描述实体Entity的功能,一个实体Entity可以含有多个Arc,但是同一时刻只能有一个Arc起作用,Config就决定哪个结构体用于仿真和综合。
Architecture Aname of Ename is
[声明语句]
begin
功能描述;
end [Aname];
tips:
1.声明语句包含:所需用到的端口信号,数据类型,常数,元件,子程序等。但在一个结构体中声明的子程序(函数或过程)只能用于此结构体,若想要全局调用,则需要将其用作程序包(package)处理。
2.进程语句(Process):内部顺序执行,且在敏感信号改变时执行。(类似verilog中的always语句)

4.库与包调用
库的调用:
Library Lname;(如Library IEEE;)
对库中程序包的使用:
Use Lname.Pname.项目名(如Use ieee.std_logic_1164.all --all是关键词,表示程序包中所有项目均可用)
tips:
1.IEEE库中常用有3个程序包:std_logic_1164、std_logic_Arich、std_logic_Unsigned。初学时可以将三个程序包都调用,并不会增加综合时负担。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值