vhdl入门(一)-vhdl的代码结构

vhdl入门(一)-vhdl的代码结构

序言

因为最近的涉及到了一些通信和传统dsp的开发,虽然现在比较火verilog,但是大部分轮子都是建立在vhdl上面的.那就在verilog的基础上拓展一下VHDL的技术栈

代码

talk is cheap , show me the code

这次由于是小小拓展一下,所以就不系统写教程了.所有知识点和细节都在注释里面.

--是注释,vhdl不区分大小写,教程一般是全部大写的,那我就全部小写吧
-------------------------------------------------------------------------
--首先是vhdl的库声明,有三个常用的库:
library ieee;
use ieee.std_logic_1164.all;
--  库名 .包名           .引用部分

--以下两个库在程序中都是默认"包含"的,所以可以不写
library standard;
use std.standard.all;

library work;
use work.all;
--------------------------------------------------------------------------
--接下来是实体(entity)声明,相当于verilog里面的module声明
entity D_NAND is 
    port (
        a,b,clk : IN  BIT;
        q       : OUT BIT
    );
end D_NAND;
--vhdl有些时候语法看起来就像是英语一样. 
--里面涵盖的信息,相当于verilog里面的外部端口声明.
--可以看出有三个端口,ab是输入端口,c是输出端口,数据类型都是BIT.
--端口类型有四种:in(输入),out(输出),inout(双向引脚),buffer(反馈引脚)
--信号类型有比较多种,常见的有:BIT,STD_LOGIC,INTEGER等
---------------------------------------------------------------------------

--接下来是结构体(architecture)部分,用来描述电路功能.
--多封装了一层architecture我个人觉得可以便捷地进行电路的版本管理吧,综合器只会选用一个结构体.
architecture d_a_b of D_NAND is 
    signal temp : BIT ;
begin
    temp <= a nand b ;
    process (clk)
    begin 
        if(clk'event and clk = '1') 
            then q <= temp ;
        end if;
    end process;
end d_a_b;
--d_a_b是architecture的名字
--注意: <= 不再是verilog里面的阻塞赋值,在这里是信号的赋值而已
-- nand是RTL级电路描述,与非
-- process是顺序执行语句,括号里面是敏感信号,类比verilog里面always后面的括号
--程序中,除了process之外,其它的都是并行在走的.相当于always
--在vhdl里面会分清楚触发process的事件,如代码便表示在时钟上升沿时触发if
------------------------------------------------------------------------------

结语

博学笃行,与时俱进

如果你想请我吃个南五的话

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
VHDL语言100例 目录检索: 第1例 带控制端口的加法器 第2例 无控制端口的加法器 第3例 乘法器 第4例 比较器 第5例 二路选择器 第6例 寄存器 第7例 移位寄存器 第8例 综合单元库 第9例 七值逻辑与基本数据类型 第10例 函数 第11例 七值逻辑线或分辨函数 第12例 转换函数 第13例 左移函数 第14例 七值逻辑程序包 第15例 四输入多路器 第16例 目标选择器 第17例 奇偶校验器 第18例 映射单元库及其使用举 第19例 循环边界常数化测试 第20例 保护保留字 第21例 进程死锁 第22例 振荡与死锁 第23例 振荡电路 第24例 分辨信号与分辨函数 第25例 信号驱动源 第26例 属性TRANSACTION和分辨信号 第27例 块保护及属性EVENT, 第28例 形式参数属性的测试 第29例 进程和并发语句 第30例 信号发送与接收 第31例 中断处理优先机制建模 第32例 过程限定 第33例 整数比较器及其测试 第34例 数据总线的读写 第35例 基于总线的数据通道 第36例 基于多路器的数据通道 第37例 四值逻辑函数 第38例 四值逻辑向量按位或运算 第39例 生成语句描述规则结构 第40例 带类属的译码器描述 第41例 带类属的测试平台 第42例 行为与结构的混合描述 第43例 四位移位寄存器 第44例 寄存/计数器 第45例 顺序过程调用 第46例 VHDL中generic缺省值的使用 第47例 无输入元件的模拟 第48例 测试激励向量的编写 第49例 delta延迟例释 第50例 惯性延迟分析 第51例 传输延迟驱动优先 第52例 多倍(次)分频器 第53例 三位计数器与测试平台 第54例 分秒计数显示器的行为描述6 第55例 地址计数器 第56例 指令预读计数器 第57例 加.c减.c乘指令的译码和操作 第58例 2-4译码器结构描述 第59例 2-4译码器行为描述 第60例 转换函数在元件例示中的应用 第61例 基于同一基类型的两分辨类型的赋值相容问题 第62例 最大公约数的计算 第63例 最大公约数七段显示器编码 第64例 交通灯控制器 第65例 空调系统有限状态自动机 第66例 FIR滤波器 第67例 五阶椭圆滤波器 第68例 闹钟系统的控制 第69例 闹钟系统的译码 第70例 闹钟系统的移位寄存器 第71例 闹钟系统的闹钟寄存器和时间计数器 第72例 闹钟系统的显示驱动器 第73例 闹钟系统的分频器 第74例 闹钟系统的整体组装 第75例 存储器 第76例 电机转速控制器 第77例 神经元计算机 第78例ccAm2901四位微处理器的ALU输入 第79例ccAm2901四位微处理器的ALU 第80例ccAm2901四位微处理器的RAM 第81例ccAm2901四位微处理器的寄存器 第82例ccAm2901四位微处理器的输出与移位 第83例ccAm2910四位微程序控制器中的多路选择器 第84例ccAm2910四位微程序控制器中的计数器/寄存器 第85例ccAm2910四位微程序控制器的指令计数器 第86例ccAm2910四位微程序控制器的堆栈 第87例 Am2910四位微程序控制器的指令译码器 第88例 可控制计数器 第89例 四位超前进位加法器 第90例 实现窗口搜索算法的并行系统(1)——协同处理器 第91例 实现窗口搜索算法的并行系统(2)——序列存储器 第92例 实现窗口搜索算法的并行系统(3)——字符串存储器 第93例 实现窗口搜索算法的并行系统(4)——顶层控制器 第94例 MB86901流水线行为描述组成框架 第95例 MB86901寄存器文件管理的描述 第96例 MB86901内ALU的行为描述 第97例 移位指令的行为描述 第98例 单周期指令的描述 第99例 多周期指令的描述 第100例 MB86901流水线行为模型 VHDL收藏参考资料.part1.rar (5.72 MB, 下载次数: 1436 ) VHDL收藏参考资料.part2.rar (5.72 MB, 下载次数: 1257 ) VHDL收藏参考资料.part3.rar (5.72 MB, 下载次数: 988 ) VHDL收藏参考资料.part4.rar (5.72 MB, 下载次数: 1140 ) VHDL收藏参考资料.part5.rar (2.88 MB, 下载次数: 1008 ) 资料内容不断更新和增加中。。。 fpga , VHDL , 例程 , 资料
包括如下100例有关的VHDL描述文件,但解压后只有94例,其他部分错误 第1例?带控制端口的加法器 袁 媛(1) 第2例?无控制端口的加法器 袁 媛(4) 第3例?乘法器 袁 媛(6) 第4例?比较器 袁 媛(8) 第5例?二路选择器 袁 媛(11) 第6例?寄存器 袁 媛(13) 第7例?移位寄存器 袁 媛(16) 第8例?综合单元库 袁 媛(22) 第9例?七值逻辑与基本数据类型 袁 媛(29) 第10例?函数 袁 媛(32) 第11例?七值逻辑线或分辨函数 袁 媛(35) 第12例?转换函数 袁 媛(38) 第13例?左移函数 袁 媛(40) 第14例?七值逻辑程序包 袁 媛(42) 第15例?四输入多路器 陈东瑛(51) 第16例?目标选择器 吴清平(57) 第17例?奇偶校验器 陈东瑛(61) 第18例?映射单元库及其使用举例 陈东瑛(69) 第19例?循环边界常数化测试 陈东瑛(75) 第20例?保护保留字 袁 媛(77) 第21例?进程死锁 刘沁楠(79) 第22例?振荡与死锁 袁 媛(81) 第23例?振荡电路 刁岚松(83) 第24例?分辨信号与分辨函数 袁 媛(87) 第25例?信号驱动源 刘沁楠(92) 第26例?属性TRANSACTION和分辨信号 陈东瑛(96) 第27例?块保护及属性EVENT,STABLE 陈东瑛(101) 第28例?形式参数属性的测试 刘沁楠(104) 第29例?进程和并发语句 刁岚松(107) 第30例?信号发送与接收 刁岚松(111) 第31例?中断处理优先机制建模 吴清平(113) 第32例?过程限定 刘沁楠(116) 第33例?整数比较器及其测试 刘沁楠(119) 第34例?数据总线的读写 刁岚松(129) 第35例?基于总线的数据通道 李 春(134) 第36例?基于多路器的数据通道 李 杰(148) 第37例?四值逻辑函数 袁 媛(152) 第38例?四值逻辑向量按位或运算 刁岚松(156) 第39例?生成语句描述规则结构 袁 媛(159) 第40例?带类属的译码器描述 袁 媛(164) 第41例?带类属的测试平台 袁 媛(169) 第42例?行为与结构的混合描述 袁 媛(171) 第43例?四位移位寄存器 .刘沁楠(174) 第44例?寄存/计数器 袁 媛(185) 第45例?顺序过程调用 陈东瑛(189) 第46例?VHDL中generic缺省值的使用 王作建(191) 第47例?无输入元件的模拟 王作建(196) 第48例?测试激励向量的编写 袁 媛(201) 第49例?delta延迟例释 吴清平(206) 第50例?惯性延迟分析 吴清平(210) 第51例?传输延迟驱动优先 陈东瑛(213) 第52例?多倍(次)分频器 刁岚松(216) 第53例?三位计数器与测试平台 刘沁楠(220) 第54例?分秒计数显示器的行为描述 陈东瑛(226) 第55例?地址计数器 陈东瑛(234) 第56例?指令预读计数器 吴清平(242) 第57例?加、减、乘指令的译码和操作 吴清平(245) 第58例?2-4译码器结构描述 刘沁楠(248) 第59例?2-4译码器行为描述 吴清平(255) 第60例?转换函数在元件例示中的应用 王作建(258) 第61例?基于同一基类型的两分辨类型的赋值相容问题 王作建(261) 第62例?最大公约数的计算 刁岚松(266) 第63例?最大公约数七段显示器编码 吴清平(269) 第64例?交通灯控制器 吴清平(272) 第65例?空调系统有限状态自动机 刁岚松(276) 第66例?FIR滤波器 谢 巍(280) 第67例?五阶椭圆滤波器 刘沁楠(290) 第68例?闹钟系统的控制器 张东晓(302) 第69例?闹钟系统的译码器 陈东瑛(311) 第70例?闹钟系统的移位寄存器 陈东瑛(315) 第71例?闹钟系统的闹钟寄存器和时间计数器 陈东瑛(317) 第72例?闹钟系统的显示驱动器 陈东瑛(322) 第73例?闹钟系统的分频器 陈东瑛(325) 第74例?闹钟系统的整体组装 张东晓(327) 第75例?存储器 李 春(333) 第76例?电机转速控制器 张俭锋(337) 第77例?神经元计算机 袁 媛(343) 第78例?Am2901四位微处理器的ALU输入 韩 曙(347) 第79例?Am2901四位微处理器的ALU 韩 曙(353) 第80例?Am2901四位微处理器的RAM 韩 曙(359) 第81例?Am2901四位微处理器的寄存器 韩 曙(363) 第82例?Am2901四位微处理器的输出与移位 韩 曙(365) 第83例?Am2910四位微程序控制器中的多路选择器 韩 曙(370) 第84例?Am2910四位微程序控制器中的计数器/寄存器 韩 曙(374) 第85例?Am2910四位微程序控制器的指令计数器 韩 曙(379) 第86例?Am2910四位微程序控制器的堆栈 韩 曙(382) 第87例?Am2910四位微程序控制器的指令译码器 韩 曙(390) 第88例?可控制计数器 韩 曙(399) 第89例?四位超前进位加法器 韩 曙(406) 第90例?实现窗口搜索算法的并行系统(1)--协同处理器 李 杰(410) 第91例?实现窗口搜索算法的并行系统(2)--序列存储器 李 杰(416) 第92例?实现窗口搜索算法的并行系统(3)--字符串存储器 李 春(419) 第93例?实现窗口搜索算法的并行系统(4)--顶层控制器 李 春(422) 第94例?MB86901流水线行为描述组成框架 石 峰(428) 第95例?MB86901寄存器文件管理的描述 石 峰(434) 第96例?MB86901内ALU的行为描述 石 峰(437) 第97例?移位指令的行为描述 石 峰(440) 第98例?单周期指令的描述 石 峰(442) 第99例?多周期指令的描述 石 峰(445) 第100例? MB86901流水线行为模型 石 峰(458)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小何的芯像石头

谢谢你嘞,建议用用我的链接

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

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

打赏作者

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

抵扣说明:

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

余额充值