毕业设计预习: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 ...
随机推荐
- python3实现合并两个有序数组
很早就听同学和师兄经常说刷题很重要,然而编程能力一直都很渣的我最近才开始从leetcode的初级算法开始.今天遇到的这道题虽然很简单,因为是头一次用自己的方法速度还不错,特此记录一下,还大神们请不要嘲 ...
- docker 安装vim
执行以下命令 apt-get update apt-get install vim
- django(新增model)No migrations to apply.
django 1.8版本,在models下新建一个class,无法在数据库创建新表的问题: - models.py class HostPwd(models.Model): hostname = mo ...
- 关于如何使用dubbo管理控制台的一些感想
1.起因 因java项目需要准备安装一个dubbo-admin管理后台研究使用,无奈github上并没有看到dubbo-admin的目录着实让人着急.百度引擎上一些文章也不靠谱!真是浪费时间!所以又 ...
- 使用sql查询mysql/oracle/sql server/gp数据库中指定表的字段信息(字段名/字段类型/字段长度/是否是主键/是否为空)
1,根据数据库类型拼接不同URL /** * 根据类型不同拼接连接的URL * @param dbType 1:mysql.2:oracle.3:sql server.4:gp * @param ip ...
- Daily Scrum7 11.11
今日任务: 徐钧鸿:结束了SQL和Affairs的移植,修改了连接池,学习C#和java的正则表达式并且完成相关的移植 张艺:个人阅读作业 黄可嵩:完成高亮显示的移植,进一步移植搜索代码 徐方宇:继续 ...
- C++:友元
前言:友元对于我来说一直是一个难点,最近看了一些有关友元的课程与博客,故在此将自己的学习收获做一个简单的总结 一.什么是友元 在C++的自定义类中,一个常规的成员函数声明往往意味着: • 该成员函数能 ...
- In-band Network Function Telemetry
文章名称:In-band Network Function Telemetry 发表时间:2018 期刊来源:SIGCOMM I Introduction (介绍) NFV运行在商品服务器上,在网络功 ...
- 【搜索】POJ-3050 基础DFS
一.题目 Description The cows play the child's game of hopscotch in a non-traditional way. Instead of a ...
- java下Mysql基本操作
https://www.cnblogs.com/centor/p/6142775.html