一个完整的VHDL语言程序通常包含实体(Entity)、构造体(Architecture)、配置(Configuration)、包集合(Package)和库(Library)5个部分。

实体用于描述所设计的系统的外部接口信号;构造体用于描述系统内部的结构和行为;包集合存放各设计模块都能共享的数据类型、常数和子程序等;配置用于从库中选取所需单元来组成系统设计的不同版本;库存放已经编译好的实体、构造体、包集合和配置。

一、概述

硬件描述语言(Hardware Description Language),顾名思义,就是描述硬件电路功能、信号连接关系及定时关系的语言。它能比电路原理图更有效地表示硬件电路的特性。利用硬件描述语言可以进行数字电子系统的设计。

国外硬件描述的语言种类很多,在我国比较有影响的大概有3种硬件描述语言:VHDL语言、Verilog HDL语言和AHDL语言。前两种已成为IEEE标准语言。

电子设计自动化(Electronic Design Automatic,EDA)技术的理论基础、设计工具、设计器件的关系是这样的:设计师用硬件描述语言HDL描绘出硬件的结构和硬件的行为,用设计工具将这些描述综合映射成与半导体工艺有关的硬件工艺文件,半导体器件FPGA则是这些硬件工艺文件的载体。当这些FPGA器件加载,配置上不同的工艺文件时,这个器件便具有了相应的功能。在这一系列的设计、综合、仿真、验证、配置的过程中,现代设计理论和现代设计方法始终贯穿其中。

以HDL语言表达设计意图,FPGA作为硬件载体,计算机为设计开发工具,EDA软件为开发环境的现代电子设计方法日趋成熟。软件硬件协同开发缩短了电子设计周期,加速了电子产品更新换代步伐。毫不夸张地说:“EDA是电子产业的心脏起搏器,是电子产业飞速发展的原动力。”

二、VHDL硬件描述语言的诞生

VHDL语言的英文全称是Very High Speed Integrated Circuit Hardware Description Language,即超高速集成电路硬件描述语言。在利用EDA工具进行电子设计时,逻辑图、分立电子原件作为整个越来越复杂的电子系统的设计已不适应。任何一种EDA工具,都需要一种硬件描述语言来做为 EDA工具的工作语言。这些众多的EDA工具软件开发者,各自推出了自己的HDL语言。

由美国政府牵头,VHDL工作小组于1981年6月成立,提出了一个满足电子设计各种要求的能够作为工业标准的HDL。1983年第三季度,由IBM公司、TI公司、Intermetrics公司签约,组成开发小组,工作任务是提出语言版本和开发软件环境。1986年IEEE标准化组织开始工作,讨论VHDL语言标准,历时一年有余,于1987年12月通过标准审查,并宣布实施,即IEEE STD 1076-1987。1993年VHDL重新修订,形成新的标准即IEEE STD 1076-1993。

从此以后,美国国防部实施新的技术标准,要求电子系统开发商的合同文件一律采用

VHDL文档。即第一个官方VHDL标准得到推广、实施和普及。

三、电子器件的发展

1、CPLD或EPLD芯片

这类器件的使用特点是:芯片一经上电加载即已完成编程,不必在每次上电时重新进行加载,也就是当程序烧入芯片后,只有下一次需要再修改程序时才需要对芯片进行重新加载,否则将不会改变先前所烧入的代码,类似于大的GAL芯片。例如,Lattice的ispGAL芯片可以在系统进行编程加载程序,也可以与该公司的ispLSI芯片在同一个电路中加载程序。CPLD在结构上主要由可编程逻辑宏单元LMC(Logic Macro Cell)围绕中心的可编程互连矩阵单元组成,其中LMC的逻辑结构比较复杂,并具有复杂的I/O单元互连结构,可以由用户根据设计的需要生成特定的电路结构,完成一定的功能。

2、 FPGA芯片

这类器件不像CPLD或EPLD,每次上电使用时不管是否改变程序都需要对芯片进行加载。现在FPGA芯片的容量一般比CPLD或EPLD的容量大得多,更适合于做较大系统的复杂设计。FPGA芯片通常包含3类可编程资源:可编程的逻辑功能块、可编程I/O块和可编程的内部互连。可编程的逻辑功能块是实现用户功能的基本单元,它们通常排成一个阵列,遍布于整个芯片中;可编程I/O块完成芯片上的逻辑与外部封装管脚的接口,常围绕着阵列排列于芯片四周;可编程的内部互连包括各种长度的连接线段和一些可编程连接开关,它们将各个可编程逻辑块或I/O块连接起来,构成特定功能的电路。

Xilinx的XC系列器件采用的是现场可编程门阵列FPGA,现场可编程门阵列是一种类似门阵列的结构,它的基本单元以阵列的形式排列在芯片上,但它不像门阵列那样由连线掩膜确定其最终的逻辑功能,而是将规则的连线阵列也已做好,其逻辑功能由各连线节点的控制开关的通断来确定。这些节点的控制开关的值有各种不同的控制方法,如静态随机存储器控制(SRAM)、反熔丝(antifuse based)控制以及由闪存(Flash)控制等几大类。

SRAM控制的FPGA器件是用静态随机存储器中存储的数值来控制芯片中可编程节点的通断,以实现芯片的设计功能。这种FPGA在使用时,需要在系统加电时首先进行功能初始化,将存储器的内容加载到芯片的控制器中。

反熔丝控制的FPGA器件是用反熔丝单元来控制可编程器件内的可编程节点的通断,使芯片中每一部分具有应有的逻辑功能,以实现器件的设计功能。反熔丝单元是一个被动的两端器件,通常情况下处于开路状态,在施加充足的电压后,能够永久的导通。用于现场可编程器件的反熔丝其占用芯片面积非常小,速度也很高,这方面的性能几乎可以与门阵列相比。但这种FPGA在编程时需要专用的编程设备,而且芯片功能一经编程确定后,不能再修改,反熔丝控制的FPGA器件价格最低。

Flash控制的FPGA器件是用闪存的数值来控制FPGA节点的通断,实现现场可编程目的。这种FPGA的工作特性与SRAM-FPGA相似,但与SRAM-FPGA相比,它的单元面积小。由于Flash具有不挥发性,使用时不必在每次上电时都重新进行功能加载,所以使用较方便。

VHDL语言的概述(诞生与发展)相关推荐

  1. VHDL语言基础-概述

    目录 概述: 什么是VHDL: VHDL的起源及发展: 使用VHDL的目的: VHDL的用途: VHDL与verilog HDL的比较: VHDL特点: 举例:二路选择器描述的变化 概述: 什么是VH ...

  2. 第一章 C语言程序设计概述

    1 概览 本章介绍以下内容: - 计算机系统架构:硬件和软件 - 编程语言的发展历程及其特性和使用场景 - 主流桌面系统(Windows,Linux,Mac)的C语言开发环境的搭建 - C程序运行在各 ...

  3. 基于VHDL语言的8路彩灯控制器的设计_kaic

    摘  要 伴随着我国电子科学技术的发展,彩灯越来越多地被融入到现代生活中的各式各样的景观中,彩灯作为一种装饰生活的观赏工具,不仅满足了人们视觉上的享受和娱乐,同时受关注的还有彩灯的花式花样.创意.节能 ...

  4. OpenCL™(开放计算语言)概述

    OpenCL™(开放计算语言)概述 异构系统并行编程的开准 OpenCL™(开放计算语言)是一种开放的.免版税的标准,用于对超级计算机.云服务器.个人计算机.移动设备和嵌入式平台中的,各种加速器进行跨 ...

  5. Java基础----JAVA语言的概述和开发环境的搭配

    01 JAVA语言的概述和开发环境的搭配 JAVA语言简介 创始人:詹姆斯.高斯林 历史:起初属于sun公司,由高斯林与其合伙人研发而出,用于在各种移动设备上进行程序开发设计,初始起名为green,后 ...

  6. JSON 是如何诞生与发展的?

    作者 | 猪哥 责编 | Elle JSON作为目前Web主流的数据交换格式,是每个IT技术人员都必须要了解的一种数据交换格式.尤其是在Ajax和REST技术的大行其道的当今,JSON无疑成为了数据交 ...

  7. 漫画 | Java语言是如何诞生的?

    点击上方"蓝色字体",选择"设为星标" 第一时间收到漫画更新推送哦! 这是南哥的 第17篇 原创漫画推送 互联网诞生,从最初的应用于军事领域为目的开创,到如今人 ...

  8. FPGA笔记:VHDL语言总结

    VHDL语言总结 前言 一. VHDL是什么? 1. 缩写 2. 作用 3. VHDL与原理图描述的比较 4. VHDL语言特点 5. 与其他语言比较 二.VHDL程序架构 VHDL基本结构 1. 实 ...

  9. VHDL语言的基本结构(结构框架说明)

    VHDL语言的基本结构 一.实体说明 主要描述的是一个设计单元的外部特征,即对外的输入/输出接口及一些用于结构体的参数定义. 规则一:建议将VHDL的标识符或基本语句关键词,以大写方式表示:而又设计者 ...

最新文章

  1. 2019年中国企业级SaaS行业研究报告
  2. Notepad++中执行Python脚本
  3. 如何获取 Process.Start 打开进程的输出结果?
  4. kendo treeview 修改节点显示值_VBA学习笔记60-1: Treeview控件
  5. 利用xlrd,Python对excel读取文件
  6. 从背包问题优化详解动态规划思想
  7. 同济大学土木工程学院招收2名秋季入学全日制博士生
  8. 停车场管理系统 java_使用java编写一个停车场管理系统
  9. python使用scipy模块from scipy.misc import imread时报错:cannot import name imread问题解决
  10. 用c语言编程图书管理系统,C语言图书管理系统简洁版
  11. android手机微信收藏功能实现,微信小程序收藏功能的实现代码
  12. [IOS APP]毕淑敏经典有声小说
  13. Result window is too large, from + size must be less than or equal to: [10000]
  14. 进军NFT,第三代公链GGC与NFT3.0技术平台BOBO、OKEx NFT深度联合
  15. 基于AD7705的超高精度电压采集电路板 4路电压采集端口,通过前端通过AD620运算放大器输出至AD5505通过STM32F030数据处理
  16. OpenStack新版UI管理skyline
  17. 卡片式轮播图 效果 实现
  18. 3种解法 - 计算三维形体的表面积
  19. 小学计算机室每日管理日志,2017小学信息技术工作研修日志
  20. Python基础:数据可视化1

热门文章

  1. 性格与中医养生8--阳虚体质
  2. 怎么给视频添加动态歌词字幕?原来用微信就能完成,涨知识了
  3. vue使用xlsx、xlsx-style和fileSaver导出excel表格
  4. ListView控件的使用方法,以及数据的绑定(关于会员等级)
  5. text-align margin line-height之间的区别
  6. LoRa SX1276 参数调试测试
  7. 分布式事务(多个系统处理数据怎么保证一致性)
  8. 解析边界测试技术——健壮性测试、最坏情况测试、健壮最坏情况测试
  9. 如何将微信amr文件转换为mp3文件
  10. 【数据挖掘】贝叶斯网络理论及Python实现