影响芯片成本的主要因素是 Die Size 和封装,但电源、时钟等因素,特别是功耗对解决方案的成本影响较大,因此低成本设计需要兼顾低功耗设计:()
低成本设计不仅需要优化 Die Size 和封装,还需要考虑功耗、电源和时钟等因素,特别是低功耗设计对降低成本至关重要。
正确答案:B. 正确
reg [31:0] big_vect; 那么 big_vect[0+:8] 是多少?()
选项 | 描述 | 正误 |
---|---|---|
A | big_vect[0:7] | 正确 |
B | big_vect[7:0] | 错误 |
//下面 2 种赋值是等效的
A = data1[31-: 8] ;
A = data1[31:24] ;
//下面 2 种赋值是等效的
B = data1[0+ : 8] ;
B = data1[0:7] ;
参考答案:https://www.runoob.com/w3cnote/verilog-data-type.html
正确答案:A. big_vect[0:7]
generate 语句中的循环控制变量应该定义为 integer 类型()
for
)结合使用。generate
语句中,循环控制变量通常定义为 genvar 类型,而不是 integer 类型。
generate
语句中的循环变量。generate
语句。选项 | 描述 | 正误 |
---|---|---|
A | 错误 | 正确 |
B | 正确 | 错误 |
正确答案:A. 错误
o10 换算成十进制是多少?()
A. 8
B. 16
C. 10
D. 2
这道题考察的是 八进制(Octal) 数转换为 十进制(Decimal) 数的基本知识。
o
或 O
用于标识八进制数。将八进制数 o10
转换为十进制:
0
1
因此,o10
的十进制值为 8。
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 8 | 正确 | 计算结果为 8 |
B | 16 | 错误 | 16 是十六进制 0x10 的十进制值 |
C | 10 | 错误 | 10 是十进制 10 的值 |
D | 2 | 错误 | 2 是二进制 10 的十进制值 |
o
或 O
,例如 o10
。0x
或 0X
,例如 0x10
。0b
或 0B
,例如 0b10
。正确答案:A. 8
哪些情况下不会产生 Latch 电路?()
A. 组合逻辑中条件不全的 case 语句没有 default 赋值
B. 时序逻辑中 if 选择语句,没有 else 部分表达
C. 使用 if 选择语句的组合逻辑没有 else 部分表达
D. 使用 case 选择语句的组合逻辑没有 else 表达
Latch 电路通常在 组合逻辑 中由于 条件不全 而产生,例如:
else
分支。default
分支。在 时序逻辑 中,由于寄存器的存在,不会产生 Latch。
选项 | 描述 | 是否产生 Latch | 依据 |
---|---|---|---|
A | 组合逻辑中条件不全的 case 语句没有 default 赋值 | 会产生 Latch | 组合逻辑中条件不全会导致 Latch |
B | 时序逻辑中 if 选择语句,没有 else 部分表达 | 不会产生 Latch | 时序逻辑中寄存器的存在避免了 Latch |
C | 使用 if 选择语句的组合逻辑没有 else 部分表达 | 会产生 Latch | 组合逻辑中条件不全会导致 Latch |
D | 使用 case 选择语句的组合逻辑没有 else 表达 | 会产生 Latch | 组合逻辑中条件不全会导致 Latch |
正确答案:B
关于类的构造函数,以下说法中正确的有()
A. 函数体中必须有 new 语句
B. 返回类型是 void 类型
C. 函数名与其类名完全相同
D. 不能有形参
void
)。new
。选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 函数体中必须有 new 语句 | 错误 | 构造函数不需要显式调用 new |
B | 返回类型是 void 类型 | 错误 | 构造函数没有返回类型 |
C | 函数名与其类名完全相同 | 正确 | 构造函数名必须与类名相同 |
D | 不能有形参 | 错误 | 构造函数可以有形参 |
正确答案:C
中断指示寄存器由实时告警的状态触发,是只读寄存器。()
A. 错误
B. 正确
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 错误 | 错误 | 中断指示寄存器通常是只读的 |
B | 正确 | 正确 | 中断指示寄存器由硬件状态触发,软件只能读取 |
正确答案:B
下面的选项中关于宏定义的说法不正确的是?()
A. 宏定义文件最好放在一个文件中集中管理,防止出现不同项目需要修改为不同的宏定义值,但是却漏改了某些地方的情况出现。
B. 综合的时候,define 可以跨文件列表生效
C. 如果模块中有很多宏定义,在模块的文件列表最后需要 undef 掉使用的宏,防止和其他模块的宏定义冲突。
D. 仿真时如果出现宏定义冲突,后面的 define 值会覆盖前面的 define 值
define 宏定义是全局的,从定义点开始到编译结束都有效,除非显式地用
undef` 取消定义。选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 宏定义文件最好集中管理,防止漏改 | 正确 | 集中管理宏定义可避免维护问题 |
B | 综合时 define 可以跨文件列表生效 |
正确 | define 是全局的,综合和仿真均支持跨文件 |
C | 模块最后需要 undef 宏防止冲突 |
不正确 | 通常不需要主动 undef ,除非有特殊需求 |
D | 仿真时宏定义冲突,后面的覆盖前面的 | 正确 | 宏定义冲突时,后定义的生效 |
undef
宏定义并不是常规做法,反而可能导致后续代码无法使用该宏。undef
。正确答案:C
在 SystemVerilog 中,任务(task)可以调用函数(function)。()
A. 错误
B. 正确
特性 | 任务(task) | 函数(function) |
---|---|---|
返回值 | 可以没有返回值,或通过 output/inout 参数返回 | 必须返回一个值(通过 return 或同名的变量) |
耗时操作 | 可以包含时间控制语句(如 #, @, wait) | 不能包含任何时间控制语句 |
调用方式 | 可以调用 function 和 task | 只能调用 function,不能调用 task |
用途 | 用于需要延迟或事件触发的操作 | 用于纯计算逻辑,无延迟 |
function int add(int a, int b);
return a + b;
endfunction
task calculate;
int sum;
sum = add(3, 4); // task 调用 function
$display("Sum = %0d", sum);
endtask
#10
),而 function 必须立即返回,不能等待。正确答案:B. 正确
假设输入信号 X 位宽为 12bit,inA 位宽为 6 bit,inB 位宽为 17bit,实现 Y = X*inA + inB 功能,并要求不损失精度,那么输出信号 Y 位宽应不小于()?
A. 17bit
B. 12bit
C. 18bit
D. 19bit
乘法运算(X * inA):
加法运算(X*inA + inB):
正确答案:D. 19bit
reg [7:0] mem [1:256]; initial $readmemh(“mem.data”, mem, 128, 1);对于 mem 行为正确的描述是()?
A. 从地址128开始,写到地址1
B. 从地址128开始,写1个地址
C. 从地址1开始,写128个地址
$readmemh("file", mem, start, end)
:
$readmemh("mem.data", mem, 128, 1)
:
正确答案:A. 从地址128开始,写到地址1
九进制数 16 与九进制数 27 相加的结果用九进制表示为()?
A. 45.0
B. 46.0
C. 43.0
D. 44.0
九进制数 16:
九进制数 27:
相加结果:
转换为九进制:
正确答案:D. 44.0
有关 DFT,以下说法不正确的是()?
A. scan 的设计规则,需保证时钟复位可控
B. ECO 时无须关注 DFT 网表
C. 主流的 scan 方式采用 MUX‐DFF
D. MBIST 指的是对 memory 的 BIST 测试
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | scan 的设计规则,需保证时钟复位可控 | 正确 | DFT 要求时钟和复位可控 |
B | ECO 时无须关注 DFT 网表 | 不正确 | ECO 需要同步更新 DFT 网表 |
C | 主流的 scan 方式采用 MUX‐DFF | 正确 | MUX-DFF 是主流 scan 方式 |
D | MBIST 指的是对 memory 的 BIST 测试 | 正确 | MBIST 是 memory 的内建自测试 |
正确答案:B. ECO 时无须关注 DFT 网表
对芯片性能影响最大的三个因素是 PVT,分别是指?()
A. package, voltage, temperature
B. process, voltage, temperature
C. process, verification, temperature
D. process, voltage, test
PVT 是芯片设计和性能分析的三个关键因素:
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | package, voltage, temperature | 错误 | “package” 不是 PVT 的组成部分 |
B | process, voltage, temperature | 正确 | 标准 PVT 定义 |
C | process, verification, temperature | 错误 | “verification” 不属于 PVT |
D | process, voltage, test | 错误 | “test” 不属于 PVT |
正确答案:B. process, voltage, temperature
下面这段代码,说法错误的是()?
always @(posedge clk) begin
din_dly <= din;
end
A. din_dly 用来当控制信号是安全的
B. din_dly 不受复位影响
C. 数据寄存推荐这样的写法
D. din 的不定态会传递到 din_dly
din_dly
在每个时钟上升沿采样 din
。din_dly
不受复位影响。din
为不定态(X),din_dly
也会传递不定态。选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | din_dly 用来当控制信号是安全的 | 错误 | 没有复位信号,din_dly 可能为不定态,不安全 |
B | din_dly 不受复位影响 | 正确 | 代码中没有复位信号 |
C | 数据寄存推荐这样的写法 | 正确 | 这是标准的 D 触发器写法 |
D | din 的不定态会传递到 din_dly | 正确 | 不定态会传递 |
正确答案:A. din_dly 用来当控制信号是安全的
关于功耗,以下描述不正确的是()
A. 改变芯片的供电电压和时钟频率都会对芯片功耗产生影响
B. 设计者需要关注平均功耗、峰值功耗和功耗跳变
C. 芯片的功耗会受实际信号的影响,所以功耗测试需要结合业务来开展
D. 对于可关断的模块,使用时钟门控即可降低功耗
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 改变芯片的供电电压和时钟频率都会对芯片功耗产生影响 | 正确 | 电压和频率是功耗的主要影响因素 |
B | 设计者需要关注平均功耗、峰值功耗和功耗跳变 | 正确 | 这些是功耗设计的关键指标 |
C | 芯片的功耗会受实际信号的影响,所以功耗测试需要结合业务来开展 | 正确 | 实际信号会影响动态功耗 |
D | 对于可关断的模块,使用时钟门控即可降低功耗 | 不正确 | 可关断模块应使用电源门控,时钟门控仅降低动态功耗 |
正确答案:D. 对于可关断的模块,使用时钟门控即可降低功耗
为实现占空比 50% 三分频时钟,正确的电路描述是()?
要实现 占空比50%的三分频时钟,必须结合 上升沿和下降沿 的计数结果,通过逻辑运算合成。
关键点:
假设原始时钟周期为 T,三分频后周期为 3T。
时钟边沿 | 时钟A(上升沿生成) | 时钟B(下降沿生成) | A OR B(输出时钟) |
---|---|---|---|
0T | 1(高电平) | 0(低电平) | 1 |
1T | 0 | 1(下降沿触发) | 1 |
2T | 0 | 0 | 0 |
3T | 1(下一个周期) | 0 | 1 |
波形示意图:
原始时钟: _|‾|_|‾|_|‾|_|‾|_|‾|_|‾|_ (周期 T)
时钟A: ‾|___|‾|___|‾ (占空比 1/3,上升沿触发)
时钟B: _|‾|___|‾|___|‾ (占空比 1/3,下降沿触发)
输出: ‾|‾|___|‾|‾|___|‾ (占空比 50%,A OR B)
选项 | 方法描述 | 问题 | 结果 |
---|---|---|---|
A | 上升沿生成1/3 + 上升沿生成2/3,相或 | 2/3占空比无法合成50% | 错误 |
B | 上升沿生成1/3 + 下降沿生成1/3,相与 | 相与会缩短高电平时间 | 错误 |
C | 上升沿生成1/3 + 下降沿生成1/3,相或 | 正确合成50%占空比 | 正确 |
D | 上升沿生成1/3 + 上升沿生成2/3,相与 | 逻辑错误 | 错误 |
正确答案:C
关键步骤:
关于冯诺依曼结构和哈佛结构的描述中,错误的是()?
A. 冯诺依曼接口中程序计数器负责提供程序执行所需要的地址
B. 哈佛结构中取指令和执行不能完全重叠
C. 冯诺依曼结构的计算机中数据和程序共用一个存储空间
D. 哈佛结构的计算机在一个机器周期内科同时获得指令和操作数
特性 | 冯诺依曼结构 | 哈佛结构 |
---|---|---|
存储空间 | 数据和程序共用 | 数据和程序分离 |
取指与执行 | 不能完全重叠 | 可以完全重叠 |
地址提供 | 程序计数器提供地址 | 程序计数器提供地址 |
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 冯诺依曼接口中程序计数器负责提供程序执行所需要的地址 | 正确 | 程序计数器提供地址 |
B | 哈佛结构中取指令和执行不能完全重叠 | 错误 | 哈佛结构可以完全重叠 |
C | 冯诺依曼结构的计算机中数据和程序共用一个存储空间 | 正确 | 冯诺依曼结构的特点 |
D | 哈佛结构的计算机在一个机器周期内科同时获得指令和操作数 | 正确 | 哈佛结构的特点 |
正确答案:B
状态机必须有1个缺省状态?()
A. 正确
B. 错误
正确答案:A. 正确
a1 和 a2 的检查效果完全一样?()
property p1;
@(posedge clk) a |=> b |=> c;
endproperty
a1: assert property(p1);
property p2;
@(posedge clk) a ##1 b ##1 |-> c;
endproperty
a2: assert property(p2);
A. 正确
B. 错误
p1:a |=> b |=> c
a |=> b
:如果 a
为真,则在下一个时钟周期 b
必须为真。b |=> c
:如果 b
为真,则在下一个时钟周期 c
必须为真。a
为真后,b
和 c
分别在接下来的两个时钟周期为真。p2:a ##1 b ##1 |-> c
a ##1 b
:a
为真后,b
在下一个时钟周期为真。b ##1 |-> c
:b
为真后,c
在下一个时钟周期为真。a
为真后,b
和 c
分别在接下来的两个时钟周期为真。p1
和 p2
的逻辑效果完全一致。
正确答案:A. 正确
以下关于 false-path,正确的是()?
A. 一般模拟 IP 和系统的互联接口都可以设置为 false-path
B. 一般异步电路可以设置为 false-path
C. 一般异步复位可以设置为 false-path
D. 两个不同频率之间的接口一定可以设置为 false-path
False-path 是指在时序分析中不需要检查的路径,通常用于以下情况:
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 一般模拟 IP 和系统的互联接口都可以设置为 false-path | 错误 | 模拟 IP 和数字系统的接口通常需要时序检查 |
B | 一般异步电路可以设置为 false-path | 正确 | 异步电路通常不需要时序检查 |
C | 一般异步复位可以设置为 false-path | 正确 | 异步复位信号通常不需要时序检查 |
D | 两个不同频率之间的接口一定可以设置为 false-path | 错误 | 跨时钟域接口需要特殊处理(如同步器),不能直接设为 false-path |
正确答案:B, C
在 Verilog 中,比算数运算符 + 优先级高的是?()
A. &
B. %
C. >
D. !==
从高到低:
!
、~
(逻辑非、按位非)*
、/
、%
(乘、除、取模)+
、-
(加、减)&
、|
、^
(按位与、或、异或)==
、!=
、===
、!==
(相等、不等)>
、<
、>=
、<=
(比较)选项 | 运算符 | 优先级 | 是否高于 + |
---|---|---|---|
A | &(按位与) | 低于 + |
否 |
B | %(取模) | 高于 + |
是 |
C | >(大于) | 低于 + |
否 |
D | !==(不全等) | 低于 + |
否 |
正确答案:B. %
有关功耗,以下说法不正确的是()?
A. 电压越大,工作频率越高,其动态功耗越高
B. 低功耗设计的目标就是采用各种优化技术和方法,在各个设计目标之间找到最佳的结合点
C. 设计层次越高,功耗优化所能达到的效果越好
D. 芯片单位面积的动态功耗和静态功耗随着工艺的发展呈下降趋势
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 电压越大,工作频率越高,其动态功耗越高 | 正确 | 动态功耗与电压和频率成正比 |
B | 低功耗设计的目标就是采用各种优化技术和方法,在各个设计目标之间找到最佳的结合点 | 正确 | 低功耗设计需要权衡性能、面积和功耗 |
C | 设计层次越高,功耗优化所能达到的效果越好 | 错误 | 设计层次越低(如 RTL 或门级),功耗优化效果越好 |
D | 芯片单位面积的动态功耗和静态功耗随着工艺的发展呈下降趋势 | 正确 | 先进工艺通常降低功耗 |
正确答案:C. 设计层次越高,功耗优化所能达到的效果越好
generate for 循环语句中使用的标尺变量可定义为 integer?()
A. 错误
B. 正确
generate
语句中的循环变量,只能在编译时使用。generate
语句中使用。generate
genvar i; // 必须使用 genvar
for (i = 0; i < 4; i = i + 1) begin
// 实例化模块或生成逻辑
end
endgenerate
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 错误 | 正确 | 标尺变量必须为 genvar ,不能为 integer |
B | 正确 | 错误 |
正确答案:A. 错误
这道题目考察的是 SystemVerilog Assertions (SVA) 的序列操作符的使用,尤其是如何描述信号在时钟上升沿采样后的行为。我们需要分析每个选项中使用的 SVA 语法是否正确地描述了题目中的行为要求。
题目要求:
start
信号有效(即 start
上升沿)。a
连续或间断地出现 3 次为高电平。stop
为高。我们需要选择一个正确的 SVA 属性描述来满足上述行为。
property p0;
@(posedge clk) $rose(start1) |-> ##2 (a[=>3]) ##1 stop;
endproperty
a0: assert property(p0);
解释:
$rose(start1)
:检测 start1
的上升沿。##2
:表示从检测到 start1
上升沿后延迟 2 个时钟周期。(a[=>3])
:表示信号 a
至少出现 3 次为高电平,但不一定是连续的(非重叠匹配)。##1 stop
:表示紧接着在下一个时钟周期,stop
为高。问题:
(a[=>3])
是一个合法的操作符,但它并不符合题意。因为题目明确要求 a
连续或间断地出现 3 次为高电平,而 [=>3]
表示的是非重叠的至少 3 次高电平,不符合 “连续或间断” 的精确描述。property p0;
@(posedge clk) $rose(start1) |-> ##2 (a[*3]) ##1 stop;
endproperty
a0: assert property(p0);
解释:
$rose(start1)
:检测 start1
的上升沿。##2
:表示从检测到 start1
上升沿后延迟 2 个时钟周期。(a[*3])
:表示信号 a
连续 3 次为高电平。##1 stop
:表示紧接着在下一个时钟周期,stop
为高。问题:
(a[*3])
表示 a
必须连续 3 次为高电平,但题目要求的是 a
可以是连续或间断地出现 3 次为高电平。因此,这个选项不符合题意。property p0;
@(posedge clk) $rose(start1) |-> ##2 (a[->3]) ##1 stop;
endproperty
a0: assert property(p0);
解释:
$rose(start1)
:检测 start1
的上升沿。##2
:表示从检测到 start1
上升沿后延迟 2 个时钟周期。(a[->3])
:表示信号 a
出现 3 次为高电平,且可以是连续或间断的(非重叠匹配)。##1 stop
:表示紧接着在下一个时钟周期,stop
为高。匹配性:
(a[->3])
符合题目要求的 “连续或间断地出现 3 次为高电平”。property p0;
@(posedge clk) $rose(start1) |-> ##2 (a[=3]) ##1 stop;
endproperty
a0: assert property(p0);
解释:
$rose(start1)
:检测 start1
的上升沿。##2
:表示从检测到 start1
上升沿后延迟 2 个时钟周期。(a[=3])
:表示信号 a
出现 3 次为高电平,但这是基于重叠匹配的方式(即允许部分重叠)。##1 stop
:表示紧接着在下一个时钟周期,stop
为高。问题:
(a[=3])
的含义是 a
出现 3 次高电平,但允许重叠匹配。这与题目要求的 “连续或间断地出现 3 次为高电平” 不一致。根据上述分析,只有 C 选项完全符合题目要求:
property p0;
@(posedge clk) $rose(start1) |-> ##2 (a[->3]) ##1 stop;
endproperty
a0: assert property(p0);
(a[*3])
表示连续 3 次高电平。(a[->3])
表示非重叠匹配的 3 次高电平(可以是连续或间断的)。(a[=3])
表示重叠匹配的 3 次高电平。题目要求的是 “连续或间断地出现 3 次为高电平”,因此正确答案是 C。
ASIC 开发流程中,如下环节的先后顺序是?()
A. synthesis -> P&R -> RTL
B. RTL -> P&R -> synthesis
C. RTL -> synthesis -> P&R
D. synthesis -> RTL -> P&R
正确答案:C. RTL -> synthesis -> P&R
以下关于 false-path,正确的是()?
A. 一般模拟 IP 和系统的互联接口都可以设置为 false-path
B. 一般异步电路可以设置为 false-path
C. 一般异步复位可以设置为 false-path
D. 两个不同频率之间的接口一定可以设置为 false-path
False-path 是指在时序分析中不需要检查的路径,通常用于以下情况:
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 一般模拟 IP 和系统的互联接口都可以设置为 false-path | 错误 | 模拟 IP 和数字系统的接口通常需要时序检查 |
B | 一般异步电路可以设置为 false-path | 正确 | 异步电路通常不需要时序检查 |
C | 一般异步复位可以设置为 false-path | 正确 | 异步复位信号通常不需要时序检查 |
D | 两个不同频率之间的接口一定可以设置为 false-path | 错误 | 跨时钟域接口需要特殊处理(如同步器),不能直接设为 false-path |
正确答案:B, C
有关综合的说法,以下哪个选项是错误的?()
A. 综合网表可用于 EDA 功能仿真
B. 时序逻辑 always 语句中,if-else 如果 else 的分支缺乏,会综合成 latch
C. casez 是不可综合的
D. 相同的 RTL 代码,每次综合出来的网表可能是不一样的
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 综合网表可用于 EDA 功能仿真 | 正确 | 综合后的网表可用于仿真 |
B | 时序逻辑 always 语句中,if-else 如果 else 的分支缺乏,会综合成 latch | 错误 | 时序逻辑不会综合成 latch,组合逻辑才会 |
C | casez 是不可综合的 | 错误 | casez 是可综合的 |
D | 相同的 RTL 代码,每次综合出来的网表可能是不一样的 | 正确 | 综合工具优化可能导致不同网表 |
正确答案:B
下面是一个什么电路?()
always @(posedge clk) begin
if (rst_n == 1'b0)
a <= 2'b0;
else if (b > 2'b0)
a <= b;
end
A. 综合成 Latch
B. 带异步复位的 D 触发器
C. 组合逻辑
D. 带同步复位的 D 触发器
posedge clk
表示时序逻辑。rst_n
在时钟上升沿生效,是 同步复位。a
清零,否则根据 b
的值更新 a
。选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 综合成 Latch | 错误 | 时序逻辑不会综合成 latch |
B | 带异步复位的 D 触发器 | 错误 | 复位是同步的 |
C | 组合逻辑 | 错误 | 有时钟信号,是时序逻辑 |
D | 带同步复位的 D 触发器 | 正确 | 复位在时钟上升沿生效 |
正确答案:D
【A】状态编码用 parameter 定义
【B】状态机必须有 default 态
【C】用组合逻辑和时序逻辑分离的风格描述 FSM
【D】用 case 语句描述状态的转移
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 状态编码用 parameter 定义 | 正确 | parameter 用于定义状态编码,提高可读性和可维护性 |
B | 状态机必须有 default 态 | 错误 | 如果 case 语句覆盖所有状态,可以不用 default 态 |
C | 用组合逻辑和时序逻辑分离的风格描述 FSM | 正确 | 分离风格是状态机设计的推荐方法 |
D | 用 case 语句描述状态的转移 | 正确 | case 语句是描述状态转移的常用方式 |
正确答案:A, C, D
【A】SystemC
【B】UVM
【C】SystemVerilog
【D】VMM
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | SystemC | 错误 | SystemC 是硬件建模语言,不是验证方法学 |
B | UVM | 正确 | UVM(Universal Verification Methodology)是业界主流验证方法学 |
C | SystemVerilog | 错误 | SystemVerilog 是硬件描述和验证语言,不是方法学 |
D | VMM | 正确 | VMM(Verification Methodology Manual)是早期的验证方法学 |
正确答案:B, D
【A】电压
【B】频率
【C】工艺
【D】工作温度
动态功耗由 开关功耗 和 短路功耗 组成:
因此,电压、频率、工艺、工作温度 都会影响动态功耗。
正确答案:A, B, C, D
【A】异步信号的电平或脉冲特性
【B】异步信号是不是总线
【C】两个异步时钟时间的频率关系
【D】异步信号是不是寄存器输出
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 异步信号的电平或脉冲特性 | 正确 | 电平或脉冲特性影响同步器设计 |
B | 异步信号是不是总线 | 错误 | 总线与否不影响异步处理 |
C | 两个异步时钟时间的频率关系 | 正确 | 频率关系影响同步器设计 |
D | 异步信号是不是寄存器输出 | 错误 | 寄存器输出与否不影响异步处理 |
正确答案:A, C
【A】性能
【B】无充分理由的揣测
【C】偶然的设计失误
【D】可测性
【E】功能
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 性能 | 错误 | 性能是测试点分解的关注点 |
B | 无充分理由的揣测 | 正确 | 无理由的揣测不属于测试点分解的关注点 |
C | 偶然的设计失误 | 正确 | 偶然失误不属于测试点分解的关注点 |
D | 可测性 | 错误 | 可测性是测试点分解的关注点 |
E | 功能 | 错误 | 功能是测试点分解的关注点 |
正确答案:B, C
【A】没有时钟skew问题
【B】可移植性高
【C】低电源消耗
【D】设计可靠性高
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 没有时钟 skew 问题 | 错误 | 异步设计仍需处理时钟同步问题 |
B | 可移植性高 | 正确 | 异步设计不依赖特定时钟频率 |
C | 低电源消耗 | 正确 | 异步设计可降低动态功耗 |
D | 设计可靠性高 | 错误 | 异步设计需额外处理亚稳态问题 |
正确答案:B, C
【A】用组合逻辑和时序逻辑分离的风格描述FSM
【B】用case语句描述状态的转移
【C】状态编码用parameter定义
【D】状态机必须有default
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 组合逻辑和时序逻辑分离 | 正确 | 推荐设计风格 |
B | 用 case 语句描述状态转移 | 正确 | 标准实现方式 |
C | 状态编码用 parameter 定义 | 正确 | 提高可读性 |
D | 状态机必须有 default | 错误 | 完全覆盖时可省略 |
正确答案:A, B, C
【A】分析是否进行组合的项太多,导致功能覆盖率不高,适当减少组合项
【B】适当提高属性值的采样频率,对覆盖率报告中的漏洞进行覆盖
【C】检查激励产生机制,采用一些必要的约束,继续进行仿真
【D】再做一些定向测试,直接命中覆盖率报告中的漏洞
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 减少组合项 | 错误 | 可能掩盖真实漏洞 |
B | 提高采样频率 | 错误 | 采样频率不影响覆盖率本质 |
C | 检查激励机制 | 正确 | 修正激励生成逻辑 |
D | 定向测试补漏洞 | 正确 | 直接针对未覆盖点 |
正确答案:C, D
【A】对任何单bit信号都可以用此电路处理
【B】各个寄存器之间不能有组合逻辑
【C】需要考虑两个时钟的频率与信号的宽度
【D】无法绝对避免亚稳态的产生
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 适用于任何单 bit 信号 | 错误 | 需满足信号宽度 > 时钟周期 |
B | 寄存器间无组合逻辑 | 正确 | 避免增加亚稳态风险 |
C | 需考虑时钟频率与信号宽度 | 正确 | 关键设计约束 |
D | 无法绝对避免亚稳态 | 正确 | 只能降低概率 |
正确答案:B, C, D
【A】供电电压
【B】工作频率
【C】工艺
【D】温度
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 供电电压 | 正确 | 静态功耗与电压正相关 |
B | 工作频率 | 错误 | 仅影响动态功耗 |
C | 工艺 | 正确 | 工艺节点影响漏电流 |
D | 温度 | 正确 | 温度升高增加漏电流 |
正确答案:A, C, D