VHDL从一个例子开始-----锁存器
来源:互联网 发布:智能电视机网络电视机 编辑:程序博客网 时间:2024/06/05 06:23
VHDL的学习从一个例子开始学起-----锁存器的设计。锁存器是一个简单的数字电路,下图是1位锁存器的原理图。
图1 1位锁存器的原理图
其中,引脚D是锁存器的输入,ENV是锁存器的使能引脚,Q是锁存器的输出引脚。当ENV=1时,Q=D;当ENV=0时,Q为上次D的输入。下面是VHDL的程序:
--IEEE库引用说明
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;
--实体声明ENTITY Latch isPort(D,ENV:IN STD_LOG; Q:OUT STD_LOGIC;);END ENTITY Latch ;
--结构体声明ARCHITECTURE one OF Latch is
--信号的声明 signal sig:STD_LOGIC; begin
--进程的声明 PROCESS(D,ENV) begin if(env='1') then sig<=D; end if; Q<=sig; end process;end architecture on;现在对上面的程序说明下:
(1)IEEE库:
它包含了描述器件的输入、输出端口数据类型,即端口信号的取值类型或范围中将要用到的IEEE 的标准库中的STD_LOGIC_1164 程序包。使用LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL来引用。如果学过C语言,可以很好理解,它类似与C语言中的#include<*******>语句。
(2)实体:
实体相当于电路中的元器件 , 它是一个独立的完整的模块,它描述的 “元器件”的接口信息。通过PORT来定义元器件的 引脚。IN 引脚定义为输入,OUT定义为输出,INOUT 定义为输入输出。
(3)结构体
结构体是VHDL 程序中不可或缺的三个部分之一,另外两个是IEEE库和实体。结构体描述了程序的逻辑功能,其相当于是元器件的内部电路。结构体中定义了一个signal和Process。signal的功能是存储 外部信号D的数据位。Process后面会详述。在PROCESS中有一个IF判断语句,器逻辑功能与C语言中的if语句相同。当D或ENV其中有一个输入变化时,程序便会执行一次PROCESS中的语句。当ENV=‘1’时sig就被赋值为D。“sig<=D“表示将D赋值给sig。当ENV不等于‘1’时便会退出IF语句,然后执行Q<=sig这样Q就会输出D之前输入的数据位。
总结:
本文从一个比较简单的例子--锁存器开始介绍了VHD程序的结构。后面会详细介绍VHDL的数据结构以及执行语句,状态机的设计。
- VHDL从一个例子开始-----锁存器
- 从一个例子开始分析AIDL原理
- 网络协议栈0:从一个例子开始
- Qt,从控件的一个综合性例子开始
- Shiro —— 从一个简单的例子开始
- 【VHDL】VHDL设计一个分频器
- vhdl testbench简单例子
- 从Verilog到VHDL
- 一个SDL的例子分析(二)- 一切从main开始
- PHP性能优化(1)-从一个简单的例子开始
- JNI官方规范中文版——从一个简单的例子开始
- 从Spring For Android开始对Android的研究——一个完整的例子
- JNI官方规范中文版——从一个简单的例子开始
- jQuery从0开始之【一】jQuery的引入及第一个例子
- 一个新的开始,从现在开始!
- Mybatis从0开始的例子
- 从两个小例子开始学习flume
- 爱从一个微笑开始
- 【spring】tinyspring 实现ioc
- 我的心得
- myisam和innodb的区别
- python gamma矫正
- python学习之路--multithreading
- VHDL从一个例子开始-----锁存器
- Centos 7.4 安装 Redis 全过程
- vim编译器(2):按键说明
- [SDOI2010]魔法猪学院(Astar 优化K短路)
- 算法总结JS版(一)—— 冒泡排序(Bubble Sort)
- 用C实现C编译器(一)
- Filter(第四节)
- Junit单元测试避免死循环
- 深入Struts2学习(三)