首发来自微信公众号:数字芯片设

11.多bit总线信号可以通过格雷码转换进行异步处理,例如:8bit的数据总线进行格雷码转换,然后通过双触发器法实现异步处理()
【A】正确
【B】错误

解析;注意这题用的词是“可以”!多bit信号是可以通过转换成格雷码然后打拍进行跨时钟域的,比如异步FIFO的地址跨时钟域,利用了相邻的两个地址二进制码转化成格雷码后,只有1bit不同。在传输连续的二进制码时,转化成格雷码巧妙地将多bit的翻转转化成了1bit的翻转,然后问题变成了单bit的跨时钟域问题,利用双触发器就可以实现异步处理。

正确答案:A

12.SystemVerilog中,下面哪种数组在使用前需要先执行new操作()
【A】压缩数组
【B】联合数组
【C】动态数组
【D】多维数组

解析:动态数组在最开始时是空的,使用前,必须调用new[]操作符来分配空间,同时在方括号中传递数组宽度。

正确答案:C

13.电路设计中,只要采用STA就可以保证电路设计的准确性,不需要再进行动态时序分析了()
【A】正确
【B】错误

解析:现在大部分的同步电路设计流程都是RTL验证+Formality形式验证+STA静态时序分析。通过RTL验证保证功能完备,通过Formality保证rtl和网表一致性。因为有了Formality保证网表和RTL的一致性,因此如果RTL验证完备,一般情况下就可以保证网表功能验证完备。然后通过对网表进行静态时序分析(STA)来保证没有时序风险。动态时序分析(后仿)主要是跑一些典型场景,保证在典型场景下不会有时序问题,增强设计信心,对于同步电路,只要STA阶段检查仔细,问题一般不大。但是设计中难免会有一小部分异步电路无法进行静态时序分析,因此必须需要通过后仿来进行排查。

此题解析来自于:

https://blog.csdn.net/gemengxia/article/details/108382535

正确答案:B

14.对于initial语句,说法错误的是()
【A】在仿真过程中只执行一次
【B】这是一种过程结构语句
【C】在模拟的0时刻开始执行
【D】可用于给实际电路赋初值

解析;initial语句不能综合,所以不可以给实际电路赋初值。常用于仿真测试模块中对于激励向量的描述。

正确答案:D

15.线型信号必须显式定义()
【A】正确
【B】错误

解析:Verilog程序模块中输入、输出信号类型默认自动定义为wire型,可以不用显式定义。

正确答案:B

16.以下名称不属于Verilog关键字的是()
【A】genvar
【B】endcase
【C】cmos
【D】cnt

解析:关键字genvar用于声明生成变量;case、endcase描述多分支语句;Verilog还可以在低抽象级别对电路进行描述,并提供了多种晶体管级(也称开关级)元件类型,包括N型金属氧化物半导体场效应管(关键字为nmos)、P型金属氧化物半导体场效应管(关键字为pmos)、互补式金属氧化物半导体(关键字为cmos)、带阻抗的互补式金属氧化物半导体(关键字为rcmos)、电源单元(关键字为supply1)、接地单元(关键字为supply0)等。cnt不是Verilog的关键字。

正确答案:D

17.当功能覆盖率达到100%,可以说明()
【A】功能覆盖率对应的DUT响应是正确的
【B】某些令人关注的情况已经得到测试覆盖
【C】DUT的功能点已经100%覆盖
【D】意味着验证的完整性

解析:功能覆盖率是通过cover语句来收集电路中信号的翻转情况,保证在大规模随机回归的情况下令人关注的信号是否翻转到期望的值。一些特定信号翻转到期望的值表示一种场景的出现,比如fifo的满信号从0到1表示fifo满的场景被覆盖到。因此b是正确的。
a是错误的,因为被覆盖到不意味着电路的响应是正确的,只是被测试到。
c是错误的。功能覆盖的cover语句是验证人员根据自己的测试点提取来写的,并不一定是所有的功能点,只能说验证人员关注的功能点被覆盖。
d是错误的,功能点都不能保证是100%,更不用说验证完整了。验证完整这句话不是随便可以说的,即便是真的做足了各种验证工作,都要对可能的疏忽保持敬畏之心。芯片的流片成功并不容易。

此题解析来自于:

https://blog.csdn.net/gemengxia/article/details/108382535

正确答案:B

18.下面表达式正确的是()
【A】a = 4'df;
【B】c = 3'd8;
【C】b = 5'h1;
【D】d = 3'b2;

解析;非常基础的题。<位宽>’<进制><数字>;二进制用b或B表示,十进制用d或D表示,十六进制用h或H表示,八进制用o或O表示。

正确答案:C

19.RTL代码是测试点的一个重要来源()
【A】正确
【B】错误

解析:黑盒测试直接通过对产品功能定义的解读,完成端到端测试,通过输入导出预期输出,无需了解中间的RTL代码。白盒测试则是通过对RTL代码的解读,分解出代码实现过程中可能出的问题,但是黑盒测试又不容易测试出来的点,利用断言进行检测。因此RTL代码是白盒测试点的一个重要来源。灰盒测试则介于黑盒和白盒之间,通过定向用例测试一些RTL内部实现的细节,观察其输出正确性,辅以断言检测。

此题解析来自于:

https://blog.csdn.net/gemengxia/article/details/108382535

正确答案:A

20.时序电路中,既可以使用阻塞赋值,也可以使用非阻塞赋值()
【A】正确
【B】错误

解析:原则:1、时序电路建模时,用非阻塞赋值;2、锁存器电路建模时,用非阻塞赋值;3、用always块写组合逻辑时,采用阻塞赋值;4、在同一个always块中同时建立时序和组合逻辑电路时,用非阻塞赋值;5、在同一个always块中不要同时使用非阻塞赋值和阻塞赋值;6、不要在多个always块中为同一个变量赋值;7、用$strobe系统任务来显示用非阻塞赋值的变量值;8、在赋值时不要使用#0延迟。

遵循以上原则,有助于正确的编写可综合硬件,并且可以消除90%-100%在仿真时可能产生的冒险竞争现象。

参考:夏宇闻版《Verilog数字系统设计教程》P164

正确答案:B

ce29c775260c3c9851d98f1f170fd920.png

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐