理论知识复习题-Verilog HDL

更新时间:2024-04-30 19:01:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

?

理论知识复习题

基本概念

Verilog HDL

一、 判断题(将判断结果填入括号中。正确的填“√”,错误的填“×”):

1. 硬件描述语言HDL的发展至今仅仅10多年历史,但成功地应用于设计的各个阶段:

建模、仿真、验证和综合等。??

?

?

?

?

?

?

?

???????(?)?

标准。????????????

3. Verilog的模块由两部分组成,一部分描述接口,另一部分描述逻辑功能。???(?)?4. Verilog模块的端口定义时不可同时进行I/O说明。??

?

?

?

?

???(?)????(?)?

6. 在引用Verilog模块时,必须严格按照模块定义的端口顺序来连接,并且标明原模

块定义时规定的端口名。??

?

?

?

?

?

?

?

?

?

???(?)?

7. Verilog?HDL中的标识符可以是任意组字母、数字、$符号和_(下划线)符号的组合,

但标识符的第一个字符必须是字母或者下划线。??

?

?

?

?

???(?)?

以扩展至多行注释。??

式?

?

??

8. 在Verilog?HDL语言中有两种形式的注释,“/*....*/”是指注释在本行结束,“//”可

?

?

?

?

?

?

??

???(?)????(?)?

9. Verilog?HDL中逻辑数值区分大小写,“0x1z”和“0X1Z”不同。??

10. 在Verilog?HDL语言中有三类常量:整型、实数型、字符串型,下划线符号“_”可

以随意用在整数或实数中,没有限制。??

?

?

?

?

?

?

???(?)?

FPGA嵌11. 在Verilog?HDL语言中参数型常数经常用于定义延迟时间和变量宽度,在模块或实

例引用时,可通过参数传递改变在被引用模块或实例中已定义的参数。??????(?)?

???(?)?

12. 在Verilog?HDL语言中有两大类数据类型:线网类型、寄存器类型。??

13. 在Verilog?HDL语言中wire型数据常用来表示以assign关键字指定的组合逻辑信号,

Verilog程序模块中输入、输出信号类型默认时自动定义为wire型。??

???(?)?

14. 在Verilog?HDL语言中reg型数据常用来表示“always”模块内的指定信号,常代表

触发器,在“always”块内,被赋值的信号也可以是wire型数据。??

???(?)?

15. 在Verilog?HDL语言中非阻塞赋值符“<=”与小于等于符“<=”意义完全不同,小

于等于符是关系运算符,用于比较大小,而非阻塞赋值符用于赋值操作。???(?)?

16. 在进行算术运算操作时,如果某一个操作数有不确定的值x,则整个结果为0。(?)?17. 在Verilog?HDL语言中“&&”和“|”都属于逻辑运算符。??

?

?

???(?)?

18. Verilog?HDL语言中的所有关系运算符有着相同的优先级别,关系运算符的优先级别

低于算术运算符的优先级别。??

?

入应?

?

?

用?

?

5. Verilog模块的内容包括I/O说明、内部信号声明和功能定义。??

3级?

?

???

?

2. Verilog?HDL和VHDL都是用于逻辑设计的硬件描述语言,但只有VHDL语言成为IEEE

???(?)?

???(?)?

?

19. 在Verilog?HDL语言中条件运算符“?:”属于二目运算符。???????(?)?

20. 在Verilog?HDL语言的位运算符中除了“~”是单目运算符以外,均为二目运算符,

即要求运算符两侧各有一个操作数。?

?

?

?

?

?

?

?

???(?)?

21. 在Verilog?HDL位拼接表达式中不允许存在没有指明位数的信号,这是因为在计算

拼接信号的位宽的大小时必须知道其中每个信号的位宽。??

?

?

???(?)?

22. 在Verilog?HDL中有两种移位运算符:“<<”和“>>”,表达式“a>>n”表示将操作

数n右移a位。??

?

?

?

?

?

?

?

?

?

?

?

???(?)?

24. 在电平敏感事件控制中,过程语句一直延迟到条件变为真后才执行,形式为:wait?

(condition)?procedural_statement。?

?

?

?

?

?

?

?

???(?)?

25. 信号跳变沿事件控制中,过程语句的执行,需等到指定事件发生,否则不能继续执

26. 在Verilog?HDL的条件语句中if和else后面可以包含一个内嵌的操作语句,也可以

利用begin和end关键词包含多个操作语句。??

?

?

?

?

?

???(?)?

27. 在Verilog?HDL语言中执行完case分项后的语句,则继续执行下面语句,直到endcase

语句。??

?

?

?

?

?

?

?

?

?

??

??

??

??

???(?)????(?)?

29. 在Verilog?HDL中repeat语句可以连续执行一条语句n次,格式为:repeat(表达式)

语句;,表达式通常为常量表达式。??

?

?

?

?

?

?

??

???(?)????(?)?

30. Verilog?HDL语言的while循环语句包含的语句至少被执行一次。??

31. 在Verilog?HDL中for语句的一般形式为:for(表达式1,表达式2,表达式3)语

FPGA嵌句。??

入???

式?

?

??

?

?

?

28. 在Verilog?HDL的case语句中必须存在default项。??

应?

?

?

?

?

?

?

?

?

?

?

?

用?

??

??

??

?

行。????????????

32. Verilog?HDL语言中for循环语句实际上相当于采用while循环语句,但语句更简练。?

(?)?

?

??

???(?)????(?)?

33. 任务可以启动其它的任务和函数,而函数则不能启动任务。?

34. 函数可以没有输入变量,只能与主模块共用同一个仿真时间单位。??

35. 任务和函数往往是在大的程序模块中且在不同地点多次用到的相同的程序段。(?)?36. 监控任务$monitor连续监控指定的参数,只要参数表中的参数值发生变化,整个参

数表就在时间步结束时显示。??

?

?

???(?)?

37. 系统函数$time可以返回一个32位的整数来表示当前的仿真时刻值,该时刻值是

以模块的仿真时间尺度为基准的。??

?

?

???(?)?

38. 系统任务$finish的作用是结束仿真过程,$finish可以带参数也可以省略,默认的参

数值为0。?

?

?

?

?

?

???(?)?

39. 系统任务$stop任务的作用是把EDK工具置成暂停模式,这个任务不可以带参数表

?

3级?

?

??

?

23. Verilog?HDL的缩减运算符运算结果为一位二进制数,与操作数位数无关。???(?)?

???(?)?

???(?)?

?

达式。??????????????????(?)?

40. 在Verilog?HDL程序中有两个系统任务$readmemb和$readmemh用来从文件中读取

数据到存储器中。?

?

?

?

?

?

?

?

?

?

?

?

???(?)?

41. 在Verilog?HDL程序中系统任务$random可用来产生随机数,函数被调用时返回一

个32位的无符号整数。?

?

?

?

?

?

?

?

?

?

?

???(?)?

42. `define命令只能出现在模块定义外面,宏名的有效范围为定义命令之后到源文件

结束。??

?

?

?

?

?

?

?

?

?

?

?

?

?

???(?)?

一部分。???????????

44. 在Verilog?HDL语句中,`include命令可以出现在源程序的任何地方,一个`include

命令可以指定多个被包含的文件。??

?

?

?

?

?

?

?

???(?)?

???????????

用?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

45. 在Verilog?HDL语句中,`timescale命令的格式为:`timescale<时间精度>/<时间单位>。

?

?

???(?)?

46. 十六位的二进制超前进位加法电路可以用两个四位二进制超前进位加法电路再加

上超前进位形成逻辑来构成。??

应?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

47. 八位的二进制超前进位乘法电路可用两个四位二进制超前进位乘法电路再加上超

48. 用逻辑图或门级结构的Verilog模块来表示比较器比利用Verilog?HDL语言来设计更

容易。??

?

?

?

?

?

?

?

???(?)?

49. 多路选择器简称多路器,它是一个单输入,多输出的组合逻辑电路,在数字系统中

有着广泛的应用。?

?

?

?

?

?

???(?)?

FPGA嵌50. 在硬线逻辑构成的运算电路中只要电路的规模允许,我们可以比较自由地来确定总

线位宽,因此可以大大提高数据流通的速度。?

?

?

???(?)?

51. 流水线设计实际上是把规模较大,层次较多的组合逻辑电路分为几个级,在每一级

插入寄存器组并暂存中间数据。?

?

?

???(?)?

52. 状态机的编码方式有多种,典型的编码方式有状态位直接输出型编码、顺序编码和

一位热码编码。??

?

?

?

?

?

???(?)?

53. 一段式状态机描述方法就是将状态的同步转移,状态输出和状态的输入条件都写在

一个always模块中。??

?

?

?

?

???(?)?

54. 两段式状态机描述方法采用两个模块,采用同步时序描述状态转移,采用组合逻辑

判断状态转移条件。??

?

?

?

?

???(?)?

55. 在三段式FSM描述方法中判断状态转移的always模块的case语句判断的是下一状

态“ns”,同步时序FSM输出的always模块的case语句判断的条件是当前状态“cs”。?

???(?)?

?

入式前进位形成逻辑来构成。???

3级?

?

??

??

?

43. 条件编译是指当满足一定条件时对一组语句进行编译,而当条件不满足时则编译另

???(?)?

???(?)?

???(?)?

?

56. Johnson计数器的特点是每次状态变化时仅有一个触发器改变状态,译码电路简单,

译码时存在竞争冒险现象。?

?

?

?

?

?

?

?

?

?

???(?)?

57. 格雷码计数器(Gray?counter)是为了在异步时钟域之间传递计数结果而用到的计数

器,因为格雷码计数器计数时相邻的数之间只有一个bit发生了变化。?

???(?)?

58. 通用移位寄存器是指寄存器中所存的代码能够在移位脉冲的作用下依次左移或右

移。?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

???(?)????(?)?

59. 桶型移位寄存器的移位是通过对数据字的指定位左移或右移实现的。?

致,RTL模型与逻辑门级模型不可同时进行仿真。??61. 形式化验证也需要测试平台和测试矢量。?62. 在进行仿真时,功能正确性可以不考虑。?

??

??

???

64. 定时验证利用器件的模型和电路互连关系来分析电路的时序,判断在实际设计中是

否能达到硬件定时约束条件和输入输出定时特性的要求。??

?

?

???(?)?

65. 若一款FPGA其可运行的最大时钟频率为50MHZ,则以0.2ns为周期的时钟源可用。?

???(?)?

发器就不能正常工作。?

式?

?

?

?

?

?

?

?

?

?

?

?

66. 如果在时钟边沿前后输入端的数据不能在足够的时间内保持稳定,则边沿触发的触

?

?

?

?

?

?

?

???(?)?

67. 为了使触发器能正确工作,触发器输入端的数据必须在时钟有效沿之后足够长的时

间内保持稳定。??

入?

应?

?

?

?

?

?

?

?

?

用?

??

??

?

63. Verilog?HDL语句“always?#5?clk?=?~clk;”产生的时钟周期为5个时间单位。???(?)?

68. 时钟输出延时是指从时钟定义点到不同的触发器时钟引脚的延时差。?

FPGA嵌69. 引脚到引脚延时是指输入引脚处的信号经过时序逻辑进行传输,出现在外部引脚上

时所需的时间。??

?

?

?

???(?)?

70. 在定时验证中,完成定时验证内置的系统任务都有检查Verilog?HDL语法错误的功

能。?

?

?

?

?

?

?

???(?)?

二、 单项选择题(选择一个正确的答案,将相应的字母填入题内的括号中):

1. 目前应用最广泛的硬件描述语言是(???)。?

A. VHDL??????

B. Verilog?HDL??C. 汇编语言???D. C语言?

2. HDL语言的英文全称是(???)。?

A. Hard??Design?Language?B. Hard??Description?Language?

?

3级?

?

?

?

?

?

?

?

??

?

60. 基于仿真的验证的目的是来检验RTL模型与门级网表之间在功能上仿真是否相一

???(?)?

???(?)????(?)?

???(?)????(?)?

?

C. Hard?ware??Description?Language?D. Hardware??Design?Language?

3. Verilog?HDL与VHDL相比,其最大优点是(???)。?

A. 容易掌握??????B. 资源丰富??

C. 易于理解和设计重用??????????D. 便于文档管理?

(???)。?A. Verilog?HDL?B. VHDL?C. 汇编语言?D. C语言?

5. 下列关于Verilog?HDL语言模块的结构说法错误的是(???)。?

A. Verilog?HDL的基本设计单元是模块?

B. 一个模块由两部分组成,一部分描述接口,另一部分描述逻辑功能?

D. Verilog?HDL结构位于module和endmodule声明语句之间?6. 下列有关于Verilog?HDL模块的说法错误的是(???)。?

A. 模块的内容可以存在于module和endmodule两个语句之外?

B. 模块可以分为两种类型:一种是为了让模块最终能生成电路的结构,两一种只

FPGA嵌是为了测试设计电路的逻辑功能是否正确?

C. 每个模块要进行端口定义,并说明它是输出口还是输入口,然后对模块的功能

进行描述?

D. Verilog?HDL程序的书写格式自由,一行可以写几个语句,一个语句也可以分写

多行?

7. 一模块的I/O端口说明:“input?[7:0]?a;”,则关于该端口说法正确的是(???)。?

A. 输入端口,位宽为8????B. 输出端口,位宽为8?C. 输入端口,位宽为7????D. 输出端口,位宽为7?

8. 下列关于Verilog?HDL语言模块的端口定义说法错误的是(???)。?

A. 模块的端口表示的是模块的输入还是输出口名?B. 在端口的声明语句中可以进行I/O说明?

?

入式C. 每个Verilog?HDL程序包括3个主要部分:端口定义,I/O声明和功能定义?

应用3级4. 对于特大型(千万门级以上)的系统级数字电路设计,下列设计语言更为合适的是

?

C. 模块端口声明了模块的输入输出口,格式为:module?模块名(port1;?port?2;?

port3……);?

D. 模块的端口是它与其它模块联系端口的标识?

9. 下列关于Verilog?HDL语言模块的内容说法错误的是(???)。?

A. 模块的内容包括:I/O说明,内部信号声明和功能定义?B. I/O说明也可以写在端口声明语句里?

C. 内部信号声明是在模块内用到的和端口有关的wire类型变量的声明?

10. 下列不属于在模块中产生逻辑的方法是(???)。?

A. 用“assign”声明语句?B. 用实例元件?C. 用“always”块?D. 用“initial”块?

11. 下列模块的例化正确的是(???)。?

A. Mydesign?design(sin(sin),?sout(sout));?????????????B. Mydesign?design(.sin(sin),?.sout(sout));?

D. Mydesign?design(.sin(sin);?.sout(sout));?

12. 下列关于Verilog?HDL语言中模块的例化说法错误的是(???)。?

A. 在引用模块时,有些信号要被输入到引用模块中,有些信号要从引用模块中输

出?

FPGA嵌B. 在引用模块时,必须严格按照模块定义的端口顺序来连接?

C. 在引用模块时可以用“.”符号,表明原模块是定义时规定的端口名,用端口

名和被引用模块的端口相对应,提高程序的可读性和可移植性?

D. 在语句“Mydesign?design(?.port1(?port1),?.port2?(port2));”中,被引用的模块为

Mydesign模块?

13. 不属于Verilog?HDL中合法标识符的是(???)。?

A. 1_count?B. _count?C. count?D. count_1?

14. 下列Verilog?HDL的标识符无语法错误的是(???)。?

A. 1_R1_R2?B. COUNT?

?

入式C. Mydesign?design(.sin(sin),?.sout(sout););???????????

应用3级D. 模块内最重要的部分是逻辑功能定义部分,有3种方法可在模块内产生逻辑?

?

C. 5five$?D. $54RS?

15. 下列符号中属于Verilog?HDL语言中可以扩展至多行的注释符是(???)。?

A. /.../?B. //...//?C. /*...*/?D. #...#?

?begin:??reg[7:0]?tem;??/*count?=?0;??tem?=?rega;*/??while(tem)??begin?

?if(tem[0])??count?=?count?+1;??tem?=?tem?>>1;??end??end?

A. reg[7:0]?tem;?B. count?=?0;?

C. tem=rega;?

FPGA嵌D. count?=?0;?tem?=?rega;?

17. 下列关于Verilog?HDL语言中逻辑数值的说法错误的是(???)。?

A. Verilog?HDL语言中有下列四种基本的值:0、1、X、Z。?

B. 在门的输入或一个表达式中的为“Z”的值通常解释成“X”,且x值和z值区

分大小写。?

C. Verilog?HDL中的四种基本值的解释都内置于语言中,如一个为z的值总是意味

着高阻抗,一个为0的值通常是指逻辑0。?

D. Verilog?HDL中的常量是由四种基本值组成的。?

18. 下列关于Verilog?HDL语言中逻辑数值“x”和“z”的说法错误的是(???)。?

A. 在数字电路中,x代表不定值,z代表高阻值。?

B. x可以用来定义十六进制数的4位二进制数的状态,八进制数的3位,二进制

数的1位。?

C. z的表示方式同x类似,z还有一种表达方式是可以写作“?”。?

?

入式应用3级16. 下列Verlag?HDL程序块中,对功能实现不起作用的语句是(???)。?

?

D. ?“4'?b101z”表示位宽为4的二进制数,从低位数起第4位为高阻值。?19. 下列关于Verilog?HDL语言中常量说法错误的是(???)。?

A. 当常量不说明位数时,默认值是16位,每个字母用8位的ASCII值表示。?B. Verilog?HDL中有三种类型的常量:整型、实数型、字符串型。?

C. 下划线符号“_”可以用在整数或实数中,它们就数量本身没有意义,但下划

线符号不能用作首字符。?

D. 字符串是双引号内的字符序列,字符串不能分成多行书写。?

A. 4'D2?4位十进制数?B. 4'D‐4?4位十进制数?C. ?(2+3)'b10?五位二进制数?D. 32?十六进制数?

21. 下列关于Verilog?HDL语言中参数型说法错误的是(???)。?

A. 在Verilog?HDL中用parameter来定义常量,即用parameter来定义一个标识符

代表一个常量,称为符号常量。?

B. 采用一个标识符代表一个常量可以提高程序的可读性和可维护性。?

句表,在每一赋值语句的左边必须是一个常数表达式。?

D. parameter?型数据是一种常数型的数据,其说明格式为:parameter?参数名1=?

表达式,?参数名2=?表达式,?...?...,?参数名n=?表达式。?

22. 下列Verilog?HDL语言中参数型数据定义错误的是(???)。?

FPGA嵌A. parameter??msb=7;?//定义参数msb为常量7?B. parameter??e=25,?f=29;?//定义两个常数参数?

C. parameter??byte_size=8,?byte_size?‐?1?=?byte_msb;??//用常数表达式赋值?D. parameter??average_delay?=?(r+f)/2;??//用常数表达式赋值?

23. 下列关于Verilog?HDL语言中数据类型综述,说法错误的是(???)。?

A. Verilog?HDL有两大类数据类型:线网类型、寄存器类型。?

B. 线网数据类型表示结构实体之间的物理连接,线网类型的变量不能存储值。?C. 寄存器数据类型的关键字是reg,通过赋值语句可以改变寄存器存储的值,其

作用与改变触发器存储的值相当。?

D. 如果没有驱动元件连接到线网,线网的缺省值为X。?24. 下列关于Verilog?HDL语言中数据类型说法错误的是(???)。?

A. 线网类型数据表示Verilog结构化元件间的物理连线,它的值由驱动元件的值

决定。?

?

入式C. parameter是参数型数据的确认符,确认符后跟着一个用逗号分隔开的赋值语

应用3级20. 下列Verilog?HDL常量说法正确的是(???)。?

?

B. 寄存器数据类型表示一个抽象的数据存储单元,它只能在always语句中被赋

值。?

C. 线网类型数据包含不同种类的线网子类型,如:wire型、tri型等。?D. Verilog?HDL中存在5种不同的寄存器类型:reg型、integer型、time型、real

型和realtime型?

25. 下列关于Verilog?HDL语言中线网类型数据说法错误的是(???)。?

A. 线网类型数据表示Verilog结构化元件间的物理连线,它的值由驱动元件的值

B. 简单的线网类型说明语法为:net_kind?[msb:lsb]?net1,?net2,?...?,netn;?其中

net_kind是线网类型名,msb和lsb是用于定义线网范围的常量表达式。?

C. 当一个线网有多个驱动器时,即对一个线网有多个赋值时,不同的线网产生的

D. wire型数据常用来表示以assign关键字指定的组合逻辑信号,Verilog程序模

块中输入、输出信号类型默认时自动定义为wire型。?

26. 下列关于Verilog?HDL语言中线网类型数据说法错误的是(???)。?

A. 在进行线网类型数据说明时,如果没有定义线网的范围,缺省的线网类型为1

B. 在Verilog?HDL中,有可能不必声明某种线网类型,在这种情况下,缺省线网

类型为8位线网。?

C. 用于连接单元的连线是最常见的线网类型,连线与三态线网语法和语义一致,

三态线可以用于描述多个驱动源驱动同一根线的线网类型。?

FPGA嵌D. 线网数据类型包含不同种类的线网子类型,如:wire、tri、wor、trior等。?

27. 下列关于Verilog?HDL语言中寄存器类型数据说法错误的是(???)。?

A. 寄存器类型数据表示一个抽象的数据存储单元,它只能在always语句中被赋

值,寄存器类型的变量具有X的缺省值。?

B. 寄存器类型数据有5种不同的寄存器类型:reg型、integer型、time型、real

型和realtime型。?

C. 寄存器可以取任意长度,寄存器中的值通常被解释为无符号数。?D. 寄存器数据类型reg是最常见的数据类型,使用保留字reg加以说明。?

28. 下列Verilog?HDL语言中寄存器类型数据定义与注释矛盾的是(???)。?

A. reg?[3:0]?sat????//sat为4位寄存器?B. reg?cnt?????//cnt为1位寄存器?

C. reg?[0:3]?mymem?[0:63]?//mymem为64个4位寄存器的数组?D. reg?[1:5]?dig????//dig为4位寄存器?

?

入式位。?

应用行为相同。?

3级决定,如果没有驱动元件连接到线网,线网缺省值为z。?

?

29. 下列关于非阻塞赋值运算方式(如b<=a;)说法错误的是(???)。?

A. 块结束后才完成赋值操作?B. b的值立刻改变?

C. 在编写可综合模块时是一种比较常用的赋值方式?

D. 非阻塞赋值符“<=”与小于等于符“<=”意义完全不同,前者用于赋值操作,

后者是关系运算符,用于比较大小。?

30. 下列关于阻塞赋值运算方式(如b=a;)说法错误的是(???)。?

B. b的值在赋值语句执行完后立刻就改变的?

C. 在沿触发的always块中使用时,综合后可能会产生意想不到的结果?D. 在“always”模块中的reg型信号都采用此赋值方式?31. 下列不属于Verilog?HDL算术运算符的是(???)。?

A. +??????B. ‐?C. %??????D. =?

A. 进行取模运算时,结果值的符号位采用模运算式中第二个数的符号位?B. 在除法运算中,结果要略去小数部分,保留整数部分?

C. 在进行算术运算操作时,如果某一操作数中有不确定的值x,则整个结果也为

不定值x?

FPGA嵌D. 在Verilog?HDL语言中,算术运算符又称为二进制运算符?

33. 下列关于Verilog?HDL语言中逻辑运算符说法错误的是(???)。?

A. Verilog?HDL语言中逻辑运算符全为二目运算符?

B. 逻辑运算符中“&&”和“||”的优先级低于关系运算符,“!”高于算术运算

符?

C. Verilog?HDL语言中逻辑运算符包括“&&”,“||”和“!”?

D. 为提高程序的可读性,明确表达各运算符间的运算关系,可使用括号?

34. 逻辑操作符&&的功能是(???)。?

A. 与???B. 或???C. 非???D. 异或?

35. 在进行关系运算时,如果声明的关系是假的,则返回值是(???)。?

?

入式32. 下列关于Verilog?HDL语言中基本的算术运算符说法错误的是(???)。?

应用3级A. 赋值语句执行完后,块才结束?

?

A. 1??????B. 不定值?C. 0??????D. 不返回?

36. 下列关于Verilog?HDL语言中关系运算符说法错误的是(???)。?

A. Verilog?HDL语言中关系运算符共有4种,即“<”,“>”,“<=”和“>=”?B. 进行关系运算时,返回值只能是1或0?

D. 语句“a

37. 在下列Verilog?HDL运算符中,属于三目运算符的是(???)。?

A. &&??????B. !==?C. ?:?????D. ===?

38. 当a?<0时,s的值是(???)。?assign?s?=?(a?>=2?)???1?:?(a?

A. 0???B. 1????C. 2????D. 其他?

39. 下列关于Verilog?HDL语言的位运算符说法错误的是(???)。?

FPGA嵌A. 位运算符中除了“~”是单目运算符以外,均为二目运算符。?B. 位运算符中的二目运算符要求对两个操作数的相应位进行运算操作。?C. 不同长度的数据进行位运算时,系统会自动地将两者按左端对齐,位数少的操

作数会在相应的高位用0填满,以使两个操作数按位进行操作。?

D. Verilog?HDL提供了取反,按位与,按位或等5种位运算符。?

40. 执行语句“rega='?b1010;?rega=~?rega;”后,rega的值是(???)。?

A. '?b1010?

B. '?b0101?

C. '?b0000?D. '?b0001?

41. 在Verilog?HDL语言中的位拼接运算符是(???)。?

A. {?}????????B. ?

?

入式应用3级C. 所有关系运算符优先级相同,均低于算术运算符的优先级?

?

C. ?(?)?????????D. '?'?

42. 下列关于Verilog?HDL语言中拼接运算符说法错误的是(???)。?

A. 拼接运算符可以将两个或多个数的某些位拼接起来进行运算操作?

B. 拼接运算符的使用方法为:{信号1的某几位,信号2的某几位,…信号n的

某几位}?

C. 拼接表达式“{a,?b[3:0],?w,?3’b101}”等同于拼接表达式“{a,?b[3],?b[2],?b[1],?b[0],?

D. 拼接表达式中可以存在没有指明位数的信号?43. 有如下的模块:?

?module?shift;??reg[3:0]?start,?result;??initial;???begin;??start??=?1;??result?=?(start<<2);??end??endmodule?

程序运行完毕,result的值是(???)。?A. 4'?b0100??????B. 4'?b0010?

FPGA嵌C. 6'?b010000??????D. 4'?b0000?

44. 下列关于Verilog?HDL语言中移位运算符说法错误的是(???)。?

A. 在Verilog?HDL语言中有两种移位运算符:“<<”(左移位运算符)和“>>”(右

移位运算符)?

B. 移位运算符的使用方法是:“a>>n”或“a<

表要移几位?

C. 两种移位运算符都用0来填补移出的空位?

D. 如果不限定数值的位数,则表达式“4’?b1001>>1”的值为“5’?b01001”?45. 程序段如下:wire?[3:0]?B;???reg?C;?

?assign?B?=?4'?b1010;??C=&B;?

?

入式应用3级w,?1’b1,?1’b0,?1’b1}”?

?

则C的值是(???)。?

A. 4'?b1010???????B. 4'?b0000?C. 1'?b1????????D. 1'?b0?

46. 一元运算符是(???)。?

A. 单目运算符?????

C. 三目运算符?????D. 无操作数?

47. 下列关于信号电平事件的控制说法错误的是(???)。?

B. 电平敏感事件控制的形式为:wait?(condition)?procedural_statement。?C. 过称语句只有在条件为真时才执行,否则执行后续语句。?D. 过程语句是可选的。?

48. Verilog?HDL程序段如下,说法错误的是(???)。?

?sum?=?0;??wait(dataready)??data?=?bus;??wait?(preset);?

FPGA嵌A. 在第一条语句中,只有当sum的值大于22时,才对sum清零。?

B. 在第二条语句中,只有当dataready为真,即dataready值为1时,将bus赋

给data。?

C. 最后一条语句表示延迟至preset变为真(值为1)时,其后续语句方可继续执

行。?

D. 三条wait语句为顺序执行。?

49. 下列关于信号跳变沿事件的控制说法错误的是(???)。?

A. 带有事件控制的过程语句的执行,需等到指定事件发生。?

B. 跳变沿触发事件的控制方式可以为:@?event?procedural_statement,例如:

“always?@(posedge?clock)?curr_state?=?next_state;”。?C. 如果指定的事件未发生,则跳过过程语句,执行后续语句。?

D. 事件之间也能够相或以表明“如果有任何事件发生”,例如:@(posedge?clear?

or?negedge?reset)。?

?

入式?wait?(sum?>?22)?

应用A. 在电平敏感事件控制中,过程语句一直延迟到条件变为真后才执行。?

3级B. 双目运算符?

?

50. Verilog?HDL程序块如下,说法错误的是(???)。??begin?

?@(negedge?reset?)?count?=?0;??@?cla??zoo?=?foo;??end?

A. 在第二条语句中,赋值语句只在reset上的负沿执行。?

C. 当cla的值发生变化时,foo的值被赋给zoo。?

D. 第一次执行程序时,如果negedge?reset事件未发生,则跳过“count?=?0”执行

后续语句。?

51. 下列程序段无语法错误的是(???)。?

A. if?(?a>b)??out1?=?int1??else??out1?=?int2?

B. if?(a>b)??out1?=?int1;??else??out1?=?int2?

C. if?(a>b)?out1=?int1;?

FPGA嵌?else??if?(?a==b?)?;?{out1?=?int?2;}??else?????out1?=?int?3;?

D. if(a>b)?

?begin?

?out1<=int1;??out2<=int2;??end?

52. 下面语句中,信号a会被综合成(???)。?

?reg?[5:0]?a;?

?always?@(posedge?clk)????if?(ss>10)???????a?<=?20;??else?if?(ss?>?15)?

?

入式应用3级B. 第三条语句中,当cla上有事件发生时,foo的值被赋给zoo。?

?

?????a?<=?30;?

A. 寄存器???B. 锁存器???C. 连线资源???D. 其他?53. 程序段如下:??reg?[3:0]?result;?

?16?'?d0:?result?=?4?'?b1000;??16?'?d1:?result?=?4?'?b1001;??16?'?d2:?result?=?4?'?b1010;??16?'?d3:?result?=?4?'?b1011;??default:?result?=?4?'?b0000;??endcase?

如果rega的值为16?'?b2,则运行程序段后result的值是(???)。?

A. 4?'?b1010???????B. 4?'?b1011?C. 4?'?b0000???????D. 4?'?b1000?

54. 下列有关Verilog?HDL语言中case语句的说法,错误的是(???)。?

A. case括弧内的表达式称为控制表达式,case分支项中的表达式称为分支表达

FPGA嵌式。?

B. 当控制表达式的值与分支表达式的值相等时,就执行分支表达式后面的语句。?C. 如果所有的分支表达式的值都没有与控制表达式的值相匹配,就执行default

后面的语句。?

D. case语句所有表达式的值的位宽不要求完全相等。?

55. 下列程序段中无锁存器的是(???)。?

A. always?@?(al?or?d)?

?begin?

?if(al)??q<=?d;??end?

B. always?@?(al?or?d)??begin??if(al)???q<=d;?

?

入式应用3级?case(?rega)?

?

?if(!al)??q<=!d;??end?

C. always?@?(al?or?d)??begin??if(al)???q<=d;??else??

?end?

D. always?@?(sel[1:0]?or?a?or?b)??case(sel[1:0])??2'?b00:?q<=a;??2'?b11;?q<=b;??Endcase?

56. 下列不属于Verilog?HDL中所提供的3种形式的if语句的是(???)。?

A. if(表达式)语句????

?语句?1;?

????????else?

?语句?2;?

C. if(表达式1)?

?语句?1;?

FPGA嵌?else??if(表达式2)??语句?2;?

?else??if(表达式3)??语句?3;?

?else??if(表达式m)??语句?m;??else??????语句?n;?

D. if(表达式1)?

?语句?1;?

??????else?

?语句?2;?

57. 下列关于Verilog?HDL中repeat语句的说法错误的是(???)。?

A. repeat语句可以连续执行一条语句n次。?

B. repeat语句的格式为:repeat(判断表达式)?语句;,或repeat(判断表达式)?

begin?多条语句?end;。?

?

入式B. if(表达式1;?表达式2;?表达式3)?

应用3级?q<=0;?

?

C. 如果repeat后表达式的值不确定,即为x或z时,循环次数按零处理。?D. repeat循环语句与重复事件控制不同。?

58. Verilog?HDL程序段如下,执行后tem的值是(???)。??parameter??size?=?8;??reg[7:0]?tem;??repeat(size)??begin?

?end?

A. 0?B. 7?C. 8?D. 1?59. 程序段如下:??begin:??reg[7:0]?tem;??count?=?0;??tem?=?rega;??while(tem)?????

?begin?

?if(tem[0])??count?=?count?+1;??tem?=?tem?>>1;??end??end?

FPGA嵌如果rega的值为8?'?b10101011,则程序结束后,count的值是(???)。?

A. 4????????B. 5?

C. 6????????D. 7?

60. 下列关于Verilog?HDL中while语句的说法错误的是(???)。?

A. while循环语句的语法为:while(condition)?procedural_statement。?B. while循环语句循环执行过程赋值语句直到指定的条件为假。?C. while循环语句中的过程语句至少会被执行一次。?D. 如果条件表达式为x或z,它同样按0(假)处理。?

?

入式应用3级?tem?=?tem?+1;?

?

61. 在Verilog?HDL语言中,循环语句for(___;___;___)中三个参数依次是(???)。?

A. 循环变量赋初值;循环变量增值;循环结束条件?B. 循环变量赋初值;循环结束条件;循环变量增值?C. 循环变量增值;循环变量赋初值;循环结束条件?D. 循环结束条件;循环变量赋初值;循环变量增值?62. 下列关于Verilog?HDL中for语句的说法错误的是(???)。?

A. for循环语句的形式为:for(?initial_assignment;?condition;?step_assignment)?

B. 如上所列的for循环语句的语法,condition条件表达式指定循环结束的情况,

只要条件为真,则跳出循环。?

C. 如上所列的for循环语句的语法,step_assignment给出要修改的赋值,通常为

D. 循环语句按照指定的次数重复执行过程赋值语句若干次。?

63. 下列有关Verilog?HDL语言中循环语句的说法,错误的是(???)。?

A. forever循环语句常用于产生周期性波形,与always语句相同,可以独立写在

程序中。?

repeat(表达式)?begin?多条语句?end。?

C. while语句可以执行一条语句直到某个条件不满足,此语句也可能一次不被执

行。?

D. for语句的一般形式为:for(表达式1;?表达式2;?表达式3)语句。?

FPGA嵌64. 下列Verilog?HDL语言中for循环语句的执行步骤正确的是(???)。?

a?给控制循环次数的变量赋初值。?

b?执行一条赋值语句来修正控制循环变量次数的变量的值,然后返回上一步。?c?判定控制循环的表达式的值,如为假则跳出循环语句,如为真则执行指定的语句后,转入下一步。?

A. a??b??c?

B. a??c??b?C. c??b??a?D. c??a??b?

65. 下列有关任务(task)语句的说法,错误的是(???)。?

A. 任务可以支持多种目的,也可以计算多个结果值,这些结果值通过被调用的任

务的输出或总线端口送出。?

B. 如果传给任务的变量值和任务完成后接受结果的变量已定义,就可以用一条语

?

入式B. repeat?语句可连续执行一条语句n次,格式为:repeat(表达式)?语句;??或

应用增大或减小循环变量计数。?

3级procedural_statement。?

?

句启动任务,任务完成后控制就传回启动过程。?

C. 任务可以启动其他的任务,其他的任务又可以启动别的任务,可以启动的任务

数没有限制。?

D. 如果任务内部有定时控制,则启动的时间必须与控制返回的时间相同。?66. 下列有关任务(task)语句的说法,错误的是(???)。?

A. 任务定义的形式是:task?task_id;?[declarations]?procedural_statement?endtask。?B. 任务必须存在参数,值通过参数传入和传出任务。?

务调用中的顺序。?

D. 任务调用语句中参数列表必须与任务定义中的输入、输出和输入输出参数说明

的顺序匹配。?

A. 函数只能返回一个值,内部可以包含时延和时序控制。?B. 函数不可调用其他任务,但可以调用其他函数。?

C. 函数必须带有至少一个输入,在函数中允许没有输出或输入输出说明。?D. 函数定义中声明的所有局部寄存器都是静态的,函数中局部寄存器在函数的多

68. 在Verilog?HDL语言中,下列有关函数(FUNCTION)语句的说法,错误的是(???)。?

A. 函数的说明部分可以在模块说明中的任何位置出现,函数的输入是由输入说明

指定。?

B. 如果函数说明部分中没有指定函数的取值范围,则其缺省的函数值为1位二进

FPGA嵌制数。?

C. 函数的定义蕴含声明了与函数同名的,函数内部的寄存器,函数的定义把函数

返回值所赋值寄存器的名称初始化为与函数同名的内部变量。?

D. 函数中必须有输出或输入输出说明。?

69. 下列有关Verilog?HDL语言中task和function说明语句的比较,说法错误的是(???)。?

A. 函数只能与主模块共用同一个仿真时间单位,而任务可以定义自己的仿真时间

单位。?

B. 函数不能启动任务,而任务能启动其他任务和函数。?C. 函数和任务都至少要有一个输入变量。?D. 函数返回一个值,而任务则不返回值。?

70. Verilog?HDL语言中task和function说明语句的使用语法如下,错误的是(???)。?

A. 任务的定义语法:task?<任务名>;?<端口及数据类型声明语句>?<语句1>?<语句

2>?...<语句n>?endtask?

?

入式个调用之间保持它们的值。?

应用67. 下列有关函数(FUNCTION)语句的说法,错误的是(???)。?

3级C. 任务的输入和输出在任务开始处声明,这些输入和输出的顺序决定了它们在任

?

B. 任务的调用语法:<任务名>?(端口1;?端口2;?...;端口n);?

C. 函数定义的语法:function?<返回值的类型或范围>?(函数名);?<端口说明语句>?<

变量类型说明语句>?begin?<语句>?...?end?endfunction?D. 函数调用语法:<函数名>(expr1,?expr2,?...,?exprn)?

71. 下列关于Verilog?HDL语言的系统任务$monitor的说法,错误的是(???)。?

A. 在任意时刻对于特定的变量可以有多个监控任务被激活。?B. $monitoroff和$monitoron分别可以禁止和使能所有监控任务。?

D. 参数列表中输出控制格式字符串和输出表列的规则和$display中的一样。?72. Verilog?HDL程序段如下,则输出样本格式正确的是(???)。??initial?

$monitor(\??%t,?D?=?%d,?clk?=?%d\?$time,?D,?clk);?A. D?=?x,?clk?=?x?B. At?24,?D?=?x,?clk?=?1?C. At?%t,?D?=?%d,?clk?=?%d?D. At35D=xclk=1?

A. $time可以返回一个以64位的整数来表示当前的仿真时刻值。?B. $time显示时刻不受时间尺度比例的影响。?

C. 因为$time总是输出整数,所以在输出经过尺度比例变换的数字输出时,要先

进行取整。?

FPGA嵌D. 仿真时刻值是以模块的仿真时间尺度为基准的。?

74. 在Verilog?HDL语言中,有下列程序块,则输出是(???)。??'time?scale??10ns/1ns??module?test;??reg?set;?

?parameter?p=1.6;??initial??begin?

?$monitor($time,?,\??#p?set?=?0;??#p?set?=?1;??end??endmodule?

?

入式73. 下列关于Verilog?HDL语言中时间度量系统函数$time的说法错误的是(???)。?

应用3级C. 任务$monitor提供了监控和输出参数列表中的表达式或变量值的功能。?

本文来源:https://www.bwwdw.com/article/1elg.html

Top