




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章 超高速集成电路硬件 描述语言VHDL 8-1 VHDL语言的基本组成 8-2 VHDL数据类型和属性 8-3 VHDL的行为描述 8-4 VHDL的结构描述 小结 传统的电路系统设计方法的步骤从状态图的简化, 写出最简逻辑表达式,到绘出电路原理图。这在不是 较大的电路系统中,工程师可以用一定的时间,了解 电路的原理。若电路系统非常庞大,工程师就不容易 在电路原理图上了解电路的原理,而且对绘图者也是 一项非常烦琐的工作。因此众多软件公司开发研制了 具有自己特色的电路硬件描述语言(Hardware Description Language,HDL),这些硬件描述语言必 然有很大的差异,工程师一旦选用某种硬件描述语言 作为输入工具,就被束缚在这个硬件设计环境之中, 不能在众多的软件工具中选择一个最佳组合作为自己 的最优设计环境。因此,硬件设计工程师需要一种强 大的、标准化的硬件描述语言,作为可相互交流的设 计环境。 美国国防部在20世纪80年代初提出了VHSIC( Very High Speed Integrated Circuit)计划,其目 标之一是为下一代集成电路的生产,实现阶段性 的工艺极限以及完成10万门级以上的设计,建立 一项新的描述方法。1981年提出了一种新的HDL ,称之为VHSIC Hardware Description Language ,简称为VHDL,这种语言的成就有两个方面: 1. 描述复杂的电路系统; 2. VHDL成为硬件描述语言的标准。 VHDL的主要优点是: 1.覆盖面广,描述能力强,是一个多层次的硬件描述语言 。即设计的原始描述可以是非常简练的描述,经过层层细化 求精,最终成为可直接付诸生产的电路级或版图参数描述, 整个过程都可以在VHDL的环境下进行。 2.VHDL有良好的可读性,即可以被计算机接受,也容易 被理解。用VHDL书写的原文件,即是程序,又是文档, 即是技术人员之间交换信息的文件,又可作为合同签约者 之间的文件。 3.VHDL本身的生命期长,因为VHDL的硬件描述与工 艺技术无关,不会因工艺变化而使描述过时。与工艺技术 有关的参数可通过VHDL提供的属性加以描述,工艺改变 时,只需修改相应程序中的属性参数即可。 4.支持大规模设计的分解和已有设计的 再利用,一个大规模设计不可能一个人独 立完成,它将由多人,多项目组来共同完 成。VHDL为设计的分解和设计的再利用 提供了有力的支持。 VHDL的主要优点是: 5.VHDL已成为IEEE承认的一个工业标 准,事实上已成为通用硬件描述语言。 10-1 VHDL的基本组成 VHDL可以把任意复杂的电路系统视作一个模 块,一个模块可主要分为三个组成部分: 每个模块中的程序包有IEEE标准的标准程序 包或设计者自身设计的程序包,而且调用的数量 不限。模块中的程序包是设计中的子程序和公用 数据类型的集合,是构成设计工具的工具箱,工 具箱中最基本的工具是数据类型包,调用此标准 程序包的VHDL语言是: 一、参数部分程序包 例1 : LIBRARY ieee; USE ieee.std_logic_1164.all; 调用程序包 语句 标 准 程 序 包 定 义 程 序 包 这两句设置在VHDL 程序的前面,表示以后 在实体或结构体中要用 到数据类型包中的数据 类型。 模块中仅有一个设计实体 ,它提供该设计模块的公共信 息,是VHDL设计电路的最基 本部分。VHDL设计的电路系 统是可以分层次的,所以设计 的模块系统实体即可以是顶层 实体,又可以是最底层实体。 二、接口部分设计实体 : 调用程序包 语句 标 准 程 序 包 定 义 程 序 包 实体 及实 体声 明语 句 ENTITY kxor IS kxor PORT(a1,b1:IN std_logic; a1 b1 c1:OUT std_logic); c1 END kxor; 例 2 实体部分的大写单词ENTITY、IS、PORT、 IN、OUT和END为关键字。在ENTITY.END之 间表示实体内容,ENTITY后的字符串kxor表示 实体的名称,即电路的符号名。端口(引脚)信 息关键字PORT中的语句有三个端口,描述了信 号的流向,分别是两个输入(IN)模式a1和b1, 一个是输出(OUT)模式c1,端口信息除了输入 输出之外,还可以是双向、缓冲器等。std_logic 表示信号取值的类型为标准逻辑位,除了标准逻 辑位之外,还可以是实数、整数、无符号数、物 理以及以上数据类型组成的记录和数组集合,信 号类型也可以是设计者定义。 三、描述部分结构体 : 当异或门的符号和外部端口 a1、b1和c1确定之后,就要确定 实体的内部电路,使之与实体相 对应。电路描述部分称之为结构 体ARCHITECTURE,它描述实 体硬件的互连关系、数据的传输 和变换以及动态行为。一个实体 可以对应多个结构体,每个结构 体可以代表该硬件的某一方面特 性,例如行为特性,结构特性。 调用程序包 语句 标 准 程 序 包 定 义 程 序 包 实体 及实 体声 明语 句 结 构 体 1 结 构 体 2 结 构 体 n ARCHITECTURE kxor_arc OF kxor IS 例3 BEGIN c1 : := ; 目标:是一个或多个代表着目标种类的字符串,多个目 标时用“,”号分开。 : := ; 目标种类:信号、变量和常量。 信号:它可以表示把元件的端口连接在一起的互连线。 变量:用于对暂时数据的局部存储,变量只在进程和子 程序内部定义。 常量:对某些特定类型数据赋予的数值。 表达式:表达式是为了规定目标的初始值,这是缺省部分。 目标类型:为了规定目标的特征,VHDL含有很宽范围的 数据类型。VHDL除了有基本的数据类型之外,设计者还 可以建立自己新的数据类型,类型说明部分规定类型名和 类型范围,它的一般形式是: TYPE IS ; 标量类型、复合类型、子类型、文件类型和寻址类型。 标量类型包括所有的简单类型:如整数、实数等 复合类型包括数组和记录 寻址类型在一般编辑语言中等价为指针 文件类型用设计者定义的文件类型为设计者提供说明的文件对象 子类型主要是对现有类型加以限制 VHDL可用数据类型有五类: 一、 标量数据类型 标量数据类型是基本的数据类型,它包括整数类型、 实数类型、物理类型和枚举类型。 一个目标的数值有可能经常更换或者说是包含多个值, 但一个目标一次只能被一种类型说明。 物理类型要提供一个基本单位,然后在这个基本单位 上定义多个或零个次级单位,每个次级单位都是基本 单位的整数倍。 枚举类型在形式上是定义括弧括起来的字符串文字表 , 一个字符串文字在枚举类型定义中只能出现一次,但 允许同样一个字符串文字出现在不同的枚举类型的字 符串文字表中,枚举类型的字符串文字表中的文字是 由设计者定义的,这些字母可以是单个字母,也可以 是一个字符串,例如BREAKFAST, Lunch, a等。 下面举两个VHDL程序加深理解枚举类型的使用。 PACKAGE meals_pkg IS TYPE meal IS(breakfast,lunch,dinner); END meals_pkg; 例2: USE work . meals_pkg . all; ENTITY meals IS PORT(previous_meal:IN meal; next_meal:OUT meal); END meals; ARCHITECTURE meals_arc OF meals IS BEGIN WITH previous_meal SELECT next_meal 该一般形式读作对象得到表达式的值,其作用是将表达式的信号 值分配给对象,也就是说每当表达式的信号值变化时执行该语句。 每个表达式都至少有一个敏感信号,每当敏感信号改变其 值时,这个信号赋值语句就执行, 在所有的并行语句中,两个以上的并行赋值语句在字面 上的顺序并不表明它们的执行顺序, 例如下面的两个结构体在功能上是等价的。 ENTITY exe IS PORT(a1,a2:IN BIT; b1,b2:OUT BIT); END exe; ARCHITECTURE exe_arc1 OF exe IS BEGIN b1 SELECT WHEN , WHEN , WHEN ; 一个典型的四路数据选择器的VHDL程序说明WITH一般 形式的用法 ENTITY sels IS PORT(d0,d1,d2,d3:IN BIT; s :IN INTEGER RANGE 0 TO 3; out1 :OUT BIT); END sels; ARCHITECTURE sels_arc OF sels ISBEGIN WITH s SELECT out1 :PROCESS BEGIN WAIT ON ; WAIT UNTIL ; WAIT FOR ; END PROCESS; 进程行为的说明区定义该进程所需要的局部数据环境、它 包括子程序说明、属性说明和变量说明等 在这里只给出变量说明的一个例子,变量说明的一般形式为 VARIABLE : ; 下面进程说明区中说明了变量count,进程也可对变量赋值。 PROCESS VARIABLE count:INTEGER:= 0; BEGIN count:= count+1; WAIT FOR 1000 ns; END PROCESS; 整个实体模块中的每个进程行为语句,可以在任何时候被 激活,所有被激活的进程是并行执行的 下面举一个3线-8线通用译码器程序的例子,说明进程语句 如何工作。 LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all; ENTITY decoder IS PORT(sel : IN UNSIGNED(2 DOWNTO 0); dout : OUT UNSIGNED(7 DOWNTO 0); END decoder; ARCHITECTURE decoder_arc OF decoder IS SIGNAL sel1 :INTEGER; BEGIN PROCESS(sel) BEGIN sel1 dout dout dout dout dout dout dout dout THEN ; ELSIF THEN ; ELSIF THEN ; ELSE ; END IF; 1、IF语句 IF语句的一般形式为: ARCHITECTURE alarm_arc OF alarm IS BEGIN 下面举例说明IF条件语句的用法。 例: 用VHDL设计一家用告警系统的控制逻辑,它有来自传感 器的三个输入信号smoke、door、water和准备传输到告警设备 的三个输出触发信号fire_alarm、burg_alarm、water_alarm以 及使能信号en和alarm_en。 VHDL程序描述如下: LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY alarm IS PORT(smoke,door,water:IN std_logic; en,alarm_en :IN std_logic; fire_alarm,burg_alarm,water_alarm:OUT std_logic); END alarm; PROCESS(smoke,door,water,en,alarm_en) BEGIN IF (smoke= 1) AND (en= 0) THEN fire_alarm IS WHEN ; WHEN | ; WHEN ; WHEN OTHERS ; END CASE; CASE语句是VHDL提供的另一种形式的控制语句,每当 单个表达式的值在多个起作用的项中选择时,用此语句是较合 适的,它根据所给表达式的值或域,选择“=”后面的执行语句。 用CASE语句应该注意三个问题: 一,是关键字WHEN的数量不作限制,但不容许两 个语句用一个值; 二,是所有WHEN后面的值在CASE语句中合起来的 值域中的全部; 三,是WHEN的次序可以任意排定 信号可被看作两个元件之间数据传输的通路, 10-4 VHDL的结构描述 实体主要描述元件、端口与信号。 元件是硬件的描述,即门、芯片或者电路板。 端口是元件与外界的连接点,数据通过端口进入或流出元件。 而信号则是作为硬件连线的一种抽象描述,它即能保持变化 的数据,又可以连接各个子元件。 下面举例说明“调用元件语句”的用法。 对一个硬件的结构进行描述,就是要描述它由哪些 子元件组成,以及各个子元件之间的互连关系。 结构描述比行为描述更加具体化,即,结构描述与硬 件之间的关系要比行为描述与硬件之间的关系更明显。 前面讨论, 行为描述的基本单元是进程语句 而结构描述的基本单元则是“调用元件语句”。 例: 用VHDL结构描述设计一全减器,全减器可由两个 半减器和一个或门组成。 首先用VHDL的行为描述设计半减器: ENTITY halfsub IS PORT(A,B:IN BIT; T,C:OUT BIT); END halfsub; PROCESS(A,B) BEGIN T= A XOR B AFTER 10 ns; C = (NOT A) AND B AFTER 10 ns; END PROCESS; ARCHITECTURE halfsub_arc OF halfsub IS BEGIN END halfsub_arc; 下面再将或门的VHDL程序描述如下: ARCHITECTURE orgate_arc OF orgate IS BEGIN O1= A1 OR B1; END orgate_arc; 下面将两个半减器,一个或门的端口,通过定义一 些中间信号将其连接起来形成VHDL的结构描述。 ENTITY orgate IS PORT(A1,B1:IN BIT; O1:OUT BIT); END orgate; 在下面举的全减器例子里可以看到定义了中间信号 temp_T,tem
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB5404-T 0016-2024 林芝乌龙茶加工技术规范
- 社会科学研究方法 课件 第七章 调查研究
- 醉鹅娘红酒知识培训课件
- 老年人护理教学课件
- 企业数字化升级方法论谢陵春
- 老年人培训养生知识课件
- 老年人合理用药课件
- 老年人再婚教学课件
- 老年人中医健康知识培训课件
- 热点话题02 2025成都世运会(原卷版)-2026年中考英语阅读理解热点话题练习
- 伤口造口专科护士进修汇报
- 人力资源外包投标方案
- 单招护理试题及答案
- 中考强化训练河北省保定市中考数学五年真题汇总 卷(Ⅲ)(含答案详解)
- 院感督查工作培训课件
- DLT802.7-2023电力电缆导管技术条件第7部分非开挖用塑料电缆导管
- 2023南头古城项目简介招商手册
- 木僵病人护理课件
- 《非营利组织财务管理》 课件全套 第1-13章 非营利组织的缘起与发展-非营利组织财务管理信息系统
- 《认知觉醒》培训课程
- 机械辅助排痰操作规程
评论
0/150
提交评论