VHDL的教案.docx

上传人:b****8 文档编号:9335430 上传时间:2023-02-04 格式:DOCX 页数:41 大小:566.62KB
下载 相关 举报
VHDL的教案.docx_第1页
第1页 / 共41页
VHDL的教案.docx_第2页
第2页 / 共41页
VHDL的教案.docx_第3页
第3页 / 共41页
VHDL的教案.docx_第4页
第4页 / 共41页
VHDL的教案.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

VHDL的教案.docx

《VHDL的教案.docx》由会员分享,可在线阅读,更多相关《VHDL的教案.docx(41页珍藏版)》请在冰豆网上搜索。

VHDL的教案.docx

VHDL的教案

VHDL硬件描述语言的教案

第一章概述

教学内容:

1、课程简介:

本门课的学习基础是建立在《数字电路与系统》这门课的基础上。

2、课程的学时分配:

理论教学:

16学时;实验教学:

16学时。

理论教学:

共分成为七个部分。

第一部分:

概述

介绍了VHDL硬件描述语言的发展过程,为什么要学习VHDL语言以及传统设计与VHDL设计的对照。

第二部分:

VHDL的模型结构

详细介绍了VHDL语言的实体和结构体。

第三部分:

基本词法元素、标识符、数据对象、属性及运算符。

第四部分:

VHDL的基本语句、子结构、包集合及配置

介绍了顺序语句和并发语句,在学生掌握了VHDL的基本语句基础上,再介绍它的包、库及配置。

第五部分:

组合逻辑电路设计

介绍了基本门、编码器、译码器、多路选择器、比较器、求补器、三态门及总线缓冲器。

第六部分:

时序逻辑电路设计

介绍了触发器、比较器、锁存器、计数器移位寄存器和状态机的设计;

第七部分:

数字系统的设计举例。

实验教学:

共分为十个实验,其中实验九和实验十为大型实验。

成绩评定标准:

本门课是实践性很强的课程,成绩评定是以完成的实验的情况来定。

完成六个实验以下为:

不及格。

完成六~七个实验为:

及格。

完成八个实验为:

中等。

完成九个实验为:

良好。

完成十个实验为:

优秀。

1.1VHDL的诞生

一、目的

二、DOD为什么会提出这个计划呢?

1、原因

2、问题的解决

1.2为什么要用VHDL语言

一、为什么要用VHDL语言

二、如何学习VHDL语言

1、介绍VHDL的参考书

2、注意学习方法

3、强调上机

强调:

编程实验是掌握VHDL最佳的途径。

三、VHDL的主要优点(4个优点)

四、VHDL的不足之处

五、用VHDL设计硬件电路的过程

详细介绍VHDL的一般设计流程

1.3传统设计与VHDL设计的对照

一、传统设计

二、VHDL语言的设计

三、传统设计与VHDL设计的对照

教学要求:

1、了解VHDL硬件描述语言的发展过程。

2、懂得为什么要学习VHDL语言重要性。

3、掌握传统设计和VHDL设计的对应关系,即:

VHDL的实体对应电路的符号,VHDL的结构体对应电路图(功能)。

教学重点:

1、让学生了解VHDL硬件描述语言的发展过程和应用前景。

2、让学生懂得学习VHDL语言的重要性以及学习的方法。

教学方法:

采用传统设计和VHDL设计的方法进行对比的方式来阐述第一章的内容。

教学手段:

采用多媒体PPT播放达到良好的教学目的。

第二章VHDL的模型结构

教学内容:

2.1VHDL语言设计的基本单元及其构成

2.1.1设计实体(Designentity)

实体的一般格式为:

ENTITY实体名IS

[GENERIC(类属表);]

PORT(端口表);

END实体名;

一、类属(GENERIC)

二、端口(PORT)

1、端口名

2、模式

3、数据类型(TYPES)

2.1.2结构体(ARCHITECTURE)

用VHDL语言描述结构体功能有三种方法:

(1)行为描述法:

以算法的形式来描述数据变换。

(2)数据流描述法:

是按照数据流动的方向来进行描述的。

(3)结构描述法:

是按照逻辑元件的连接进行描述的。

结构体的一般描述格式

ARCHITECTURE结构体OF实体名IS

[定义语句]

[信号定义];

[类型定义];

[元件定义];

[子程序定义];

BEGIN

[并行处理语句];

[并行信号赋值语句];

[进程语句];

[元件例化语句];

END[结构体名];

1、结构体名称的命名

2、定义语句

3、并行处理语句

2.2结构体的描述方式

一、行为描述

二、结构描述(structuraldescriptions)

三、数据流描述(DataflowDescriptions)

教学要求:

1、了解一个完整的VHDL语言程序通常包含五个部分:

实体(ENTITY)

结构体(ARCHITECTURE)

配置(CONFIGURATION)

包集合(PACKAGE)

库(LIBRARY)

其中,实体和结构体是构成一个系统或电路的最基本结构。

2、掌握VHDL语言描述结构体功能的三种设计和描述方法(即:

行为描述、结构描述、数据流描述)。

教学重点:

1、实体

(1)类属

强调:

类属在可编程器件的开发工具中一般都不支持,只有在EDA的工具中才支持。

如果支持也是有选择性的支持。

(2)端口

强调:

①端口组织结构必须是一个名字、一个通信模式、一个数据类型。

②端口名的命名要与惯例接轨。

③端口名一定要用英文字母打头。

(3)端口模式

强调:

正确使用端口模式。

掌握好:

OUT与BUFFER和BUFFER与INOUT它们之间的应用范围。

(4)数据类型

强调:

VHDL语言是一种强类型语言,数据类型定义严格。

使用时端口的数据类型一定要匹配,否则就会出错。

2、结构体

用VHDL语言描述结构体功能有三种方法:

(1)行为描述法:

以算法的形式来描述数据变换。

(2)数据流描述法:

是按照数据流动的方向来进行描述的。

(3)结构描述法:

是按照逻辑元件的连接进行描述的。

一、结构体的一般描述格式

ARCHITECTURE结构体OF实体名IS

[定义语句]

[信号定义];

[类型定义];

[元件定义];

[子程序定义];

BEGIN

[并行处理语句];

[并行信号赋值语句];

[进程语句];

[元件例化语句];

END[结构体名];

二、结构体的描述方式

结构体的三种描述方式采用举例(例如:

用四位等值比较器)来说明。

强调:

在三种描述方式中,特别要重点介绍结构描述法。

因为它不仅是一种设计方法,还是一种设计思想,是大型电子系统设计高层次主管人员必须掌握的设计方法。

教学方法:

1、大量采用举例。

2、通过实验的方法来验证理论课上讲的内容。

3、采用课堂提问的方式,一对一的进行交流。

教学手段:

采用多媒体PPT播放达到良好的教学目的。

作业:

(上机实验)

实验一:

1.fundation3.1和ISE5.2i开发软件的使用。

2.实验一:

四位等值比较器(结构化描述)(作业)。

 

第三章基本词法元素、标识符、数据对象、

数据类型及属性

教学内容:

3.1基本词法单元

一、注释

二、数的表示

三、字符

四、字符串

五、位串

3.2标识符(Identifiers)

VHDL的标识符和规则。

3.3数据对象(DataObjects新概念)

1、介绍常量(constant)、信号(signal)、变量(variable)的物理含义。

2、介绍常量(constant)、信号(signal)、变量(variable)的书写格式。

3、变量的使用规则和限制范围。

4、有关信号的使用规则说明。

5、信号与变量的区别

3.4数据类型(DataType)

VHDL的主要数据类型包含有:

标量类型、复合类型、存取类型和文件类型。

重点介绍:

标量类型、复合类型。

存取类型和文件类型不介绍。

一、标量类型(scalartypes)

1、介绍它的写格式为:

Type<标识符>is<类型定义>;

2、分别介绍

①整数类型(IntegerTypes)

②浮点类型(FloatingTypes)

③可枚举类型(EnumerationType)

④物理类型(PhysicalTypes)

二、复合类型(CompositeType)

1、介绍数组类型和记录类型的定义。

2、介绍数组类型(ArrayTypes)的书写格式。

3、介绍记录类型(RecordTypes)的书写格式。

三、子类型(subtype)

1、介绍子类型的书写格式。

2、介绍它的范围限制和下标限制。

四、数据类型的转换

分别介绍:

“std_logic_1164”、

“std_logic_arith”、

“std_logic_unsignend”

三个的包集合中提供的数据类型变换函数。

3.5属性(Attributes)

1、介绍属性的书写格式:

<项目名’属性标识符>

2、重点介绍属性在时钟上的应用。

3.6VHDL语言的运算操作符

1、介绍VHDL中有四类操作符:

逻辑运算符、关系运算符、算术运算符、并置运算符。

2、重点介绍并置运算符“&”的应用。

教学要求:

掌握基本词法元素、标识符、数据对象、数据类型及属性在编程中的规则、限制范

围以及应用。

教学重点:

1、重点介绍数据对象(DataObjects新概念)。

2、重点介绍数据类型的转换。

3、重点介绍属性在时钟上的应用。

教学方法:

1、大量采用举例。

2、通过实验的方法来验证理论课上讲的内容。

3、采用课堂提问的方式,一对一的进行交流。

教学手段:

采用多媒体PPT播放达到良好的教学目的。

 

第四章VHDL的基本语句

教学内容:

4.1进程语句(processstatements)

1、进程语句的书写格式

进程名:

-------名字标号,是可选项。

Process<敏感信号>

变量说明语句-----定义该进程所需的局部数据环境及类型。

……..

Begin

顺序说明语句------顺序程序,定义该进程的行为。

……..

Endprocess[进程名];

2、举例

4.2WAIT语句(等待语句)

一、WAIT使用的范围

二、WAIT语句可设置为四种不同的条件

WAIT--------无限等待;(死循环,不可用)

WAITON-------敏感信号量变化;

WAITUNTIL------条件满足;

WAITFOR------时间到。

1、WAITON

书写格式为:

WAITON信号[,信号]

2、WAITUNTIL

书写格式为:

WAITUNTIL表达式;

3、WAITFOR

书写格式为:

WAITFOR时间表达式;

4、多条件WAIT语句

5、超时等待

4.3断言语句

1、顺序断言语句-----只用于在进程、函数及过程之内。

2、并行断言语句------应用于进程、函数及过程之外。

4.4并发描述语句(concurrentstatement)

1、并发信号赋值语句

书写格式:

<对象><=<表达式>;

2、条件赋值语句(conditionsignalassignmentsstatement)

书写格式:

signal_name<=value_1whencondition1else

value_2whencondition2else

value_3whencondition3else

………

value_N;

3、选择信号赋值语句(selectionsignalassignmentsstatements)

书写格式:

withselection_signalselect

signal_name<=expression1whenvaluce1;

expression2whenvaluce2;

……….

ExpressionNwhenvaluceN;

Enddata_flow;

4.5顺序语句(sequentialstatements)

一、条件控制语句

条件控制语句有if和case语句。

1、if语句

书写格式有三种类型:

(1)if<条件>then

<语句>;

endif;------缺省的if语句。

(或者称为门闩控制的if语句)

(2)if<条件>then

<语句>;

else

<语句>;

endif;------称为if语句的二选一控制的if语句。

(3)if<条件>then

<语句>;

elsif

<语句>;

……..

elsif

<语句>;

endif;------多选择控制的if语句

强调:

IF语句都有一个‘X’状态传递问题:

2、case语句-----用于描述总线或编码、译码的行为及状态机。

①Case与if相同之处:

它们都根据某个条件在多个语句集中进行选择。

②Case与if不相同之处:

Case语句的一般书写格式:

case<表达式>is

when<值>=>

<语句>;

when<值>|<值>=>

<语句>;

when<离散范围>=>

<语句>;

whenothers=>

<语句>;

Endcase;

二、迭代控制语句(iterationscontrolstatements)

1、循环语句(loopstatements)

用途:

用于实现重复的操作。

(1)for循环语句的一般书写格式:

<循环标号>:

for<循环变量>in<范围>loop

<语句>;

endloop<循环标号>;

(2)While循环语句

一般书写格式为:

<循环标号>:

while<条件>loop

<语句>;

endloop<循环标号>;

2、条件性的迭代循环语句(conditionaliterationsstatements)

一般书写格式为:

next<循环标号>when<条件>;

4.6生成语句(generate)

一般书写格式为:

生成标号:

生成方案GENERATE

{生成语句};

ENDGENERATE[生成标号];

4.7COMPONENT语句

一般书写格式为:

COMPONENT元件名

GENERIC说明----参数说明

PORT说明----端口说明

ENDCOMPONENT;

4.8元件例化(COMPONENT_INSTANT)

一般书写格式为:

标号名:

元件名PORTMAP(信号,…..);

1、映射方法有两种:

位置映射和名称映射。

①位置映射方法

②名称映射方法

4.9延时语句

在VHDL语言中存在两种延时类型:

惯性延时和传输延时

1、惯性延时------器件延时

2、传输延时-----总线延时,连接线的延时及ASIC芯片中的路径延时。

4.10多驱动器描述语句

在VHDL语言中,创建一个驱动器可以由一条信号代入语句来实现。

当有多个信号并行输出时,在构造体内部必须利用代入语句,分别对每个信号创建一个驱动器。

例如:

b和d输出共同驱动信号a。

Architecturearchsampleofsampleis

Begin

a<=bafter5ns;

a<=daftre5ns;

Endarchsample;

4.11VHDL语言构造体的子结构描述

一、block语句结构描述

1、书写格式

块结构名:

block

begin

……..

endblock块结构名

2、block块和子原理图的关系

 

二、subprogram语句结构描述

在VHDL语言中子程序有两种类型:

过程(procedure)和函数(function)。

其中,

“过程”与其它高级语言中的子程序相当。

“函数”与其它高级语言中的函数相当。

1、过程——用于数值计算、类型转换、运算重载或设计元件的高层次设计结构之一

过程语句的结构

书写格式为:

procedure过程名(参数1,参数2,…)is

[定义语句];(变量等定义)

begin

[顺序处理语句];(过程的语句)

end过程名;

2、函数

函数语句的结构

在VHDL语言中,函数语句的书写格式为:

function函数名(参数1;参数2;…..)

return数据类型名is

[定义语句];

begin

[顺序处理语句];

return[返回变量名];

end[函数名];

3、过程与函数的差别

主要有两点:

1)过程可以具有多个返回值,如果过程的参数被定义为out或inout型,那么它可以用来传递过程的返回值,而函数的参数则只能为in型。

2)过程中可以有wait语句,而函数中则不能。

4.12包集合、库及配置

一、库(library)

库:

是经编译后的数据的集合,它存放包集合定义、实体定义、结构体定义和配置定义。

库的功能:

类似于UNIX和MS_DOS操作系统中的目录,库中存放的是设计数据。

1、库的种类

当前在VHDL语言中,存在的库大致可以归纳为五种:

2、库的使用

(1)库的说明

前面提到的5类库除WORK和STD库之外,其它3类库在使用前都首先要作说明,第一个语句是:

“LIBRARY库名”;

(2)库说明作用范围

库说明语句的作用范围:

从一个实体说明开始到它所属的结构体、配置为止。

当一个源程序中出现两个以上的实体时,两条作为使用库的说明语句应在每个实体说明语句前重复书写。

二、包集合(package)

包集合用来单纯地罗列VHDL语言中所要用到的信号定义、常数定义、数据类型、元件语句、函数定义和过程定义等,它是一个可编译的设计单元,也是库结构中的一个层次。

使用包集合时可以用use语句说明。

一个包集合由两大部分组成:

包集合标题和包集合体。

书写格式如下:

PACKAGE包集合名IS

[说明语句];

END包集合名;

PACKAGEBODY包集合名IS

[说明语句];

ENDBODY;

三、配置(configuration)

配置语句:

描述层与层之间的连接关系以及实体与结构之间的连接关系。

基本书写格式为:

configuration配置名of实体名is

[语句说明];

end配置名;

1、默认配置(配置指定)

最简单的缺省配置格式结构

configuration配置名of实体名is

for选配结构体名;

endfor;

end配置名;

2、元件配置

上机作业:

实验二:

1.分别用选择信号赋值语句和case语句实现3/8译码器。

2.包集合和配置

选做:

分别用选择信号赋值语句和case语句实现0~F译码器。

教学要求:

1、掌握process进程语句的书写格式和应用。

2、掌握VHDL语言的并发语句的书写格式和应用范围。

3、掌握VHDL语言的顺序语句的书写格式和应用范围(特别是if语句和case语句)。

4、掌握生成语句的书写格式和应用范围。

5、掌握VHDL语句构造体的子结构描述(block、过程和函数的描述)。

6、掌握包集合、库和配置。

教学重点:

1、重点介绍VHDL硬件描述语言的语法。

2、重点介绍VHDL语言的构造体的子结构描述(block、过程和函数的描述)。

3、重点介绍包集合的生成(分别用过程、函数和元件例化等方法)和包的调用。

教学方法:

1、大量采用举例。

2、通过实验的手段达到教学目的。

教学手段:

采用多媒体PPT播放达到良好的教学目的。

第五章组合逻辑电路设计(combinationlogicdesign)

教学内容:

组合逻辑电路设计的应用可简单地分成以下几个方面:

1、基本逻辑门;

2、编码器和译码器;

3、多路选择器;

4、比较器;

5、加法器和求补器;

6、三态门及总线缓冲器。

5.1基本逻辑门的描述

与门(AND)、或门(OR)、与非门(NAND)、或非门(NOR)、异或门(XOR)。

5.2编码器和译码器的描述

一、编码器(encoder)

二、优先编码器

三、七段显示译码器

七段显示译码器方框图

四、3/8译码器

3/8译码器的真值表

五、地址译码器

地址译码器是数字系统中最典型的PLD应用。

下面介绍M6809存储器的地址译码器的设计。

六、多路分配器

多路分配器的作用是为输入信号选择输出,在计算机和通信设备中往往用于信号的分配。

1~8多路分配器,它有一个输入信号DATA,3个选择信号S0、S1、S2,一个使能信号enable和8根输出端y0~y7。

5.3数据选择器设计

5.4、比较器

比较器对比两个输入信号值的大小,有3种基本的比较结果:

即大于、小于和等于。

而对于不大于、不小于、不等于的情况可分别由3种结果取反得到。

下面求两个四位二进制数A:

(A0~A3)和B:

(B0~B3)的比较器。

比较器的输出有3种结果:

(1)A>B;

(2)A

5.5、加法器和求补器

一、一位全加器电路的描述

二、八位加法器的描述

八位加法器的实现是通过全加器的进位位级联而实现的。

它的VHDL源文件描述是利用元件例化的方法来描述的。

三、求补器

八位求补器电路方框图

5.6、三态门及总线缓冲器

一、三态门电路

二、总线缓冲器

总线缓冲器分为:

单向缓冲器和双向缓冲器。

1、单向缓冲器(单向总线缓冲器)

在微型计算机的总线驱动中,经常要用单向总线缓冲器,他通常由多个三态门组成,用来驱动地址总线和控制总线。

一个八位的单向总线缓冲器如图所式:

2、双向总线缓冲器

双向总线缓冲器用于对数据总线的驱动和缓冲,典型的双向总线缓冲器的电路图和真值表如下所示:

作业:

(上机实验)

实验三:

4位宽多路选择器

3/8译码器

八位加法器

四位二进制数转换成两位BCD码(选做)

教学要求:

1、掌握基本逻辑门的描述方法。

2、掌握编码器和译码器的描述方法。

3、掌握多路选择器的描述方法

4、掌握比较器的描述方法。

5、掌握加法器和求补器的描述方法

6、掌握三态门及总线缓冲器的描述方法。

教学重点:

教会学生用不同的描述方法实现组合逻辑电路,并对不同描述方法所综合的结果进行评价的能力。

教学方法:

1、大量采用举例。

2、通过实验的手段达到教学目的。

教学手段:

采用多媒体PPT播放达到良好的教学目的。

 

第六章时序逻辑电路设计(sequentiallogicdesign)

教学内容:

6.1时钟信号的VHDL描述方法

一、时钟边沿的描述

1、时钟上升沿的描述

①时钟信号起始值为‘0’,故属性值:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1