EDA期末复习总结1.docx
- 文档编号:24444375
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:16
- 大小:468.09KB
EDA期末复习总结1.docx
《EDA期末复习总结1.docx》由会员分享,可在线阅读,更多相关《EDA期末复习总结1.docx(16页珍藏版)》请在冰豆网上搜索。
EDA期末复习总结1
面向FPGA的开发流程
综合:
由高层次描述自动转换为低层次描述的过程。
是EDA技术的核心。
综合器:
能够自动将一种设计表示形式向另一种设计表示形式转换的计算机程序。
Xilinx公司推出FPGA;Altera公司推出EPLD,Lattice公司提出CPLD和ISP。
VHDL程序的基本结构:
库、程序包,实体,结构体,进程,配置。
VHDL的本质:
并行语句。
不完整IF语句形成时序逻辑电路,完整IF语句形成组合逻辑电路。
常用逻辑门符号与现有国标符号的对照:
第三章VHDL的基础
3.1VHDL基本语法
实体:
描述器件的端口构成及信号端口的基本性质。
表达式:
entitye_nameis
port(p_name:
port_mdata_type;
……
p_namei:
port_midata_type);
endentitye_name;
结构体:
描述电路器件的内部逻辑功能和电路结构。
表达式:
architecturearch_nameofe_nameis
[说明语句]……定义或说明数据对象、数据类型、元件调用声明
begin
(功能表述语句)
endarchitecturearch_name;
一个可综合的、完整的VHDL程序结构必须包含实体和结构体两个最基本的语言结构。
把一个完整的可综合的VHDL程序设计称为设计实体,而其程序代码常被称为VHDL的RTL描述。
4种端口模式:
IN,OUT,INOUT,BUFFER。
4种数据类型:
integer(整数),boolean(逻辑),std_logic,bit。
bit的取值范围是‘1’和‘0’,可以参与逻辑运算或算术运算,其结果仍是位的数据类型。
赋值符号“<=”:
例如y<=a,表示输入端口a的数据向输出端口y传输,或信号a向信号y赋值。
赋值操作并非立即发生,而要经历一个模拟器的最小分辨时间δ,δ可以看作实际电路存在的固有延时量。
“<=”两边的信号的数据类型必须一致。
数据比较符号“=”:
例如s=‘0’,“=”没有赋值的含义,只是一种数据比较符号。
S=‘0’输出结果的数据类型是布尔数据类型BOOLEAN,BOOLEAN数据类型取值是TRUE(真)和FALSE(伪),VHDL仿真器和综合器分别用‘1’和‘0’表达TRUE和FALSE,布尔数据不是数值,只能用于逻辑操作或条件判断。
7种逻辑操作符:
and与、or或、not非、nand与非、nor或非、xor异或、xnor同或。
逻辑操作符所要求的操作数的数据类型有3种,即bit、boolean和std_logic。
条件语句:
用IF_THEN_ELSE表示VHDL顺序语句。
IF语句表达式:
if条件句then
顺序语句
else
顺序语句
endif
WHEN_ELSE条件信号赋值语句:
一种并行赋值语句
表达式:
赋值目标<=表达式WHEN赋值条件ELSE例:
z<=awhenp1=’1’else
表达式WHEN赋值条件ELSEbwhenp2=’1’else
…c;
表达式;
条件信号赋值语句的第一句具有最高赋值优先。
进程语句:
由Process引导的语句:
表达式:
Process(a,b,s)
在VHDL中,所有合法的顺序语句都必须放入进程语句中。
在结构体中,可以有很多进程语句,所有的进程语句都是并行语句,而由任一进程Process引导的语句结构属于顺序语句。
进程语句定义的是变量。
描述数字电路时,推荐使用Process语句。
文件取名和存盘
文件名可以由设计者任意给定,但文件后缀扩展名必须是“.vhd”,建议程序的文件名尽可能与该程序的实体名一致,文件名原则上不分大小写,但推荐用小写。
3.2时序电路描述
VHDL主要通过对时序器件功能和逻辑行为的描述,而非结构上的描述使得计算机综合出符合要求的时序电路。
标准逻辑位数据类型STD_LOGIC:
STD_LOGIC定义:
TYPESTD_LOGICIS(‘U’,‘X’,‘0’,‘1’,‘Z’,‘W’,‘L’,‘H’,‘-’)
使用库和程序包的一般定义表达式:
LIBRARY<设计库名>;
USE<设计库名>.<程序包名>.ALL;
信号定义:
signalq1:
std_logic
数据对象:
信号(signal)、变量(variable)、常量(constant)
信号属性函数:
EVENT。
所谓信号属性函数是用来获得信号行为信息的函数。
测定信号的跳变情况:
<信号名>’EVENT
上升沿检测表式为:
<信号名>’EVENTAND<信号名>=’1’
时钟上升沿检测表式为:
clk’eventandclk=‘1’
确保clk的变化是一次上升沿的变化:
ifclk'eventand(clk='1')and(clk'last_value='0')
ifclk='1'andclk'last_value='0'
3.3全加器的VHDL描述(书P55)
※CASE语句:
case语句属于顺序语句,因此必须放在进程语句中使用。
一般表达式:
case<表达式>is
when<选择值或标识符>=><顺序语句>;…;<顺序语句>;
when<选择值或标识符>=><顺序语句>;…;<顺序语句>;
…
whenothers=><顺序语句>;--一般用null,表示不作任何操作。
endcase;
并置操作符&:
表示将操作数或是数组合并起来形成新的数组。
如abc<=a&b。
例化语句:
第一部分是对一个现成的设计实体定义为一个元件,语句的功能是对待调用的元件作出调用声明,其表达式为:
component元件名
port(端口名表);
endcomponent
第二部分则是此元件与当前设计实体中元件间及端口的连接说明,语句的表达式为:
例化名:
元件名portmap([端口名=>]连接端口名,…);
相关语法说明:
1、变量
variablecqi:
std_logic_vector(3downto0);
变量与信号的区别:
信号:
全局量
用于architecture、package、entity中
赋值符号为<=
变量:
局部量
用于process、function、procedure中
赋值符号为:
=
2、省略赋值操作符(others=>x)
3.6数据对象
数据对象:
常量(constant):
代表数字电路中电源、地和恒定的逻辑值。
常数定义语句:
变量(variable):
代表暂存某些值的载体,常用于描述算法。
变量定义语句:
信号(signal):
代表物理设计中的某硬件连接线,包括输入输出端口。
信号定义语句:
信号赋值语句:
变量与信号的差异(总结):
1)赋值方式的不同:
变量:
=表达式;
信号<=表达式;
2)硬件实现的功能不同:
信号代表电路单元、功能模块间的互联,代表实际的硬件连线;
变量代表电路单元内部的操作,代表暂存的临时数据。
3)有效范围的不同:
信号:
程序包、实体、结构体;全局量。
变量:
进程、子程序;局部量。
4)赋值行为的不同:
信号赋值延迟更新数值、时序电路;
变量赋值立即更新数值、组合电路。
3.7IF语句概述
※IF语句:
3.8进程语句归纳
Process语句结构的一般表达格式如下:
[进程标号:
]process[(敏感信号参数表)][is]
[进程说明部分](定义该进程所需的局部数据环境)
begin
顺序描述语句(描述该进程的行为)
endprocess[进程标号];
第四章QuartusⅡ的使用
建立工作库文件夹和编辑设计文件,创建工程,编译前设置,全程编译,时序仿真,应用RTL电路图观察器,引脚锁定,配置文件下载,编程配置器件,SignalTapⅡ实时测试。
(文本编辑,功能仿真,逻辑综合,布局布线,时序仿真,编程下载)
第五章VHDL状态机
用户自定义数据类型是用类型定义语句TYPE和子类型定义语句SUBTYOPE实现的
5.1状态机设计相关语句
TYPE类型定义语句:
VHDL中的枚举数据类型是一种特殊的数据类型,它们是用文字符号来表示一组实际的二进制数。
设计者在状态机的设计中,为了利于阅读、编译和VHDL综合器的优化,往往将表征状态的二进制数组用文字符号来代替,即所谓的状态符号化。
枚举类型也可以直接用数值来定义,但必须使用单引号。
枚举数据,在综合过程中,都将转化为二进制代码。
编码顺序是默认的。
编码数值:
一般将第一个枚举量编码为‘0’或“0000”,以后依次加1。
编码的位矢量长度根据实际情况决定。
子类型subtype是由type所定义的原数据类型的一个子集,它满足原数据类型的所有约束条件,原数据类型称为基本数据类型。
子类型并没有定义新的数据类型。
子类型subtype的语句格式:
5.1.3状态机的结构
最一般最常用的状态机通常包括:
说明部分,主控时序进程,主控组合进程,辅助进程。
现态信号current_state,次态信号next_state。
真值表:
5.2Moore状态机设计
从状态机的信号输出方式上分,有Moore型和Mealy型两类状态机。
Moore型状态机的输出仅为当前状态的函数,这类状态机在输入发生变化时还必须等待时钟的到来,时钟使状态变化时才导致输出的变化,所以比Mealy机要多等待一个时钟周期。
Mealy型状态机的输出是当前状态和所有输入信号的函数,它的输出是在输入变化后立即发生的,不依赖时钟的同步。
从输出时序上看,Moore属于同步输出状态机,而Mealy属于异步输出状态机。
摩尔(Moore)型状态机的输出仅与当前状态有关:
异步复位:
目的在加电时建立一个初始状态,并避免非法状态;
摩尔(Moore)型状态机真值表:
多进程Moore状态机的输出信号是由组合电路发出的,所以在一些特定情况下难免出现毛刺现象。
如果这些输出信号用作时钟信号,极易产生错误的操作,需尽力避免。
单进程Moore状态机较容易构成能避免出现毛刺现象的状态机。
5.3Mealy状态机
Mealy状态机的输出不仅是当前状态的函数,也是输入信号的函数。
Mealy状态机真值表:
第七章VHDL语句
7.1VHDL顺序语句(Sequential)
硬件执行:
并行执行(VHDL本质)
仿真执行:
顺序执行、并行执行
分为两大类:
顺序(Sequential)描述语句、并行(Concurrent)描述语句
顺序语句只能用在进程与子程序中。
可描述组合逻辑、时序逻辑。
常用的顺序描述语句:
赋值语句;if语句;case语句;loop语句;
next语句;exit语句;子程序调用语句;
return语句;wait语句;null语句。
7.1.4LOOP语句
LOOP语句就是循环语句,它可以使所包含的一组顺序语句被循环执行,其执行次数可由设定的循环参数决定。
LOOP语句的常用表达方式有两种。
(1)单个LOOP语句,其语法格式如下:
[LOOP标号:
]LOOP
顺序语句
ENDLOOP[LOOP标号:
];
该语句形式的循环方式需引入其它控制语句(如EXIT语句)才能确定。
(2)FOR_LOOP语句,其语法格式如下:
[LOOP标号:
]FOR循环变量,IN循环次数范围LOOP
顺序语句
ENDLOOP[LOOP标号:
];
7.1.5NEXT语句
NEXT语句主要用在LOOP语句执行中进行有条件的或无条件的转向控制,它的语句格式有3种。
(1)第一种语句格式:
NEXT;
当LOOP内的顺序语句执行到NEXT语句时,即刻无条件终止当前的循环,跳回到本次循环LOOP语句处,开始下一次循环。
(2)第二种语句格式:
NEXTLOOP标号;
在当有多重LOOP语句嵌套时,可以跳转到指定标号的LOOP语句处,重新开始执行循环操作。
(3)第三种语句格式:
NEXTLOOP标号WHEN条件表达式;
分句“WHEN条件表达式”是执行NEXT语句的条件,如果条件表达式的值为TRUE,则执行NEXT语句,进入跳转操作,否则继续向下执行。
但当只有单层LOOP循环语句时,关键词NEXT和WHEN之间的“LOOP标号”可以省去。
7.1.6EXIT语句
EXIT语句为LOOP语句的内部循环控制语句,将结束循环状态。
EXIT;--第一种语句格式
EXITLOOP标号;--第二种语句格式
EXITLOOP标号WHEN条件表达式;--第三种语句格式
NEXT语句与EXIT语句的格式与操作功能非常相似,区别是:
NEXT语句是跳向LOOP语句的起始点,而EXIT语句则是跳向LOOP语句的终点。
7.1.7WAIT语句
在进程中,当执行到WAIT(等待)语句时,运行程序将被挂起,直到满足此语句设置的结束挂起条件之后,才重新开始执行进程中的程序。
wait--无限等待
waiton信号表--敏感信号等待语句
waituntil条件表达式--条件满足(可综合)
waitfor时间表达式--时间到,超时等待语句
1、waiton语句
格式:
waiton信号[,信号];
2、waituntil语句(可综合)
格式:
waituntil表达式;
当表达式的值为“真”时,进程被启动,否则进程被挂起。
三种表达方式:
waituntil信号=value;
waituntil信号’eventand信号=value;
waituntilnot(信号’stable)and信号=value;
时钟信号clk的上升沿的描述:
waituntilclk=‘1’;
waituntilrising_edge(clk);
waituntilclk’eventandclk=‘1’;
waituntilnot(clk’stable)andclk=‘1’;
7.1.9return语句
return语句只能用于子程序中,并用来终止一个子程序的执行。
格式:
return[表达式];
分为:
1)return;
用于过程,只是结束过程,不返回任何值。
2)return表达式;
用于函数,并且必须返回一个值。
7.1.9空操作语句
空操作语句不完成任何操作,它唯一的功能就是使逻辑运行流程跨入下一步语句的执行。
NULL常用于CASE语句中,为满足所有可能的条件,利用NULL来表示剩余条件下的操作行为。
格式:
NULL;
7.2并行语句(ConcurrentStatements)
结构体中可综合的并行描述语句有:
并行信号赋值语句,条件信号赋值语句,选择信号赋值语句,进程语句,块语句,元件例化语句,生成语句,参数传递映射语句,过程调用语句,端口说明语句。
使用格式:
ARCHITECTURE结构体名OF实体名IS
说明语句
BEGIN
并行语句
ENDARCHITECTURE结构体名
名词解释
EDA--------电子设计自动化(ElectronicDesignAutomation)
VHDL------超高速集成电路硬件描述语言
(Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage)
CPLD------复杂可编程逻辑器件(ComplexProgrammableLogicDevice)
EPLD--------电可编程逻辑器件(ElectricallyProgrammableLogicDevice)
FPGA------现场可编程门阵列(Field-ProgrammableGateArray)
ASIC-------专用集成电路(ApplicationSpecificIntegratedCircuit)
LUT---------显示查找表(Look-Up-Table)
ISP----------在系统可编程技术(In_SystemProgrammabilityProgramming)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 期末 复习 总结