声明
下面的题目作答都是自己认为正确的答案,并非官方答案,如果有不同的意见,可以评论区交流。
这些题目也是笔者从各个地方收集的,感觉有些题目答案并不正确,所以在个别题目会给出自己的见解,欢迎大家讨论。
题目
1、影响芯片成本的主要因素是 Die Size 和封装,但电源、时钟等因素,特别是功耗对解决方案的成本影响较大,因此低成本设计需要兼顾低功耗设计:()
A. 错误
B. 正确
正确答案:B
2、reg [31:0] big_vect; 那么 big_vect[0+:8] 是多少?()
A. big_vect[0:7]
B. big_vect[7:0]
正确答案:B
解析:
首先查看变量big_vect的大小端,记住一点,转化后的与原来的大小端是一样的定义方式
reg [31:0] big_vect;为大端,那么转化后的也一定是大端,形式不变
big_vect[0 +:8]转化后一定是 big_vect[较大的数值 : 较小的数值]
little_vect[0 +:8] 转化后一定是 little_vect[较小的数值 : 较大的数值]
3、generate 语句中的循环控制变量应该定义为 integer 类型()
A. 错误
B.正确
正确答案:B
解析:定义的类型是 genvar,for 才是 integer
4、o10 换算成十进制是多少?()
A. 8
B.16
C.10
D. 2
正确答案:A
5、哪些情况下不会产生 Latch 电路?()
A.组合逻辑中条件不全的 case 语句没有 default 赋值
B. 时序逻辑中 if 选择语句,没有 else 部分表达
C. 使用 if 选择语句的组合逻辑没有 else 部分表达
D. 使用 case 选择语句的组合逻辑没有 else 表达
正确答案:B
解析:时序逻辑不会生成锁存器
6、关于类的构造函数,以下说法中正确的有()
A. 函数体中必须有 new 语句
B. 返回类型是 void 类型
C. 函数名与齐类名完全相同
D. 不能有形参
正确答案:B
解析:
A. 函数体中必须有 new 语句:这个说法不准确。构造函数本身就是用来创建和初始化类的实例的特殊函数,称为new。它不是说函数体中必须包含new语句,而是这个特殊的函数本身就叫做new。
B. 返回类型是 void 类型:这是正确的。构造函数没有返回类型,即使在其他编程语言中,构造函数也不会有返回值。在SystemVerilog中,构造函数new的声明没有指定返回类型,因此可以认为它的“返回类型”是void。
C. 函数名与其类名完全相同:这个说法在SystemVerilog中不适用。在一些其他面向对象的编程语言中,如C++和Java,构造函数的名称确实与类名相同。但在SystemVerilog中,构造函数统一命名为new。
D. 不能有形参:这个说法是错误的。在SystemVerilog中,构造函数new是可以有参数的,这允许在创建类的实例时进行初始化操作。
综上所述,正确的说法是 B. 返回类型是 void 类型。其他选项在SystemVerilog中的类构造函