牛客网刷题错题总结(三)

1.观察下面的代码,假设a的值为01000,则b的结果为()。

input signed [4:0] a;

output signed [4:0] b;

assign b=a>>>1;

A.00100

B.01100

C.00010

D.01010

官方解析:

对于有符号数来说:

若符号位为1,使用>>>,高位补1;

若符号位为0,使用>>>,高位补0;

对于无符号数来说,无论最高位是什么,使用>>>,高位都补0。

正确答案:A

2.下面交换a与b两个寄存器值,不正确的代码是

A.always @(posedge clk) begin a = b ; end always @(posedge clk) begin b = a; end

B.always @(posedge clk) begin a <= b ; end always @(posedge clk) begin b <= a; end

C.always @(posedge clk) begin temp = a ; a = b ; b = temp ; end

官方解析:解析:
A中2 个 always 块中的语句是同时进行的,但是 a=b 与 b=a 是无法判定执行顺序的,这就造成了竞争的局面。但不管哪个先执行(和编译器等有关系),不考虑 timing 问题时,他们执行顺序总有先后,最后 a 与 b 的值总是相等的。没有达到交换 2 个寄存器值的效果。
B中2 个 always 块中语句并行执行,赋值操作右端操作数使用的是上一个时钟周期的旧值,此时 a<=b 与 b<=a 就可以相互不干扰的执行,达到交换寄存器值的目的。
C中代码是顺序执行,也可以实现交换寄存器值的功能。

正确答案:A

3.在Verilog的算数运算中,11%-3的结果为(),-10%3的结果为()

A.2,1

B.2,-1

C.-2,1

D.-2,-1

官方解析:

在进行取模运算时,结果值的符号位采用模运算式里第一个操作数的符号位。

正确答案:B

4.下面有A、B两条语句。

A语句为if(flag==1'bx) $display("Yes");

B语句为if(flag===1'bx) $display("Yes");

当flag=1'bx时,判断A、B语句是否执行?

A.A语句执行,B语句也执行

B.A语句执行,B语句不执行

C.A语句不执行,B语句执行

D.A语句不执行,B语句也不执行

官方解析:

下面是===和==的真值表。

===01xz
01000
10100
x0010
z0001
==01xz
010xx
101xx
xxxxx
zxxxx

正确答案:C 

5.

下列关于主从D触发器工作原理描述错误的是()

A.当D=0时,Q‘非=1,Q’=0

B.当D=0时,TG1导通,TG2断开,输入信号D送入主锁存器,从锁存器维持在原来的状态不变

C.当C从0跳变到1后,Q’非保持不变

D.当C从0跳变到1时,主锁存和从锁存器都开始工作,传输信号

官方解析:

主锁存器保持,从锁存器接收来自主锁存器的信号

正确答案:D

6.关于同步FIFO设计中,data_in是输入数据,data_out是输出数据,wr_en是写使能,rd_en是读使能,full是写满标志,empty是读空标志,fifo_data_cnt为内部的计数器,Deepth_fifo为FIFO的深度,下列描述错误的是()

A.FIFO 的场景分为几种,Read,Write,No ReadNo Write,BothRead Write,需要考虑所有情况的处理

B.fifo_data_cnt,当复位的时候,为 0,当未读未写的时候,维持不变;当仅读未写,同时 FIFO 不空的时候,-1;当仅写未读同时 FIFO 不满的时候,+1;当同时读写的时候,维持不变

C.当读使能的时候,并且 FIFO 不空,那么将读指针地方的数据读出到 data_out,当写使能的时候,并且 FIFO 不满,那么将 data_in 写指针地方的数据打到 FIFO 内部

D.FIFO 满的逻辑是判断 fifo_data_cnt为0时, 或者读写指针相同。

官方解析:

当cnt为Deepth_fifo或为(Deepth_fifo-1)但正在写,满标准为1,其他情况为0

正确答案:D

7.

列关于case描述,错误的是()

A.一般来说,使用最多的是CASE语句,casez和casex基本上很少使用

B.case语句的表达式的值有4中情况:0、1、z、x。4种是不同的,故表达式要严格的相等才可以操作分支语句

C.casez语句中的表达式情况有三种:0、1、x。不用关心z,z可以和任何数值相等,即z =0.z= 1,z=x

D.casex语句的表达式情况有二种:0、1、z,不用关心x

官方解析: casex语句的表达式情况有二种:0、1.不用关心x和z。即x=z=0,x=z=1

正确答案:D

8.用verilog建立可综合模型的原则,以下不正确的是

A.不使用用户自定义原语

B.混合使用上升沿和下降沿触发的触发器

C.用always过程块描述组合逻辑,应在敏感信号列表中列出所有的输入信号

D.同一个变量的赋值不能受多个时钟控制,也不能受两种不同的时钟条件(或者不同的时钟沿)控制。

官方解析:

敏感列表里同时带有posedge和negedge

    如:always @(posedge clk or negedgeclk) begin...end

    这个always块不可综合。

故B错误

建立可综合模型的原则

    要保证Verilog HDL赋值语句的可综合性,在建模时应注意以下要点:

    (1)不使用初始化语句。

    (2)不使用带有延时的描述。

    (3)不使用循环次数不确定的循环语句,如forever、while等。

    (4)不使用用户自定义原语(UDP元件)。

    (5)尽量使用同步方式设计电路。

    (6)除非是关键路径的设计,一般不采用调用门级元件来描述设计的方法,建议采用行为语句来完成设计。

    (7)用always过程块描述组合逻辑,应在敏感信号列表中列出所有的输入信号。

    (8)所有的内部寄存器都应该能够被复位,在使用FPGA实现设计时,应尽量使用器件的全局复位端作为系统总的复位。

    (9)对时序逻辑描述和建模,应尽量使用非阻塞赋值方式。对组合逻辑描述和建模,既可以用阻塞赋值,也可以用非阻塞赋值。但在同一个过程块中,最好不要同时用阻塞赋值和非阻塞赋值。

    (10)不能在一个以上的always过程块中对同一个变量赋值。而对同一个赋值对象不能既使用阻塞式赋值,又使用非阻塞式赋值。

    (11)如果不打算把变量推导成锁存器,那么必须在if语句或case语句的所有条件分支中都对变量明确地赋值。

    (12)避免混合使用上升沿和下降沿触发的触发器。

    (13)同一个变量的赋值不能受多个时钟控制,也不能受两种不同的时钟条件(或者不同的时钟沿)控制。

    (14)避免在case语句的分支项中使用x值或z值。

正确答案:B

9.在 Verilog 中,可以利用函数(关键字为 function)将重复性的行为级设计进行提取,并在多个地方调用,来避免重复代码的多次编写,使代码更加的简洁、易懂。关于函数不正确的是

A.函数可以调用其他函数

B.只有一个返回值或输出

C.不含有非阻塞赋值语句

D.不含有任何延迟、时序或时序控制逻辑

官方解析:函数只有一个返回值,且没有输出

正确答案:B

10对于一般的逻辑电平,各参数需满足如下________的关系

A.Voh>Vih>Vt>Vol>Vil;

B.Vih>Voh>Vt>Vol>Vil

C.Voh>Vih>Vt>Vil>Vo1

D.Vih>Voh>Vt>Vil>Vol

官方解析:TTL电路和CMOS电路的逻辑电平关系如下:

输入高电平-Vih:逻辑电平1的输入电压,保证逻辑门的输入为高电平时,所允许的最小输入高电平,当输入电平高于Vih时,则认为输入电平为高电平。

输入低电平-Vil:逻辑电平0的输入电压,保证逻辑门的输入为低电平时所允许的最大输入低电平,当输入电平低于Vil时,则认为输入电平为低电平。

输出高电平-Voh:逻辑电平1的输出电压,保证逻辑门的输出为高电平时的输出电平的最小值,逻辑门的输出为高电平时的电平值都必须大于此Voh。

输出低电平-Vol:逻辑电平0的输出电压,保证逻辑门的输出为低电平时的输出电平的最大值,逻辑门的输出为低电平时的电平值都必须小于此Vol。

阀值电平-Vt:数字电路芯片都存在一个阈值电平,就是电路刚刚勉强能翻转动作时的电平。它是一个界于Vil、Vih之间的电压值,对于CMOS电路的阈值电平,基本上是二分之一的电源电压值,但要保证稳定的输出,则必须要求输入高电平> Vih,输入低电平<Vil,而如果输入电平在阈值上下,也就是Vil~Vih这个区域,电路的输出会处于不稳定状态。

正确答案:C

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值