本文主要是介绍【硬件描述语言】期末复习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、硬件描述语言就是可以描述硬件电路的功能和行为、信号连接关系、定时关系的语言。VHDL语言的功能建模、仿真、综合
优点:
- 采用自上至下的设计方法
- 系统大量采用AISC芯片
- 采用系统早期仿真
- 降低了硬件电路的设计难度
- 主要涉及文件是用HDL语言编写的源程序,其资料量小;可继承性好;阅读方便
2、VHDL语言的基本设计单元包括:实体和构造体,一个完整的VHDL程序:实体、构造体、配置、包、库。除实体和构造体外,包集合、库以及配置是VHDL中3个可以各自独立进行编译的源设计单元。
3、在端口说明语句中有:in、out、inout、buffer四类
4、VHDL子程序有两种类型:过程、函数
子程序是一个非重入的程序,即子程序返回后才能再被调用。在调用时子程序首先要进行初始化,执行结束后子程序终止;再调用时要再进行初始化。因此,子程序内部的值不能保持。
5、VHDL中的库大致可归纳为5种,IEEE库、STD库、ASIC矢量库、WORK库和用户自定义库
WORK库STD库使用时不说明
6、包集合包括包头和包体两部分。包头用来声明包中的类型、元件、函数和子程序;而包体用来存放说明中的函数和子程序。不含有子程序和函数的包集合不需要包体。
7、构造体有3种描述方式:行为描述、结构描述和数据流描述(寄存器传输描述)
8、process进程启动,敏感信号表发生变化时,敏感信号表所标明的信号是用来启动进程的;进程结构中必须包含一个显式的敏感信号量表或者包含一个WAIT语句(同时执行,与顺序无关)
9、在VHDL中,凡是可以赋予一个值的对象就称为客体
客体主要包括:信signal号、变量cariable、常数constant、文件file
10、变量是暂存数据的量。量分共享变量和局部变量两种。共享变量使用需慎重,一般变量都是局部变量。
局部变量只能在进程和子程序内定义和使用,它是一个局部量VARIABLE 变量名:数据类型 约束条件:=表达式
共享变量说明语句的一般格式为:
SHARED VARIABLE 变量名:子类型名 [:=初始值]
11、信号是电子电路内部硬件连接的抽象包括I/O引脚信号以及IC
内部缓冲信号,有硬件电路与之对应,故信号之间的传递有实际的附加延时,信号通常在构造体、包集合和实体中说明;信号不能在进程中说明(但可以在进程中使用)。信号是全局量,可用来进行进程间的通信。
信号赋值方式<=
端口信号映射方法:位置映射和名称映射
12、变量用作进程中暂存数据的单元;信号用作电路中的信号连线
信号是全局量,在结构体中都能使用;变量是局部量,只能在进程中定义和使用;信号与变量的定义与赋值的表达不同。
13、VHDL不允许不同类型的数值相互赋值或使用类型不允许的运算符进行运算
14、常用的用户自定义数据类型:
枚举(TYPE 数据类型名 IS(元素1,元素2,…,);)
数组(ARRAY)类型,用户自定义的整数类型和实数类型的子类型,物理类型(时间 TIME),纪录(RECORD类型)
15、标准数据类型:整数、实数位、位矢量、布尔值、字符、字符串、时间、自然数、正整数、错误等级。(可直接引用)
16、singal:信号
17、“X"方便了系统仿真所谓“X"状态的传递,实质上是不确定信号的传递,它将使逻辑电路产生了不确定的结果。
“Z“方便了双向总线的描述。
18、运算操作符:ABS求绝对值
19、上述四种运算符的优先级顺序为:NOT ABS ** REM MOD / * 负 正 & 减 加 >= <= > < /= = XOR NOR NAND OR AND
20、构造体的描述方式:带入语句,延时语句,多驱动器描述语句,GENERIC语句
行为描述方式是指对系统数学模型的抽象描述,其抽象程度最高,行为描述只表示输入输出之间的转换行为,它不包含任何结构信息。行为描述方式是最重要的描述方式,它是VHDL编程的核心。
系统行为语句:延时语句、决断函数、GENERIC语句、GUARDED BLOCK语句等
延时行为:惯性延时(电容)、传输延时(after+时间)
多驱动器描述语句:当多个进程同时驱动一个信号时,会带来多驱动器问题。多驱动器问题由决断函数解决。逻辑设计时应避免多驱动。
21、寄存器传输层描述方式:是一种以规定设计的各种寄存器形式为特征的描述方法,又称数据流描述方式。RTL描述方式是真正可以进行逻辑综合的描述方式。
RTL描述寄存器定义的限制:
禁止在一个进程中存在两个边沿检测的寄存器描述
禁止使用边沿检测IF语句中的ELSE项
寄存器描述中必须代入信号值
22、结构描述方式是描述该设计单元的硬件结构,即该硬件是如何构成的。结构描述方式通常采用元件例化语句和生成语句编写程序。
指定信号与元件引脚的连接关系有两种方法:位置映射方法 名称映射方法
编写结构描述程序的主要步骤:绘制框图 元件说明 信号说明 元例化 添加必要的框架
23、VHDL构造体的两类描述语句:顺序语句和并发语句
顺序语句:顺序描述语句只能出现在进程或者子程序中,由它描述进程或子程序所执行法。
顺序描述语句是按照语句出现的次序加以执行的
wait语句 assert语句 信号代入语句 变量赋值语句 if语句 case语句 loop语句 next语句 exit语句 过程调用语句
if:但elseif 或else if的拼写都是错的,正确的事elsif
case:除非所有条件句中的选择值能完整覆盖case语句中表达式的取值,否则最末一个条件句中的选择必须用others表示
loop:循环语句可以使它包含的一组顺序语句被循环执行。循环语句包括for-loop语句和while-loop语句
并发描述语句是用来表示并发行为的语句。并发描述可以是结构性的,也可以是行为性的,并发语句中最关键的语句是进程语句process。为启动进程,在进程结构中必须包含一个显式的敏感信号量表或者包含一个wait语句
GENERATE(生成)语句可以生成一组完全相同的并行组件或设计单元电路结构,比米昂多段相同结构的重复书写
24、命名规则和注释标记
在VHDL语言中,一般不区分大小写
而“ZZZZ","X”等是std_logic_vector和std_logic数据类型的取值,不能用小写字母
名字的第一个字母必须是英文字母
能使用字符的只有英文字母、数字和_
_字符不能连用,也不能作为名字的结尾
不能是VHDL语言的保留字
在VHDL语言中,注释从-符号开始,到该行的末尾结束
25、数据类型类属性:客体’BASE
信号类型属性语句的语法格式为:信号’ 属性信号[(时间量)]
信号属性函数
s’ event——布尔量
s’active——布尔量
s’last_event——时间值
s’last_active——事件值
s’last_value——s的数据类型值
数组属性函数
LENGTH语句将得到数组(区间)的长
T’left——得到数组第n区间的左端位置号T’right(n)
T’right——得到数组第n区间的高端位置号T’low(n)
26、组合逻辑电路当前的输入决定当前的输出,不存在记忆性。
简单时序电路设计可以直接描述由时钟沿触发的行为,即直接描述状态转换真值表(输入及现态决定次态和输出的关系)
简单时序电路设计也可首先构造寄存器(触发器),再通过RTL方式描述寄存器之间的组合逻辑。
简单时序电路设计当然也可应用结构描述方式直接构造电路图。
27、时序电路当前的输出不仅决定于当前的输入,还与以前的输入有关。时序电路具有记忆性。因此时序电路必然含有存储单元,一般为触发器或寄存器。
存储单元的存储状态决定了时序电路的状态。
状态在时钟上升沿或下降沿时刻发生转换,因此时序电路是由时钟信号驱动的。
28、时钟信号的描述:时钟信号通常描述为时序电路程序的执行条件。另外,时序电路也总是以时钟进程的形式来进行描述的。
上升沿触发:if clk’event and clk=‘1’ and clk’last_value=‘0’
29、同步与异步复位(清0) 或置位(置1)
不受时钟信号控制的复位或置位为异步复位或异步置位;
而只有当时钟沿来到时才起作用的复位或置位为同步复位或同步置位。
这篇关于【硬件描述语言】期末复习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!