集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 157|回复: 2

学 VHDL 语言,看这篇就够了!

[复制链接]
# 学VHDL语言,看这篇就够了!
宝子们,今天来唠唠VHDL硬件设计语言,这在FPGA开发里可太重要啦,新手也别怕,干货满满包教包会!

先说说注释,VHDL有单行和多行注释。单行注释用“--”,比如“-- Comment here”;多行注释就像这样一大段,把公司、工程师、设计日期这些信息都能写清楚,方便团队协作和后期维护。

配置能理清层与层、实体和构造体之间的关系,语法是“CONFIGURATION 配置名 OF 实体名 IS...END 配置名” 。设计单元里,包能存放信号、常数这些定义;库有IEEE、STD这些类型,IEEE库超常用,里面的STD_LOGIC_1164程序包定义的数据类型在CPLD或FPGA设计中经常用到。

模块设计有实体和架构。实体是模块的外部框架,定义了通用参数和端口,像个黑盒子展示对外接口;架构描述内部构造,是模块的“心脏” 。例化模块时,先声明元件再进行端口映射,就像搭积木一样把小模块拼成大系统。

数据类型这块,VHDL既有标准类型,像整形、实数、位这些,也能自定义。自定义类型有枚举、数组和子类型,比如用枚举定义状态机的不同状态,用数组定义存储器结构。不同类型对象不能直接代入,得用类型标记法或类型函数法转换。

说到操作符,“=>”这个关联符号很重要,在端口映射、case语句里都用得到。还有端口声明,分双向、输入和输出端口,根据需求选择 。常量、信号和变量声明也不一样,常量固定不变,信号用于模块间通信,变量在进程里临时存储数据。

进程语句是VHDL的关键部分。一个结构体里多个进程能并发执行,但进程里语句是顺序执行的,进程激活得靠敏感信号变化或WAIT语句。基本描述语句有顺序赋值、判断、循环这些,并行语句能简化进程,条件赋值和选择信号赋值能灵活给信号赋值。

过程和函数也很实用。过程有过程首和过程体,能实现复杂算法;函数在程序包中定义要有函数首,在进程或结构体里可不写,函数参数类型和端口模式有限制。

有符号数和无符号数定义在IEEE库的STD_LOGIC_ARITH包中,不过现在numeric_std库更推荐,它能避免函数重载冲突。

最后讲讲测试编写。测试框架有固定格式,还能自己生成时钟和复位信号。文件操作能对文件进行打开、读写、关闭,控制台读写可以和外部交互数据。

大家要是在学习VHDL过程中有啥问题,或者有好的经验,欢迎在评论区留言,咱们一起进步!
lihongkun16 发表于 前天 09:04 | 显示全部楼层
学 VHDL 语言,看这篇就够了!

点评

海!外直播 bitly.net/ggggn 禁闻视频 bitly.net/jj66jj 警察不是用来解决人民提出的问题的,警察是用来解决提出问题的人民的。警匪还有区别吗?当然有区别,匪没有人给发工资的。  发表于 前天 15:41
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-4-18 19:30 , Processed in 0.062405 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表