EDA复习.docx
- 文档编号:5053682
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:11
- 大小:19.35KB
EDA复习.docx
《EDA复习.docx》由会员分享,可在线阅读,更多相关《EDA复习.docx(11页珍藏版)》请在冰点文库上搜索。
EDA复习
1、EPGA的中文意思是什么?
完全由用户通过软件进行配置和编程,从而完成某种特定的功能,并且可以反复擦写。
2、所谓敏感信号表达式。
即当该表达式中的变量的值改变时,就会引发块内语句的执行always过程语句的敏感信号可以分为两种类型:
一种为边沿敏感型、一种为电平敏感型。
“always”过程语句通常是带有触发条件的,触发条件写在敏感信号表达式中,只有当触发条件满足时,其后的“begin-end”块语句才能被执行。
下面讨论敏感信号表达式“event-expression”的含义以及如何写敏感信号表达式IP核的感念和分类。
所谓敏感信号表达式,又称事件表达式或敏感信号列表,即当该表达式中变量的值改变时,就会引发块内语句的执行。
因此,敏感信号表达式中应列出影响块内取值的所有信号。
若有两个或两个以上信号,它们之间用“or”连接。
always@(posedgeclkorposedgeclr)
//两个敏感信号都是边沿敏感型
always@(aorb)
//两个敏感信号都是电平敏感型
always@(posedgeclkorclr)
//不建议这样用,最好不要将边沿敏感型和电平
//敏感型列在一起
3、每个Verilog程序包括4个主要部分:
模块声明、端口定义、信号类型说明和逻辑功能描述。
1)模块声明:
模块声明包括模块名字和模块输入、输出端口列表。
其格式如下:
module模块名(端口1,端口2,端口3……);模块结束的标志为关键字:
endmodule。
2)端口(Port)定义:
对模块的输入、输出端口要明确说明,其格式为:
端口是模块与外界或其他模块连接和通信的信号线,如图所示:
有三种类型的端口:
输入端口(input)、输出端口(output)和输入/输出端口(inout).
3)信号类型声明:
对端口的输入输出除了要明确说明外,还要进行信号数据类型的定义。
Verilog语言提供了各种信号类型,分别模拟实际电路中的各种物理连接和物理实体。
常用的数据类型包括连线型(wire)、寄存器型(reg)两种。
如果信号的数据类型没有定义,则综合器将其默认为wire型。
注:
输入端口和双向端口不能声明为寄存器型
4)逻辑功能定义:
模块中最核心的部分是逻辑功能定义。
有多种方法可在模块中描述和定义逻辑功能,还可以调用函数(function)和任务(task)来描述逻辑功能。
下面介绍定义逻辑功能的几种方法。
用“assign”持续赋值语句定义:
“assign”语句一般用于组合逻辑的赋值,成为持续赋值语句。
如:
assignF=~((A&B)|(C&D));
这种方法简单,只需将逻辑表达式放在关键字“assign”后即可。
4、VerilogHDL所描述的信号通常有4种基本逻辑状态:
高电平、低电平、高阻态和不确定状态。
VerilogHDL有下面4种基本逻辑状态:
0:
低电平、逻辑0或逻辑非;1:
高电平、逻辑1或“真”;x或X:
不确定或未知的逻辑状态;z或Z:
高阻态。
这四种值的解释都内置于语言中。
如一个为z的值总是意味着高阻抗,一个为0的值通常是指逻辑0;在门的输入或一个表达式中为“z”的值通常解释成“x”。
此外x值和z值都是不分大小写的,也就是说,值0x1z与值0X1Z相同。
5、VerilogHDL中的标识符可以是任意一组字母、数字、$符号好_(下划线)符号的组合,但标识符的第一个字符必须是字符或者下划线。
1、有效的字符:
包括26个英文字母,(大小写都包括),数字包括0~9以及“$”
和下划线“”等,或它们的组合。
标识符最长可以包含1023个字符。
2、任何标识符必须以英文字母或下划线开头。
3、必须是单一划线“”,且前后都必须有英文字母或数字。
4、标识符中的英语字母区分大小写。
5、允许包含图形符号,也允许包含空格符。
6、在VerilogHDL中存在4种类型的循环语句,可用来控制语句执行次数。
这4种语句分别:
for、repeat、while和forever。
1.for语句:
for语句使用格式:
for(表达式1;表达式2;表达式3)语句;即:
for(循环变量赋初值;循环结束条件;循环变量增值)执行语句;2.repeat语句:
repeat语句的使用格式为:
repeat(循环次数表达式)语句;或repeat(循环次数表达式)begin……
end。
3、While语句:
while语句的使用格式如下:
while(循环执行条件表达式)语句;
Ø或while(循环执行条件表达式)begin……end。
while语句在执行时,首先判断循环执行条件表达式是否为真,若为真,执行后面的语句或语句块,然后再回头判断循环执行条件表达式是否为真,为真的话,再执行一遍后面的语句,如此不断,直到条件表达式不为真。
因此,在执行语句中,必须有一条改变循环执行条件表达式的值的语句。
4.forever语句:
forever语句的使用格式如下:
forever语句;
或foreverbegin……endforever循环语句连续不断地执行后面的语句或语句块,常用来产生周期性的波形,作为仿真激励信号,for语句一般用在initial过程语句中,若要用它来进行模块描述,可用disable语句进行中断。
7、有限状态机及其设计技术是实用数字系统设计的重要组成部分。
从信号的输出方式。
有Moore型和Mealy两类状态机。
Mealy型状态机的输出是当前状态和所有输入信号的函数,它的输出是在输入变化后立即发生的,不依赖时钟的同步;Moore型机的输出则仅为当前状态的函数,这类状态机在输入发生变化时还必须等待时钟的到来,时钟使状态发生时才导致输出的变化,所以比Mealy型机要多等待一个时钟周期。
8、简要描述FPGA的开发流程。
FPGA的设计流程就是利用EDA开发软件和编程工具对FPGA芯片进行开发的过程。
Xilinx公司提供了FPGA开发软件ISE,这是一个集成的开发环境。
用户可以在ISE工程管理器—ProjectNavigator界面的统一管理下,完成所有的设计输入、仿真、综合、布线、下载等工作,而且其中集成了强大的仿真工具ModelSim。
9、组合电路和时序电路的区别。
时序电路:
它是由最基本的逻辑门电路加上反馈逻辑回路(输出到输入)或器件组合而成的电路,与组合电路最本质的区别在于时序电路具有记忆功能。
时序电路的特点是:
输出不仅取决于当时的输入值,而且还与电路过去的状态有关。
它类似于含储能元件的电感或电容的电路,如触发器、锁存器、计数器、移位寄存器、储存器等电路都是时序电路的典型器件。
10、Verilog语言与C语言特点比较。
(1)Verilog是一种硬件语言,最终是为了产生实际的硬件电路或对硬件电路进行仿真;而C语言是一种软件语言,是控制硬件来实现某些功能的语言。
(2)C语言只要是语法正确,都可以编译执行;而Verilog语言有可综合的限制,即在所有的Verilog语句中,只有一部分可以被综合,而另外的部分则不能被综合,只能用来仿真。
(3)C语言是一种软件编程语言,其基本思想是语句的循序执行;而Verilog语言的基本思想是模块的并行执行。
(4)利用Verilog编程时,要时刻记得Verilog是硬件语言,要时刻将Verilog与硬件电路对应起来。
11、Verilog语言中的函数使用时的注意事项有哪些、任务使用的注意事项有哪些。
二者之间的区别。
1函数:
函数的定义和调用须在一个module模块内
2函数只允许有输入变量,且必须至少有一个输入变量,输出变量由函数名本身担任。
因此在定义函数时,需对函数名说明其类型和位宽。
3定义函数时,没有端口名列表,但调用函数时,需列出端口名列表,端口名的排序和类型必须与定义时的相一致,这点与任务相同。
4函数可以出现在连续赋值assign的右端表达式中。
5函数不能调用任务,而任务可以调用别的任务和函数,且调用任务和函数个数不受限制。
1任务:
任务的定义与调用须在一个module模块内
2定义任务时,没有端口名列表,但需要紧接着进行输入、输出端口和数据类型的说明
3当任务被调用时,任务被激活。
任务的调用与模块调用一样通过任务名调用来实现。
调用时,需列出端口名列表,端口的排序和类型必须与任务定义中的一致
4一个任务可调用别的任务和函数,可以调用的任务和函数个数不限。
任务和函数的合理使用会使程序显得结构清晰而简洁,一般的综合器对task和function都是支持的,但也有的综合器不支持task,需要在使用的时候加以注意。
12、阻塞赋值与非阻塞赋值的特点。
阻塞赋值:
阻塞赋值语句,从字面上理解,该条语句阻塞了下面语句的执行,“=”用于阻塞的赋值,凡是在组合逻辑(如在assign语句中)赋值的请用阻塞赋值。
非阻塞赋值:
非阻塞赋值操作符用小于等于号(即<=)表示,只能用于对寄存器类型变量进行赋值,因此只能用在“initial”和“always”等过程块中,不能用在assign语句中。
在同一个进程块中,最好不要同时用阻塞赋值和非阻塞赋值语句。
13、同步复位与异步复位操作的区别。
同步是指与时钟同步,即时钟触发条件满足时检测清零信号是否有效,有效则在下一个时间周期的触发条件下,执行清零;异步是清零信号有效时,无视触发脉冲,立即清零。
同步信号可以过滤掉不正确状态跳变对逻辑的影响,但是需要保证有效输入信号在时钟信号跳变前完成跳变,否则输入信号就是无效的。
异步信号则和同步信号的效果正好相反。
使用时请根据实际情况考虑。
14、数码管显示、自动售饮料机。
对于输入币值变化的判断,采用if-else语句来判断。
整个描述用一个过程块加以表示。
有限状态机从本质上讲是由寄存器和组合逻辑构成的时序电路,各个状态之间的转移总是在时钟的触发下进行的,也可以在设计时将时序逻辑部分和组合逻辑部分分在两个“always”过程块中进行描述,这样在综合时可以减少一些不必要的寄存器。
15、EPGA的中文意思是什么?
完全由用户通过软件进行配置和编程,从而完成某种特定的功能,并且可以反复擦写。
16、所谓敏感信号表达式。
即当该表达式中的变量的值改变时,就会引发块内语句的执行always过程语句的敏感信号可以分为两种类型:
一种为边沿敏感型、一种为电平敏感型。
“always”过程语句通常是带有触发条件的,触发条件写在敏感信号表达式中,只有当触发条件满足时,其后的“begin-end”块语句才能被执行。
下面讨论敏感信号表达式“event-expression”的含义以及如何写敏感信号表达式IP核的感念和分类。
所谓敏感信号表达式,又称事件表达式或敏感信号列表,即当该表达式中变量的值改变时,就会引发块内语句的执行。
因此,敏感信号表达式中应列出影响块内取值的所有信号。
若有两个或两个以上信号,它们之间用“or”连接。
always@(posedgeclkorposedgeclr)
//两个敏感信号都是边沿敏感型
always@(aorb)
//两个敏感信号都是电平敏感型
always@(posedgeclkorclr)
//不建议这样用,最好不要将边沿敏感型和电平
//敏感型列在一起
17、每个Verilog程序包括4个主要部分:
模块声明、端口定义、信号类型说明和逻辑功能描述。
1)模块声明:
模块声明包括模块名字和模块输入、输出端口列表。
其格式如下:
module模块名(端口1,端口2,端口3……);模块结束的标志为关键字:
endmodule。
2)端口(Port)定义:
对模块的输入、输出端口要明确说明,其格式为:
端口是模块与外界或其他模块连接和通信的信号线,如图所示:
有三种类型的端口:
输入端口(input)、输出端口(output)和输入/输出端口(inout).
3)信号类型声明:
对端口的输入输出除了要明确说明外,还要进行信号数据类型的定义。
Verilog语言提供了各种信号类型,分别模拟实际电路中的各种物理连接和物理实体。
常用的数据类型包括连线型(wire)、寄存器型(reg)两种。
如果信号的数据类型没有定义,则综合器将其默认为wire型。
注:
输入端口和双向端口不能声明为寄存器型
4)逻辑功能定义:
模块中最核心的部分是逻辑功能定义。
有多种方法可在模块中描述和定义逻辑功能,还可以调用函数(function)和任务(task)来描述逻辑功能。
下面介绍定义逻辑功能的几种方法。
用“assign”持续赋值语句定义:
“assign”语句一般用于组合逻辑的赋值,成为持续赋值语句。
如:
assignF=~((A&B)|(C&D));
这种方法简单,只需将逻辑表达式放在关键字“assign”后即可。
18、VerilogHDL所描述的信号通常有4种基本逻辑状态:
高电平、低电平、高阻态和不确定状态。
VerilogHDL有下面4种基本逻辑状态:
0:
低电平、逻辑0或逻辑非;1:
高电平、逻辑1或“真”;x或X:
不确定或未知的逻辑状态;z或Z:
高阻态。
这四种值的解释都内置于语言中。
如一个为z的值总是意味着高阻抗,一个为0的值通常是指逻辑0;在门的输入或一个表达式中为“z”的值通常解释成“x”。
此外x值和z值都是不分大小写的,也就是说,值0x1z与值0X1Z相同。
19、VerilogHDL中的标识符可以是任意一组字母、数字、$符号好_(下划线)符号的组合,但标识符的第一个字符必须是字符或者下划线。
2、有效的字符:
包括26个英文字母,(大小写都包括),数字包括0~9以及“$”
和下划线“”等,或它们的组合。
标识符最长可以包含1023个字符。
2、任何标识符必须以英文字母或下划线开头。
3、必须是单一划线“”,且前后都必须有英文字母或数字。
4、标识符中的英语字母区分大小写。
5、允许包含图形符号,也允许包含空格符。
20、在VerilogHDL中存在4种类型的循环语句,可用来控制语句执行次数。
这4种语句分别:
for、repeat、while和forever。
1.for语句:
for语句使用格式:
for(表达式1;表达式2;表达式3)语句;即:
for(循环变量赋初值;循环结束条件;循环变量增值)执行语句;2.repeat语句:
repeat语句的使用格式为:
repeat(循环次数表达式)语句;或repeat(循环次数表达式)begin……
end。
3、While语句:
while语句的使用格式如下:
while(循环执行条件表达式)语句;
Ø或while(循环执行条件表达式)begin……end。
while语句在执行时,首先判断循环执行条件表达式是否为真,若为真,执行后面的语句或语句块,然后再回头判断循环执行条件表达式是否为真,为真的话,再执行一遍后面的语句,如此不断,直到条件表达式不为真。
因此,在执行语句中,必须有一条改变循环执行条件表达式的值的语句。
4.forever语句:
forever语句的使用格式如下:
forever语句;
或foreverbegin……endforever循环语句连续不断地执行后面的语句或语句块,常用来产生周期性的波形,作为仿真激励信号,for语句一般用在initial过程语句中,若要用它来进行模块描述,可用disable语句进行中断。
21、有限状态机及其设计技术是实用数字系统设计的重要组成部分。
从信号的输出方式。
有Moore型和Mealy两类状态机。
Mealy型状态机的输出是当前状态和所有输入信号的函数,它的输出是在输入变化后立即发生的,不依赖时钟的同步;Moore型机的输出则仅为当前状态的函数,这类状态机在输入发生变化时还必须等待时钟的到来,时钟使状态发生时才导致输出的变化,所以比Mealy型机要多等待一个时钟周期。
22、简要描述FPGA的开发流程。
FPGA的设计流程就是利用EDA开发软件和编程工具对FPGA芯片进行开发的过程。
Xilinx公司提供了FPGA开发软件ISE,这是一个集成的开发环境。
用户可以在ISE工程管理器—ProjectNavigator界面的统一管理下,完成所有的设计输入、仿真、综合、布线、下载等工作,而且其中集成了强大的仿真工具ModelSim。
23、组合电路和时序电路的区别。
时序电路:
它是由最基本的逻辑门电路加上反馈逻辑回路(输出到输入)或器件组合而成的电路,与组合电路最本质的区别在于时序电路具有记忆功能。
时序电路的特点是:
输出不仅取决于当时的输入值,而且还与电路过去的状态有关。
它类似于含储能元件的电感或电容的电路,如触发器、锁存器、计数器、移位寄存器、储存器等电路都是时序电路的典型器件。
24、Verilog语言与C语言特点比较。
(1)Verilog是一种硬件语言,最终是为了产生实际的硬件电路或对硬件电路进行仿真;而C语言是一种软件语言,是控制硬件来实现某些功能的语言。
(2)C语言只要是语法正确,都可以编译执行;而Verilog语言有可综合的限制,即在所有的Verilog语句中,只有一部分可以被综合,而另外的部分则不能被综合,只能用来仿真。
(3)C语言是一种软件编程语言,其基本思想是语句的循序执行;而Verilog语言的基本思想是模块的并行执行。
(4)利用Verilog编程时,要时刻记得Verilog是硬件语言,要时刻将Verilog与硬件电路对应起来。
25、Verilog语言中的函数使用时的注意事项有哪些、任务使用的注意事项有哪些。
二者之间的区别。
6函数:
函数的定义和调用须在一个module模块内
7函数只允许有输入变量,且必须至少有一个输入变量,输出变量由函数名本身担任。
因此在定义函数时,需对函数名说明其类型和位宽。
8定义函数时,没有端口名列表,但调用函数时,需列出端口名列表,端口名的排序和类型必须与定义时的相一致,这点与任务相同。
9函数可以出现在连续赋值assign的右端表达式中。
10函数不能调用任务,而任务可以调用别的任务和函数,且调用任务和函数个数不受限制。
5任务:
任务的定义与调用须在一个module模块内
6定义任务时,没有端口名列表,但需要紧接着进行输入、输出端口和数据类型的说明
7当任务被调用时,任务被激活。
任务的调用与模块调用一样通过任务名调用来实现。
调用时,需列出端口名列表,端口的排序和类型必须与任务定义中的一致
8一个任务可调用别的任务和函数,可以调用的任务和函数个数不限。
任务和函数的合理使用会使程序显得结构清晰而简洁,一般的综合器对task和function都是支持的,但也有的综合器不支持task,需要在使用的时候加以注意。
26、阻塞赋值与非阻塞赋值的特点。
阻塞赋值:
阻塞赋值语句,从字面上理解,该条语句阻塞了下面语句的执行,“=”用于阻塞的赋值,凡是在组合逻辑(如在assign语句中)赋值的请用阻塞赋值。
非阻塞赋值:
非阻塞赋值操作符用小于等于号(即<=)表示,只能用于对寄存器类型变量进行赋值,因此只能用在“initial”和“always”等过程块中,不能用在assign语句中。
在同一个进程块中,最好不要同时用阻塞赋值和非阻塞赋值语句。
27、同步复位与异步复位操作的区别。
同步是指与时钟同步,即时钟触发条件满足时检测清零信号是否有效,有效则在下一个时间周期的触发条件下,执行清零;异步是清零信号有效时,无视触发脉冲,立即清零。
同步信号可以过滤掉不正确状态跳变对逻辑的影响,但是需要保证有效输入信号在时钟信号跳变前完成跳变,否则输入信号就是无效的。
异步信号则和同步信号的效果正好相反。
使用时请根据实际情况考虑。
28、数码管显示、自动售饮料机。
对于输入币值变化的判断,采用if-else语句来判断。
整个描述用一个过程块加以表示。
有限状态机从本质上讲是由寄存器和组合逻辑构成的时序电路,各个状态之间的转移总是在时钟的触发下进行的,也可以在设计时将时序逻辑部分和组合逻辑部分分在两个“always”过程块中进行描述,这样在综合时可以减少一些不必要的寄存器。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 复习