毕业设计预习:VHDL入门知识学习(一) VHDL程序基本结构
VHDL入门知识学习(一) VHDL程序基本结构
- 简介
- VHDL程序基本结构
简介
概念:
- HDL—Hardware Description Language—硬件描述语言—描述硬件电路的功能、信号连接关系及定时关
系的语言。
- VHDL—Very High Speed Integrated Circuit Hardware Description Language—超高速集成电路硬件
描述语言
特点:
- 工艺无关
- 共享复用
- 不支持描述模拟电路
规定:
- 在VHDL中,字母的大、小写没有区别(单引号内的字符常数和双引号内的字符串除外);
- 以分号“;”作为语句结束的标志;
- 注释行以双短线“- -”开始;
- 各种名称的命名规则:
- 名称由字母、数字和下划线组成;
- 名称的第一个字符必须是字母;
- 名称的最后一个字符不能是下划线,也不能连用下划线;
- 命名不能与VHDL的保留字或关键字相同。
VHDL程序基本结构
例:1位全加器
ENTITY adder IS
PORT( a, b,cin : IN BIT;
s ,co : OUT BIT);
END adder;//实体说明
ARCHITECTURE a OF adder IS
BEGIN
s<=a XOR b XOR cin;
co<=((a XOR b) AND cin) OR (a AND b);
END a;//结构体说明

实体说明:描述了一个设计对外的输入、输出接口以及一些用于结构体的参数定义。

结构体说明:描述的是设计实体的行为和结构。
实体(Entity )
ENTITY <实体名> IS
[类属参数说明]
[端口说明]
END <实体名>;
ENTITY adder IS
PORT(
a, b,cin : IN BIT;
s ,co : OUT BIT);
END adder;
实体名: 对实体的命名,在MAXPLUSII中要求实体名必须与存盘文件名相同。
类属参数说明:用来为设计实体指定参数,如定义端口宽度、器件延时等。
端口说明:描述端口的名称、模式和数据类型。
PORT(端口名[,端口名]:模式 数据类型;
┇
端口名[,端口名]:模式 数据类型);
端口名称: 对端口的命名,是端口的标识符。
端口模式: 说明端口信号的流动方向。
① 输入模式(IN)
② 输出模式(OUT)
③ 双向模式(INOUT)
④ 缓冲模式(BUFFER)
⑤ LINKAGE模式

端口: 实体的每一个输入、输出信号称为端口,对应于硬件电路图或芯片的一个'引脚'。
数据类型:说明经过端口的信号的数据类型。
- VHDL是一种强类型语言,有10种标准的数据类型,还可以由用户自定义数据类型。
- BIT(位,可取值为‘0’或‘1’ )类型是VHDL的预定义类型,使用此类型时无需特别说明。
- 当使用非预定义的数据类型时,必须用
库和程序包调用语句来为程序的编译指明所使用的数据类型的定义在哪里。
库和数据包的调用
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY adder IS
PORT( a, b,cin : IN STD_LOGIC;
s ,co : OUT STD_LOGIC);
END adder;
结构体
ARCHITECTURE <结构体名> OF <实体名> IS
[结构体说明部分];
BEGIN
<并行处理语句>;
END结构体名;
ARCHITECTURE a OF adder IS
BEGIN
s<=a XOR b XOR cin;
co<=((a XOR b) AND cin) OR (a AND b);
END a;
结构体名:对本结构体的命名。
结构体说明部分:对结构体内部所使用的'信号'、'常数'、数据类型和函数进行定义;
并行处理语句:具体描述了结构体的行为和结构。
VHDL程序五大部分
1、实体(Entity )
描述所设计的系统的外部接口信号。
2、结构体(Architecture Body)
描述系统内部的结构和行为。
3、程序包(Package)
存放各个设计模块都能共享的数据类型、信号和常数的定义以及函数和过程的定义等。
4、库(Library)
存放已经编译的实体、结构体、程序包和配置的定义。
5、配置(Configuration)
描述实体与结构体之间的连接关系,或者在分层设计中描述层与层之间的连接关系。
PS:MAXPLUSII自动选择几何位置排列在最后的结构体作为当前结构体进行编译。
参考
书籍:《VHDL入门·解惑·经典实例·经验总结》
毕业设计预习:VHDL入门知识学习(一) VHDL程序基本结构的更多相关文章
- Delphi之DLL知识学习5---在Delphi应用程序中使用DLL
首先说明一下:同一个动态库(DLL)被多个的程序加载的话,那么将会在每次加载的时候都会重新分配新的独立的内存空间,绝对不是共用一个,所以当一个DLL被多次加载的时候,其会在内存中“复制”多份,不会互相 ...
- 04 入门 - ASP.NET MVC应用程序的结构
目录索引:<ASP.NET MVC 5 高级编程>学习笔记 用Visual Studio创建了一个新的ASP.NET MVC应用程序后,将自动向这个项目中添加一些文件和目录. 如图所示: ...
- Web前端入门知识
第一阶段:理论知识 第一章:协议理解 第二阶段:了解知识 第二章:前端简介 第三阶段:入门知识 第三章:标签结构 第四章:常用标签 第四阶段:样式搭配 第五章:样式初见 第六章:属性选择 第七章:属性 ...
- learning armbian steps(1) ----- armbian 入门知识基础学习
第一问: armbian是什么? Armbian是轻量级的Debian系统和为ARM开发板专门发行并重新编译的Ubuntu系统. 第二问: 什么场景下会用到armbian系统? 一个带有arm编译器 ...
- Vmware Vsphere WebService SDK开发(第一讲)-基本知识学习
刚开始这方面开发的时候,不知道如何下手,能够查到的资料特别少,而且看到很多网友和我一样也在找这方面的资料.接下来的一段时间我就结合自己所参与的项目,完成关于Vmware Vsphere WebServ ...
- 移动H5开发入门知识,CSS的单位汇总与用法
说到css的单位,大家应该首先想到的是px,也就是像素,我们在网页布局中一般都是用px,但是近年来自适应网页布局越来越多,em和百分比也经常用到了.然后随着手机的流行,web app和hybrid a ...
- H5移动端开发入门知识以及CSS的单位汇总与用法
说到css的单位,大家应该首先想到的是px,也就是像素,我们在网页布局中一般都是用px,但是近年来自适应网页布局越来越多,em和百分比也经常用到了.然后随着手机的流行,web app和hybrid a ...
- Java web 入门知识 及HTTP协议详解
Java web 入门知识 及HTTP协议详解 WEB入门 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资 ...
- 初学者福音——10个最佳APP开发入门在线学习网站
根据Payscale的调查显示,现在的APP开发人员的年薪达到:$66,851.这也是为什么那么多初学的开发都想跻身到APP开发这行业的主要原因之一.每当你打开App Store时候,看着琳琅满目的A ...
随机推荐
- PHP核心技术——继承与多态
继承: class person{ public $name='Tom'; public $gender; static $money=10000; public function __constru ...
- docker中创建MySQL及在外部使用Navicat连接
1:获取MySQL镜像 运行 docker pull mysql [root@MyCentos7- ~]# docker pull mysql Using default tag: latest la ...
- NO.2:自学tensorflow之路------BP神经网络编程
引言 在上一篇博客中,介绍了各种Python的第三方库的安装,本周将要使用Tensorflow完成第一个神经网络,BP神经网络的编写.由于之前已经介绍过了BP神经网络的内部结构,本文将直接介绍Tens ...
- 自制session
原理 1.面向对象中通过索引的方式访问对象,需要内部实现 __getitem__ .__delitem__.__setitem__方法 2.Tornado框架中,默认执行Handler的get/pos ...
- maven:新建的maven工程需要添加一下插件
//下面的代码是改变maven的默认使用Java版本,本机是jdk1.7所以用1.7<plugins> <plugin> <groupId>org.apache.m ...
- 20162314 Experiment 1: Linear structure - experiment report.
Experiment report of Besti course:<Program Design & Data Structures> Class: 1623 Student N ...
- css3学习笔记三
css3有些特殊的元素选择器这和jquery相似.效果图如下
- 文件名命工具类(将指定目录下的文件的type类型的文件,进行重命名,命名后的文件将去掉type)
import java.io.File; /** * <b>function:</b> 文件命名工具类 * @author hoojo * @createDate 2012-5 ...
- asp.net 错误24
错误 24 “xxx.Web.xxx.xxx”不包含“xxName”的定义,并且找不到可接受类型为“xxx.Web.xxxr.xxx”的第一个参数的扩展方法“xxxName”(是否缺少 using 指 ...
- JAVA异常架构图及常见面试题
红色为检查异常,就是eclipse要提示你是try catch 还是throws. 非检查异常,就是/0,nullpointexception,数据越界访问indexOfOutBounds 异常 错误 ...