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. 戴尔win10重新安装win7系统

    戴尔v5468电脑win10重装回win7系统 首先是公司需要用到ie8来执行公司的项目维护,都是很早之前的项目了,因为是对接政府相关的业务,不怎么有把握对项目进行稳定更新,所以我就为这个ie8操碎了 ...

  2. flask中的if __name__ == "__main__"

    在编写python文件时,一般会在入口文件中加入if __name__ == "__main__", 这样当这个脚本文件执行时就会执行这个语句下面的内容,而如果这个脚本文件被当作模 ...

  3. Linux——CentOS7添加/删除用户和用户组(学习笔记)

    1.新建用户 adduser testuser //新建testuser 用户 passwd testuser //给testuser 用户设置密码 2.建工作组 groupadd testgroup ...

  4. zabbix切换中文,监控图下方显示乱码,监控图X轴不显示时间问题解决(适用于所有版本)

    一.现象: abbix3.4安装好后添加zabbix图形,发现有好多方块 这是因为zabbix web程序缺少中文字体 二.解决方案1: 1.在windows系统找一个中文字体上传到服务器中,我这里找 ...

  5. AssertionError

    (1)p1 = multiprocessing.Process(test1)p2 = multiprocessing.Process(target=test2) 错误: p1缺少target,应为(t ...

  6. 7.openldap使用ssl加密认证

    作者:yaoyao 1.服务器端部署 1.自建CA中心 1.CA中心生成自身私钥 #cd /etc/pki/CA #(umask 077; openssl genrsa -out private/ca ...

  7. c# bitmap和new bitmap(bitmap)及在System.Drawing.Image.get_RawFormat()报错“参数无效”

    问题情境: 给picturebox赋image属性,我用一下代码,出错: Bitmap theBitmap = convertCameraData.display(rawDataArray, heig ...

  8. spring冲刺第七天

    昨天进行地图和人物的代码整合,有所缺陷. 今天使人物成功的在地图上运动,并设计炸弹爆炸效果. 遇到的问题:炸弹不会吧人物炸死,只会炸没砖块.

  9. 使用myeclipse2014整合ss2h

    使用myeclipse2014整合ssh 新建一个webproject 创建过程中注意选择生成web.Xml   先添加struts2的能力 选择都添加过滤器的选项 Core dojo Dwr spr ...

  10. BufferedWriter与BufferedRead --------------------------Test

    package com.test; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; ...