本文已参与「新人创作礼」活动,一起开启掘金创作之路
- 下列关于Verilog动态位宽截取的说法错误的是( )
A. vect_testa[4+:3]表示,截取宽度为3,升序截取
B. vect[base+:width]或[base-:width]中,width可变,base必须为常量
C. Verilog的数据截取可采用[ ]或者{ }
D. vect_testb[4-:3] = vect_testb [6:4]
本题答案B,C,D. Verilog动态固定宽度截取,vect[base±:width],base表示起始位,width表示截取宽度,base可变,width必须为常量。
-
截取使用方括号[],拼接使用大括号{}。
-
vect[base+:width]表示升序截取,vect[base-:width]表示降序截取。 选项D,vect_testb[4-:3] = vect_testb [4:2] 本题漏选了B,将base和width看反了。
-
下列关于状态机的优点,正确的是() 1.一段式状态机只定义一个状态转移,即一段always时序逻辑,用于描述状态转移和输出。
2 . 二段状态机,第一段来描述现态的时序逻辑,第二段用组合逻辑描述状态转移和输出。
3,二段状态机因为存在组合逻辑,所以在信号改变时候容易出现无效的临时状态。\
- 三段式状态机,第一段用时序逻辑描述(现态);第二段用组合逻辑描述状态转移(次态);第三段用时序逻辑描述输出,第三段可以是多个always块。\
- 二段状态机中,为了减少代码长度,以便综合的面积,可以减少else情况。
-
本题正确的观点是1,2,3,4, 因为二段状态机是组合逻辑,在if中少写else,会产生锁存器
-
verilog设计中,当发生违例时,下列解决方式错误的是()
A. 发生hold违例,牺牲setup保持hold
B. 发生setup违例,修改设计
C. 发生hold违例,添加延迟模块(buf),增加数据的延迟
D. 发生setup违例,提升工作频率
本题正确答案是D,要降低工作频率,提高时钟周期,才可以解决,一般不推荐
$random的一般用法为:
- $random %b,其中b>0。它给出了一个范围在(-b+1):(b-1)中的随机数。
- {random} %b,其中b>0。它给出了一个范围在0:(b-1)中的随机数。 **随机数random% (-b+1,b-1)**
随机正数{$random}% (0,b-1)