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程序基本结构的更多相关文章

  1. Delphi之DLL知识学习5---在Delphi应用程序中使用DLL

    首先说明一下:同一个动态库(DLL)被多个的程序加载的话,那么将会在每次加载的时候都会重新分配新的独立的内存空间,绝对不是共用一个,所以当一个DLL被多次加载的时候,其会在内存中“复制”多份,不会互相 ...

  2. 04 入门 - ASP.NET MVC应用程序的结构

    目录索引:<ASP.NET MVC 5 高级编程>学习笔记 用Visual Studio创建了一个新的ASP.NET MVC应用程序后,将自动向这个项目中添加一些文件和目录. 如图所示: ...

  3. Web前端入门知识

    第一阶段:理论知识 第一章:协议理解 第二阶段:了解知识 第二章:前端简介 第三阶段:入门知识 第三章:标签结构 第四章:常用标签 第四阶段:样式搭配 第五章:样式初见 第六章:属性选择 第七章:属性 ...

  4. learning armbian steps(1) ----- armbian 入门知识基础学习

    第一问: armbian是什么? Armbian是轻量级的Debian系统和为ARM开发板专门发行并重新编译的Ubuntu系统. 第二问:  什么场景下会用到armbian系统? 一个带有arm编译器 ...

  5. Vmware Vsphere WebService SDK开发(第一讲)-基本知识学习

    刚开始这方面开发的时候,不知道如何下手,能够查到的资料特别少,而且看到很多网友和我一样也在找这方面的资料.接下来的一段时间我就结合自己所参与的项目,完成关于Vmware Vsphere WebServ ...

  6. 移动H5开发入门知识,CSS的单位汇总与用法

    说到css的单位,大家应该首先想到的是px,也就是像素,我们在网页布局中一般都是用px,但是近年来自适应网页布局越来越多,em和百分比也经常用到了.然后随着手机的流行,web app和hybrid a ...

  7. H5移动端开发入门知识以及CSS的单位汇总与用法

    说到css的单位,大家应该首先想到的是px,也就是像素,我们在网页布局中一般都是用px,但是近年来自适应网页布局越来越多,em和百分比也经常用到了.然后随着手机的流行,web app和hybrid a ...

  8. Java web 入门知识 及HTTP协议详解

     Java  web  入门知识 及HTTP协议详解 WEB入门 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资 ...

  9. 初学者福音——10个最佳APP开发入门在线学习网站

    根据Payscale的调查显示,现在的APP开发人员的年薪达到:$66,851.这也是为什么那么多初学的开发都想跻身到APP开发这行业的主要原因之一.每当你打开App Store时候,看着琳琅满目的A ...

随机推荐

  1. Streamr助你掌控自己的数据(1)——教你5分钟上传数据至Streamr

    博客说明 所有刊发内容均可转载但是需要注明出处. 教你5分钟上传数据至Streamr 本系列文档主要介绍怎么通过Streamr管理自己的DATA,整个系列包括三篇教程文档,分别是:教你5分钟上传数据至 ...

  2. Linux系列——安装双系统Ubuntu

    作为一个穷人,电脑破得不行却没钱换,怎么办呢,不如换个Ubuntu吧,没有Windows那么多后台应用,在我这台古董上稍微流畅一点. Linux有很多发行版,比较流行和适合入门的就是Ubuntu和De ...

  3. 占位符golang

    定义示例类型和变量 type Human struct { Name string } var people = Human{Name:"zhangsan"} 普通占位符 占位符 ...

  4. 对React children 的深入理解

    React的核心为组件.你可以像嵌套HTML标签一样嵌套使用这些组件,这使得编写JSX更加容易因为它类似于标记语言. 当我刚开始学习React时,当时我认为“使用 props.children 就这么 ...

  5. JDK动态代理的简单理解

    转载:http://www.cnblogs.com/luotaoyeah/p/3778183.html 动态代理 代理模式是 Java 中的常用设计模式,代理类通过调用被代理类的相关方法,提供预处理. ...

  6. Django_csrf

    CSRF攻击介绍 CSRF 攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在并未授权的情况下执行在权限保护之下的操作.比如说,受害者 Bob 在银行有一笔存款,通过对银行的 ...

  7. “Hello World!”团队第七周召开的第五次会议

    今天是我们团队“Hello World!”团队第七周召开的第五次会议.博客内容: 一.会议时间 二.会议地点 三.会议成员 四.会议内容 五.todo list 六.会议照片 七.燃尽图 八.代码 一 ...

  8. Task 6.2冲刺会议九 /2015-5-22

    今天把之前的跳转问题加以改正并加以优化.遇到的主要问题是跳转的时后时间有点长,以为没有成功.之后查资料说是端口没有及时释放,导致了程序的滞缓.明天要继续把程序的界面进行优化.

  9. 再学HTML之一

    Html 超文本标记语言 什么是html? HTML 是用来描述网页的一种语言. HTML 指的是超文本标记语言 (Hyper Text Markup Language) HTML 不是一种编程语言, ...

  10. 【CSAPP笔记】12. 高速缓存存储器

    高速缓存存储器 在存储层次结构中,高速缓存存储器,也叫 cache 是最接近 CPU 寄存器的那一块. 更一般而言,缓存(caching)是一个无所不在的技术.缓存的意思是:对于每层的存储设备,位于 ...