单选
1. 题目内容
关于亚稳态的描述错误的是( )。
1. 解题步骤
1.1 理解亚稳态(Metastability)的核心特性
亚稳态是指触发器无法在指定时间内稳定输出有效逻辑电平(0或1)的状态,其关键特点包括:
- 不可消除性:只能通过设计降低发生概率,无法完全消除(A错误)。
- 理论无限持续时间:亚稳态可能无限持续,但实际概率随时间指数衰减(B正确)。
- 随机稳定结果:亚稳态最终稳定到0或1是随机的,与输入无必然关系(C正确)。
- 触发条件:当不满足触发器的建立时间(Tsu)和保持时间(Th)时发生(D正确)。
1.2 分析选项
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 多用几级寄存器打拍可以消除亚稳态 | ✗ | 亚稳态无法消除,多级同步仅降低概率 |
B | 亚稳态是极不稳定的,理论上来讲处在亚稳态的时间可以无限长 | ✓ | 符合亚稳态的数学模型(MTBF计算) |
C | 亚稳态稳定到0或者1是随机的,与输入没有必然的关系 | ✓ | 亚稳态的物理特性决定 |
D | 如果数据传输中不满足触发器的Tsu和Th,可能产生亚稳态 | ✓ | 亚稳态的直接成因 |
2. 最终答案
正确答案:A
关键结论:
- A选项错误 :多级寄存器(如双触发器同步)只能 降低亚稳态概率 ,无法彻底消除(MTBF公式:
MTBF = e^(t/τ) / (f × a)
,其中t为同步时间,τ为触发器时间常数)。 - 其他选项:B、C、D均正确描述了亚稳态的特性。
3. 工程实践建议
- 同步器设计:对异步信号至少使用2级触发器同步(降低MTBF)。
- 时钟域隔离:多比特信号需用异步FIFO或格雷码,避免直接打拍。
- MTBF计算:高频设计中需验证同步器的MTBF是否满足系统寿命要求。
格式说明
后续单选题解析将统一按此模板输出,包含:
- 题目内容(题号+问题描述)
- 解题步骤(术语定义+选项分析表)
- 最终答案(答案+关键结论+工程建议)
- 严格区分 正确(✓) 与 错误(✗) 选项,并标注依据。
2. 题目内容
一段程序如下,请问在45这个时刻上,A B的值各是多少?
1. 解题步骤
1.1 代码分析
verilog
fork
begin
A = 1;
#20 A = 0;
#30 A = 1;
#50 A = 0;
end
begin
B = 1;
#20 B = 0;
#30 B = 1;
#50 B = 0;
end
join
1.2 时间线梳理
时间 | A 的变化 | B 的变化 | 当前 A | 当前 B |
---|---|---|---|---|
0 | A = 1 | B = 1 | 1 | 1 |
20 | #20 → A = 0 | #20 → B = 0 | 0 | 0 |
50 | #30 → A = 1 | #30 → B = 1 | 1 | 1 |
100 | #50 → A = 0 | #50 → B = 0 | 0 | 0 |
1.3 关键时间点(t=45)
- A 的值 :
- 最后修改在 t=20(A=0),下一次修改在 t=50(A=1)。
- t=45 时 A=0。
- B 的值 :
- 最后修改在 t=20(B=0),下一次修改在 t=50(B=1)。
- t=45 时 B=0。
2. 最终答案
正确答案:B (0, 0)
验证逻辑:
- 在 t=45 时,A 和 B 均处于 t=20 至 t=50 的区间内,值保持为 0。
3. 仿真验证(伪代码)
python
time = 45
A = 1 if (time < 20 or (50 <= time < 100)) else 0
B = 1 if (time < 20 or (50 <= time < 100)) else 0
print(f"t={time}: A={A}, B={B}") # 输出 t=45: A=0, B=0
4. 关键结论
- 时间区间划分 是解题核心,需注意
#
延迟是累加的(如#20 → #30
实际是 t=50)。 - fork-join 会并行执行两个块,但时间线是统一的。
注:若题目中
#50
是独立延迟(非累加),则需重新计算,但标准 Verilog 语法中#
是累加的。
3. 题目内容
下列关于综合的说法哪项是不正确的?
1. 解题步骤
1.1 综合(Synthesis)的核心概念
综合是将HDL代码(如Verilog/VHDL)转换为门级网表的过程,主要步骤包括:
- Translation:将HDL代码转换为GTECH库元件组成的中间逻辑电路。
- Mapping:将GTECH电路映射到目标工艺库(如TSMC 28nm)。
- Optimization:对电路进行逻辑优化(如面积、时序、功耗)。
1.2 选项分析
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 综合是将HDL代码转化为门级网表的过程 | ✓ | 综合的核心定义 |
B | 综合由Translation和Mapping两个步骤组成 | ✗ | 综合还包括Optimization步骤 |
C | Mapping把GTECH库元件构成的电路映射到某一特定厂家的工艺库上 | ✓ | Mapping的核心功能 |
D | Translation是指把HDL语言描述的电路转化为用GTECH库元件组成的逻辑电路的过程 | ✓ | Translation的核心功能 |
2. 最终答案
正确答案:B
关键结论:
- B选项错误 :综合包括 Translation 、Mapping 和 Optimization 三个步骤,而非仅前两步。
- 其他选项:A、C、D均正确描述了综合的核心概念。
4. 题目内容
当功能覆盖率(Functional Coverage)达到 100%,可以说明:
1. 解题步骤
1.1 功能覆盖率的核心概念
功能覆盖率用于衡量验证过程中对设计功能点的覆盖程度,其特点包括:
- 覆盖范围:仅反映测试用例是否覆盖了所有功能点,不保证功能正确性。
- 验证目标:确保所有关注的情况(如边界条件、异常场景)被测试。
- 验证结束条件:功能覆盖率100%是必要条件,但非充分条件(还需代码覆盖率和错误率达标)。
1.2 选项分析
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | DUT 的功能点已经100%覆盖 | ✓ | 功能覆盖率的定义 |
B | 功能覆盖率对应的 DUT 响应是正确的 | ✗ | 功能覆盖率不验证正确性,仅验证覆盖性 |
C | 某些令人关注的情况已经得到测试覆盖 | ✓ | 功能覆盖率的目标是覆盖所有关注场景 |
D | 验证工作可以结束 | ✗ | 功能覆盖率100%是必要条件,但还需代码覆盖率和错误率达标 |
2. 最终答案
正确答案:C
关键结论:
- C选项正确:功能覆盖率100%说明所有关注的情况已被测试覆盖。
- 其他选项 :
- A正确,但非最佳选项(C更具体)。
- B错误,功能覆盖率不验证正确性。
- D错误,验证结束需满足更多条件。
3. 工程实践建议
-
功能覆盖率目标 :
pythonif functional_coverage == 100 and code_coverage > 95 and bug_rate < 1e-6: print("验证工作可结束") else: print("需继续验证")
-
覆盖率类型 :
- 功能覆盖率:关注设计功能点。
- 代码覆盖率:关注代码执行路径。
- 断言覆盖率:关注设计行为是否符合预期。
注:功能覆盖率100%是验证的重要里程碑,但非唯一标准。
5. 题目内容
使用相同时钟沿的同步数字电路,以下因素和最高工作频率无关的是:
1. 解题步骤
1.1 最高工作频率的决定因素
同步数字电路的最高工作频率由以下公式决定:
python
f_max = 1 / T_min
# 其中 T_min 是最小时钟周期,计算公式为:
T_min = T_comb_max + T_setup + T_clock_skew
# 其中:
# T_comb_max: 最长组合逻辑延迟
# T_setup: 触发器的建立时间
# T_clock_skew: 时钟偏斜
1.2 选项分析
选项 | 描述 | 是否影响 f_max | 依据 |
---|---|---|---|
A | 触发器之间最长的组合逻辑 | ✓ | T_comb_max 直接决定 T_min |
B | 触发器的建立/保持时间 | ✓ | T_setup 是 T_min 的组成部分 |
C | 时钟低电平持续时间 | ✗ | 最高频率由 T_min 决定,与时钟占空比无关 |
D | 逻辑块间互连布线长度 | ✓ | 布线长度影响 T_comb_max(延迟与布线长度正相关) |
2. 最终答案
正确答案:C
关键结论:
- C选项无关:时钟低电平持续时间(占空比)不影响最高频率,仅影响时钟波形。
- 其他选项:A、B、D均直接影响 T_min,从而决定 f_max。
3. 工程实践建议
-
优化 f_max 的方法 :
python# 减少最长组合逻辑延迟 T_comb_max = optimize_logic(comb_logic) # 优化时钟分布网络(减少偏斜) T_clock_skew = optimize_clock_network(clock_tree) # 选择低建立时间的触发器 T_setup = select_flip_flop(low_setup_time)
-
时钟占空比的影响 :
python# 时钟占空比(Duty Cycle)公式 duty_cycle = (T_high / T_clock) * 100 # 其中 T_high 是高电平持续时间,T_clock 是时钟周期 # 占空比影响功耗和信号完整性,但不影响 f_max
注:时钟占空比通常设计为50%,但极端占空比(如10%或90%)可能导致触发器采样错误。
6. 题目内容
同步电路设计中出现 setup time 不满足,不可以采用下面哪种措施解决?
1. 解题步骤
1.1 Setup Time 不满足的原因
Setup Time 不满足通常是由于数据到达时间(T_data_arrival
)过晚,导致无法在时钟边沿前稳定。
1.2 解决措施分析
选项 | 措施 | 有效性 | 原理 |
---|---|---|---|
A | 增加时钟频率 | ✗ | 频率增加会缩短时钟周期,反而加剧 Setup Time 问题 |
B | 减小信号延迟 | ✓ | 优化组合逻辑或布线,缩短 T_data_arrival |
C | Pipeline | ✓ | 插入寄存器切割关键路径,减少单级逻辑延迟 |
D | 降低时钟频率 | ✓ | 延长时钟周期,直接缓解 Setup Time 压力 |
2. 最终答案
正确答案:A
关键结论:
- A 选项错误:增加时钟频率会恶化 Setup Time 问题,属于"反向操作"。
- 其他选项:B、C、D 均为有效解决措施。
7. 题目内容
下列说法正确的是?
1. 解题步骤
1.1 选项分析
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 异步 FIFO 采用格雷码是为了省功耗 | ✗ | 格雷码的核心作用是消除多比特信号跨时钟域的亚稳态风险 |
B | 单比特信号打两拍可以完全避免亚稳态 | ✗ | 只能降低亚稳态概率(MTBF 公式决定),无法完全避免 |
C | 异步处理需考虑发送和接收时钟的频率关系 | ✓ | 例如异步 FIFO 需评估写/读时钟速率差,防止溢出或空读 |
D | 尽量将异步和同步逻辑剥离开,分别在不同模块实现 | ✓ | 同步与异步逻辑分离是设计规范,降低跨时钟域风险 |
2. 最终答案
正确答案:C
关键结论:
- A 错误:格雷码用于消除多比特信号跨时钟域的位跳变风险,与功耗无关。
- B 错误:双触发器同步仅降低亚稳态概率,无法完全消除(MTBF→∞ 不可达)。
- C 正确:异步设计必须分析时钟频率关系(如异步 FIFO 深度设计)。
- **D **:同步/异步逻辑分离是代码规范的核心原则,但难以实现。
3. 工程实践建议
-
异步 FIFO 设计 :
python# 格雷码生成函数示例 def gray_code(n): return n ^ (n >> 1) # 异步 FIFO 深度计算 fifo_depth = (write_rate - read_rate) * max_latency
-
跨时钟域处理 :
- 单比特信号:双触发器同步(MTBF 需达标)。
- 多比特信号:异步 FIFO 或握手协议。
注:选项 B 是常见误解,需明确亚稳态只能降低概率,无法彻底消除。
8. 题目内容
Moore 状态机和 Mealy 状态机的差异在()是否相关。
1. 解题步骤
1.1 Moore 和 Mealy 状态机的核心区别
类型 | 输出依赖关系 | 特点 |
---|---|---|
Moore | 输出仅与当前状态有关 | 输出在时钟边沿同步更新 |
Mealy | 输出与当前状态 和输入 有关 | 输出可能异步变化(输入变化时立即响应) |
1.2 选项分析
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 状态和输入信号 | ✗ | 两者状态转移均依赖输入,非核心差异 |
B | 输出信号和状态 | ✗ | Moore/Mealy 输出均与状态相关 |
C | 输出信号和输入信号 | ✓ | Mealy 输出依赖输入,Moore 不依赖 |
D | 状态和输出信号 | ✗ | 两者输出均与状态相关 |
2. 最终答案
正确答案:C
关键结论:
- C 选项正确:Mealy 的输出与输入直接相关,Moore 的输出仅与状态相关。
9. 题目内容
计算机执行程序时,在()的控制下,逐条从内存中取出指令、分析指令、执行指令。
1. 解题步骤
1.1 计算机指令执行流程
- 取指(Fetch):从内存读取指令。
- 译码(Decode):分析指令操作码。
- 执行(Execute):运算器执行操作。
- 核心控制单元 :控制器(Control Unit)协调全过程。
1.2 选项分析
选项 | 部件 | 作用 |
---|---|---|
A | 控制器 | 协调取指、译码、执行流程(正确答案) |
B | 运算器 | 仅负责算术/逻辑运算(如 ALU) |
C | 存储器 | 存储指令和数据,不参与控制 |
D | I/O 设备 | 负责外部交互,与指令执行无关 |
2. 最终答案
正确答案:A
关键结论:
- 控制器是指令执行流程的核心调度者。
10. 题目内容
相互间相位固定且频率相同的时钟就是同步时钟()。
1. 解题步骤
1.1 同步时钟的定义
- 必要条件 :
- 频率相同 或 成整数倍关系。
- 相位关系固定(即使有偏移,也是固定的)。
- 反例 :
- 同频但相位随机抖动的时钟 → 异步时钟。
1.2 选项分析
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 正确 | ✓ | 相位固定且同频是同步时钟的核心特征 |
B | 错误 | ✗ | 忽略相位固定的前提 |
2. 最终答案
正确答案:A
关键结论:
- 相位固定 + 同频 = 同步时钟。
11. 题目内容
下面的 Verilog 代码产生的时钟频率是()。
verilog
timescale 1ns/100ps
initial
clk = 1'b0;
always #100 clk <= ~clk;
1. 解题步骤
1.1 时钟周期计算
-
#100
表示延迟 100 个时间单位。 -
timescale 1ns/100ps
定义:- 1 时间单位 = 1ns(因延迟值优先匹配第一个参数)。
-
因此:
pythonT_period = 100 * 1ns * 2 = 200ns # 一个周期包含高电平和低电平 f = 1 / T_period = 1 / 200e-9 = 5e6 = 5MHz
1.2 选项验证
选项 | 频率 | 正误 | 计算过程 |
---|---|---|---|
A | 5MHz | ✓ | 200ns → 5MHz |
B | 10MHz | ✗ | 误算为 100ns 周期(未×2) |
C | 100MHz | ✗ | 误用 10ns 周期 |
D | 50MHz | ✗ | 误用 20ns 周期 |
2. 最终答案
正确答案:A
关键结论:
- 时钟周期 = 延迟时间 × 2(高低电平各占一半)。
- 5MHz 是正确计算结果。
总结
题号 | 正确答案 | 核心考点 |
---|---|---|
8 | C | Moore/Mealy 输出依赖差异 |
9 | A | 计算机控制器功能 |
10 | A | 同步时钟的定义条件 |
11 | A | Verilog 时钟周期与频率计算 |
8. 题目内容
Moore 状态机和 Mealy 状态机的差异在()是否相关。
1. 解题步骤
1.1 Moore 和 Mealy 状态机的核心区别
类型 | 输出依赖关系 | 特点 |
---|---|---|
Moore | 输出仅与当前状态有关 | 输出在时钟边沿同步更新 |
Mealy | 输出与当前状态 和输入 有关 | 输出可能异步变化(输入变化时立即响应) |
1.2 选项分析
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 状态和输入信号 | ✗ | 两者状态转移均依赖输入,非核心差异 |
B | 输出信号和状态 | ✗ | Moore/Mealy 输出均与状态相关 |
C | 输出信号和输入信号 | ✓ | Mealy 输出依赖输入,Moore 不依赖 |
D | 状态和输出信号 | ✗ | 两者输出均与状态相关 |
2. 最终答案
正确答案:C
关键结论:
- C 选项正确:Mealy 的输出与输入直接相关,Moore 的输出仅与状态相关。
9. 题目内容
计算机执行程序时,在()的控制下,逐条从内存中取出指令、分析指令、执行指令。
1. 解题步骤
1.1 计算机指令执行流程
- 取指(Fetch):从内存读取指令。
- 译码(Decode):分析指令操作码。
- 执行(Execute):运算器执行操作。
- 核心控制单元 :控制器(Control Unit)协调全过程。
1.2 选项分析
选项 | 部件 | 作用 |
---|---|---|
A | 控制器 | 协调取指、译码、执行流程(正确答案) |
B | 运算器 | 仅负责算术/逻辑运算(如 ALU) |
C | 存储器 | 存储指令和数据,不参与控制 |
D | I/O 设备 | 负责外部交互,与指令执行无关 |
2. 最终答案
正确答案:A
关键结论:
- 控制器是指令执行流程的核心调度者。
10. 题目内容
相互间相位固定且频率相同的时钟就是同步时钟()。
1. 解题步骤
1.1 同步时钟的定义
- 必要条件 :
- 频率相同 或 成整数倍关系。
- 相位关系固定(即使有偏移,也是固定的)。
- 反例 :
- 同频但相位随机抖动的时钟 → 异步时钟。
1.2 选项分析
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 正确 | ✓ | 相位固定且同频是同步时钟的核心特征 |
B | 错误 | ✗ | 忽略相位固定的前提 |
2. 最终答案
正确答案:A
关键结论:
- 相位固定 + 同频 = 同步时钟。
11. 题目内容
下面的 Verilog 代码产生的时钟频率是()。
verilog
timescale 1ns/100ps
initial
clk = 1'b0;
always #100 clk <= ~clk;
1. 解题步骤
1.1 时钟周期计算
-
#100
表示延迟 100 个时间单位。 -
timescale 1ns/100ps
定义:- 1 时间单位 = 1ns(因延迟值优先匹配第一个参数)。
-
因此:
pythonT_period = 100 * 1ns * 2 = 200ns # 一个周期包含高电平和低电平 f = 1 / T_period = 1 / 200e-9 = 5e6 = 5MHz
1.2 选项验证
选项 | 频率 | 正误 | 计算过程 |
---|---|---|---|
A | 5MHz | ✓ | 200ns → 5MHz |
B | 10MHz | ✗ | 误算为 100ns 周期(未×2) |
C | 100MHz | ✗ | 误用 10ns 周期 |
D | 50MHz | ✗ | 误用 20ns 周期 |
2. 最终答案
正确答案:A
关键结论:
- 时钟周期 = 延迟时间 × 2(高低电平各占一半)。
- 5MHz 是正确计算结果。
12. 题目内容
如果该 class 会被继承,则该 class 所有定义的 function/task 都需要加 virtual()。
1. 解题步骤
1.1 virtual 关键字的作用
- virtual function/task :
- 允许子类重写(override)父类的方法。
- 未加
virtual
的方法在子类中无法重写。
1.2 是否需要全部加 virtual
- 必要性 :
- 只有需要被重写的方法才需加
virtual
。 - 不需要重写的方法无需加
virtual
。
- 只有需要被重写的方法才需加
- 反例 :
- 工具类(Utility Class)中的方法通常无需重写,不应加
virtual
。
- 工具类(Utility Class)中的方法通常无需重写,不应加
1.3 选项分析
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 正确 | ✗ | 只有需要重写的方法才需加 virtual ,非全部 |
B | 错误 | ✓ | 仅需为可能被重写的方法加 virtual |
2. 最终答案
正确答案:B
关键结论:
- B 选项正确 :只有需要被重写的方法才需加
virtual
,非全部。
总结
题号 | 正确答案 | 核心考点 |
---|---|---|
8 | C | Moore/Mealy 输出依赖差异 |
9 | A | 计算机控制器功能 |
10 | A | 同步时钟的定义条件 |
11 | A | Verilog 时钟周期与频率计算 |
12 | B | virtual 关键字的使用场景 |
13. 题目内容
bit、logic、reg 都是 4 态数据类型()。
1. 解题步骤
1.1 SystemVerilog 数据类型分类
类型 | 状态数 | 值范围 | 说明 |
---|---|---|---|
bit | 2 态 | 0, 1 | 用于硬件建模(无 X/Z 状态) |
logic | 4 态 | 0, 1, X, Z | 用于 RTL 设计和验证 |
reg | 4 态 | 0, 1, X, Z | 传统 Verilog 类型,与 logic 等效 |
1.2 选项分析
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 正确 | ✗ | bit 是 2 态,logic 和 reg 是 4 态 |
B | 错误 | ✓ | 题目中 bit 是 2 态,因此三者不全是 4 态 |
2. 最终答案
正确答案:B
关键结论:
- bit 是 2 态,logic 和 reg 是 4 态,因此三者不全是 4 态。
14. 题目内容
关于亚稳态,以下说法错误的是()。
1. 解题步骤
1.1 亚稳态的核心特性
- 不可消除性:只能降低概率,无法完全消除(B 错误)。
- 触发条件:不满足建立时间(Tsu)和保持时间(Th)时发生(C 正确)。
- 随机性:亚稳态的最终输出和稳定时间均不可预测(D 正确)。
- 概率因素:与器件工艺、时钟频率、信号翻转率相关(A 正确)。
1.2 选项分析
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 亚稳态出现的概率与器件工艺、时钟频率等有关系 | ✓ | 符合 MTBF 公式(MTBF = e^(t/τ) / (f × a)) |
B | 亚稳态打两拍就可以消除 | ✗ | 双触发器同步仅降低概率,无法消除(MTBF→∞ 不可达) |
C | 数字系统中,信号无法满足 Tsu 和 Th 时容易出现亚稳态 | ✓ | 亚稳态的直接成因 |
D | 触发器进入亚稳态后,无法预测输出电平及稳定时间 | ✓ | 亚稳态的物理特性决定 |
2. 最终答案
正确答案:B
关键结论:
- B 选项错误:亚稳态无法通过打两拍消除,只能降低概率。
总结
题号 | 正确答案 | 核心考点 |
---|---|---|
8 | C | Moore/Mealy 输出依赖差异 |
13 | B | SystemVerilog 数据类型分类 |
14 | B | 亚稳态的不可消除性 |
15. 题目内容(重新分析)
对于相同位数输入的变量比较器,大于和小于的面积是一样的()。
1. 解题步骤
1.1 逻辑对称性分析
- 大于(>)和小于(<)的逻辑结构 :
- 两者逻辑功能对称,输入位数相同的情况下,逻辑门数量和连接方式互为镜像。
- 例如 :4-bit 比较器中,
A > B
和A < B
的电路结构对称,仅输入顺序或逻辑门类型(如AND/OR)反向。
1.2 用户条件限制(不考虑工艺差异)
- 若仅从 纯逻辑设计 分析,且假设工艺库中基本门(AND/OR/NOT)面积相同,则两者面积相同。
2. 最终答案
正确答案 :A(正确)
关键结论:
- 在不考虑工艺差异 的前提下,逻辑对称性使得面积相同。
16. 题目内容
以下说法关于低功耗的说法不正确的是:()
1. 解题步骤
1.1 选项分析
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 合理电源门控可降低功耗 | ✓ | 电源门控(Power Gating)有效降低静态功耗 |
B | 时钟门控可降低芯片功耗 | ✓ | 时钟门控(Clock Gating)减少动态功耗 |
C | 降低数据翻转率可降低功耗 | ✓ | 翻转率是动态功耗的核心因素 |
D | 无论设计大小,一律采用先进工艺 | ✗ | 先进工艺成本高,小设计可能无需使用 |
2. 最终答案
正确答案:D
17. 题目内容
在 SystemVerilog 中,调用 $write
可以自动地在输出后进行换行。()
A.正确
B.错误
1. 解题步骤
1.1 $write
与 $display
的区别
$write
:输出后不换行。$display
:输出后自动换行。
2. 最终答案
正确答案:B
18. 题目内容(重新分析)
有如下代码:
systemverilog
class C1;
rand int m;
constraint c1_cons { m <= 10; }
endclass
class C2 extends C1;
constraint c1_cons { m >= 10; }
endclass
最终实现的约束效果是()。
1. 解题步骤
1.1 约束覆盖规则
- SystemVerilog 约束继承规则 :
- 子类中 同名约束会完全覆盖父类约束,而非合并。
- 父类约束
m <= 10
被子类m >= 10
覆盖,最终约束为m >= 10
。
1.2 验证代码行为
python
# 示例验证
obj = C2()
obj.randomize()
# 结果:m 的取值范围为 m >= 10(无上限)
2. 最终答案
正确答案 :A(m >= 10)
关键结论:
- 子类同名约束覆盖父类约束,最终约束仅保留子类定义。
19. 题目内容
CPU 流水线级数越多,CPU 每周期处理的指令数就越多()。
A.正确
B.错误
1. 解题步骤
1.1 流水线级数与吞吐量
- 吞吐量:流水线级数增加可提高吞吐率(单位时间完成的指令数)。
- 每周期指令数(IPC):流水线级数不影响单周期 IPC,反而可能因流水线停顿降低效率。
2. 最终答案
正确答案:B
20. 题目内容
下列哪项不属于动态功耗? ()
A.电路短路功耗
B.电路翻转功耗
C.二极管反向电流引起的功耗。
1. 解题步骤
1.1 动态功耗组成
- 动态功耗:翻转功耗(Switching)和短路功耗(Short-Circuit)。
- 静态功耗:漏电流(如二极管反向电流)。
2. 最终答案
正确答案:C
21. 题目内容
数字电路中用"1"和"0"分别表示两种状态,二者无大小之分()。
A.正确
B.错误
1. 解题步骤
1.1 逻辑电平定义
- 逻辑电平仅表示状态(如高/低电平),无数学大小含义。
2. 最终答案
正确答案:A
22. 题目内容
芯片的某条时序路径的保持时间不满足,可通过降低工作频率来满足保持时间()。
A.正确
B.错误
1. 解题步骤
1.1 保持时间与频率无关
- 保持时间检查:仅依赖信号延迟,与时钟周期无关。
2. 最终答案
正确答案:B
23. 题目内容
异步处理电路中,两级触发器同步方法可以确保第二级寄存器的输出不出现亚稳态。()
A.正确
B.错误
1. 解题步骤
1.1 亚稳态的不可消除性
- 双触发器同步仅降低概率,无法完全避免亚稳态。
2. 最终答案
正确答案:B(错误)
24. 题目内容
一个十进制数 -3,定点位宽为 4bit,在 Verilog 语言中分别用 2 进制补码表示为()。
A.4'b1100
B.4'b1101
C.4'b1011
D.4'b0011
1. 解题步骤
1.1 补码计算
- -3 的 4-bit 补码 :
1101
(0011
取反加 1 →1101
)。
2. 最终答案
正确答案 :B(4'b1101
)
25. 题目内容
SystemVerilog 中类默认的成员属性是()。
A.private
B.public
C.automatic
D.local
1. 解题步骤
1.1 类成员默认属性
- SystemVerilog 类成员默认是
public
。
2. 最终答案
正确答案:B(public)
26. 题目内容
格雷码的异步处理可以采用直接打拍的方式,在 STA 时不需要特殊检查。()
A.正确
B.错误
1. 解题步骤
1.1 格雷码同步的 STA 要求
- STA只适用于同步电路。
2. 最终答案
正确答案:A.正确
28. 题目内容
某包处理器的工作时钟为 125MHz,在正常工作时,它可以每 32 个时钟周期处理一个 64 字节的以太包。则该包处理器的处理性能是()。
1. 解题步骤
1.1 性能计算
- 每秒处理包数:
125MHz / 32 = 3.90625M 包/秒
。 - 吞吐量:
3.90625M × 64B × 8 = 2000Mbps = 2Gbps
。
2. 最终答案
正确答案:A(2Gbps)
29. 题目内容
在同步电路设计中,逻辑电路的时序模型如下:...(题目描述过长,直接给出关键公式)
A.T1+T2+T3+T4<Tcycle‐Tsetup +T5,T1+T2+T3+T4>Thold
B.T1+T2+T3+T4+T5<Tcycle‐Tsetup,T1+T2+T3+T4>Thold
C.T1+T2+T3+T4<Tcycle‐Tsetup,T1+T2+T3+T4+T5>Thold
D.T1+T2+T3+T4<Tcycle‐Tsetup+T5,T1+T2+T3+T4>Thold+T5
为了确保数据在同步电路中正确采样,必须满足建立时间和保持时间的要求。让我们详细分析每个选项,并找出正确的等式。
关键时序参数
- T1:触发器的时钟端到数据输出端的延时。
- T2 和 T4:连线延时。
- T3:组合逻辑延时。
- T5:时钟网络延时。
- Tcycle:时钟周期。
- Tsetup:触发器的建立时间(Setup Time),即数据在时钟边沿到来之前需要保持稳定的最小时间。
- Thold:触发器的保持时间(Hold Time),即数据在时钟边沿到来之后需要保持稳定的最小时间。
建立时间约束
为了确保数据能够正确地被下一个触发器采样,必须满足以下条件:
\\text{数据到达时间} \< \\text{时钟周期} - \\text{建立时间} + \\text{时钟网络延时}
具体来说:
T1 + T2 + T3 + T4 \< Tcycle - Tsetup + T5
保持时间约束
为了确保数据不会过早改变而违反保持时间要求,必须满足以下条件:
\\text{数据到达时间} \> \\text{保持时间} + \\text{时钟网络延时}
具体来说:
T1 + T2 + T3 + T4 \> Thold + T5
选项分析
A. ( T1+T2+T3+T4 < Tcycle - Tsetup + T5 ),( T1+T2+T3+T4 > Thold )
- 建立时间约束:正确。
- 保持时间约束:错误。缺少了时钟网络延时 ( T5 )。
B. ( T1+T2+T3+T4 + T5 < Tcycle - Tsetup ),( T1+T2+T3+T4 > Thold )
- 建立时间约束:错误。时钟网络延时 ( T5 ) 应该加在右边,而不是左边。
- 保持时间约束:错误。缺少了时钟网络延时 ( T5 )。
C. ( T1+T2+T3+T4 < Tcycle - Tsetup ),( T1+T2+T3+T4 + T5 > Thold )
- 建立时间约束:错误。缺少了时钟网络延时 ( T5 )。
- 保持时间约束:错误。时钟网络延时 ( T5 ) 应该加在左边,而不是右边。
D. ( T1+T2+T3+T4 < Tcycle - Tsetup + T5 ),( T1+T2+T3+T4 > Thold + T5 )
- 建立时间约束:正确。
- 保持时间约束:正确。
总结
选项 D 正确地描述了建立时间和保持时间的约束条件:
T1 + T2 + T3 + T4 \< Tcycle - Tsetup + T5
T1 + T2 + T3 + T4 \> Thold + T5
因此,正确答案是:D. ( T1+T2+T3+T4 < Tcycle - Tsetup + T5 ),( T1+T2+T3+T4 > Thold + T5 )
30. 题目内容
为什么数字电路系统中只使用二进制?()
1. 解题步骤
1.1 晶体管特性决定
- 晶体管开关特性(高/低电平)天然适配二进制。
2. 最终答案
正确答案:C
总结:以上答案基于理论分析和典型设计实践,实际应用中需结合具体场景验证。
多选
1. 题目内容
电路设计中需要关注 PPA,分别指()。
1. 解题步骤
1.1 PPA 的定义
PPA 是电路设计的三大核心指标,分别指:
- Power(功耗):电路运行时的动态功耗和静态功耗。
- Performance(性能):电路的工作频率、吞吐量、延迟等。
- Area(面积):电路占用的芯片面积,与成本直接相关。
1.2 选项分析
选项 | 描述 | 是否属于 PPA | 依据 |
---|---|---|---|
A | 功耗 | ✓ | PPA 中的 Power(功耗) |
B | 性能 | ✓ | PPA 中的 Performance(性能) |
C | 面积 | ✓ | PPA 中的 Area(面积) |
D | 成本 | ✗ | 成本是面积的结果,但非 PPA 的直接组成部分 |
2. 最终答案
正确答案:A、B、C
关键结论:
- PPA 包括功耗(A)、性能(B)和面积(C),成本是面积的结果,但非 PPA 的直接组成部分。
总结
选项 | 是否属于 PPA | 理由 |
---|---|---|
A | ✓ | PPA 中的 Power(功耗) |
B | ✓ | PPA 中的 Performance(性能) |
C | ✓ | PPA 中的 Area(面积) |
D | ✗ | 成本是面积的结果,非 PPA 直接组成部分 |
2. 题目内容
下述关于覆盖率收集结果的描述正确的是()。
1. 解题步骤
1.1 覆盖率分析
覆盖率类型 | 作用 | 达标标准 |
---|---|---|
代码覆盖率 | 检查代码执行情况 | 一般要求 ≥95% |
功能覆盖率 | 检查功能点覆盖 | 必须 100% |
1.2 选项分析
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 代码覆盖率高、功能覆盖率低,需加强功能点覆盖 | ✓ | 功能覆盖率低说明测试用例未覆盖全部功能场景 |
B | 代码覆盖率低、功能覆盖率高,是危险信号 | ✓ | 功能覆盖率高但代码未执行,可能遗漏 RTL 代码 |
C | 功能覆盖率达 100% 时,代码覆盖率一定全部覆盖 | ✗ | 功能覆盖率高 ≠ 代码覆盖率 100%(如冗余代码) |
D | 代码和功能覆盖率高,需加强边界/异常测试 | ✓ | 高覆盖率仍需检查 corner case |
2. 最终答案
正确答案:A、B、D
3. 题目内容
在设计中,可以被用于进行不同时钟域隔离的 memory 类型为()。
1. 解题步骤
1.1 跨时钟域隔离的 memory 要求
- 必须支持双端口:允许读写端口分别连接不同时钟域。
- 常见类型 :
- Dual-port RAM(双端口 RAM)
- Two-port Register File(双端口寄存器文件)
1.2 选项分析
选项 | 类型 | 是否适用 | 依据 |
---|---|---|---|
A | Two-port Register File | ✓ | 双端口支持跨时钟域 |
B | Single-port Register File | ✗ | 单端口无法隔离时钟域 |
C | Single-port RAM | ✗ | 单端口无法隔离时钟域 |
D | Dual-port RAM | ✓ | 工业标准解决方案 |
2. 最终答案
正确答案:A、D
4. 题目内容
芯片的工作条件主要是指()。
1. 解题步骤
1.1 芯片工作条件三要素(PVT)
- Process(工艺):制造工艺偏差(FF/SS/TT)。
- Voltage(电压):工作电压范围(如 0.8V±10%)。
- Temperature(温度):工作温度范围(如 -40℃~125℃)。
1.2 选项分析
选项 | 参数 | 是否属于工作条件 | 依据 |
---|---|---|---|
A | 工艺 | ✓ | PVT 中的 Process |
B | 电压 | ✓ | PVT 中的 Voltage |
C | 温度 | ✓ | PVT 中的 Temperature |
D | 湿度 | ✗ | 属于环境条件,非芯片设计工作条件 |
2. 最终答案
正确答案:A、B、C
5. 题目内容
以下哪几种因素会影响芯片的静态功耗()。
1. 解题步骤
1.1 静态功耗的组成
静态功耗主要由 漏电流 引起,影响因素包括:
- 工作电压(A):电压越高,漏电流越大。
- 工作温度(C):温度越高,漏电流越大。
- 工艺(E):先进工艺漏电流更大(如 FinFET vs. Planar)。
1.2 选项分析
选项 | 参数 | 是否影响静态功耗 | 依据 |
---|---|---|---|
A | 工作电压 | ✓ | 电压越高,漏电流越大 |
B | 负载电容 | ✗ | 影响动态功耗,非静态功耗 |
C | 工作温度 | ✓ | 温度越高,漏电流越大 |
D | 翻转活动因子 | ✗ | 影响动态功耗,非静态功耗 |
E | 工艺 | ✓ | 先进工艺漏电流更大 |
2. 最终答案
正确答案:A、C、E
6. 题目内容
下面哪些语句是不可综合的()。
1. 解题步骤
1.1 可综合与不可综合语句
语句 | 可综合性 | 说明 |
---|---|---|
generate | ✓ | 用于生成逻辑结构 |
always | ✓ | 用于描述组合/时序逻辑 |
time | ✗ | 仿真时间相关,不可综合 |
initial | ✗ | 用于仿真初始化,不可综合 |
delays | ✗ | 仿真延迟,不可综合 |
1.2 选项分析
选项 | 语句 | 是否可综合 | 依据 |
---|---|---|---|
A | generate | ✓ | 可综合 |
B | always | ✓ | 可综合 |
C | time | ✗ | 不可综合 |
D | initial | ✗ | 不可综合 |
E | delays | ✗ | 不可综合 |
2. 最终答案
正确答案:C、D、E
7. 题目内容
在 IC 设计中,复位设计面临的主要问题包括()。
1. 解题步骤
1.1 复位设计的关键问题
- 时钟域的同步(A):复位信号需同步到目标时钟域,避免亚稳态。
- 去毛刺(B):复位信号需滤波,避免毛刺导致误触发。
- STA 检查(C) :复位路径需满足建立/保持时间要求,有同步复位。
- 对时钟的依赖程度(D):同步复位依赖时钟,异步复位不依赖。
1.2 选项分析
选项 | 问题 | 是否相关 | 依据 |
---|---|---|---|
A | 时钟域的同步 | ✓ | 复位信号需同步到目标时钟域 |
B | 去毛刺 | ✓ | 复位信号需滤波,避免毛刺 |
C | STA 检查 | ✓ | 复位路径需满足时序要求 |
D | 对时钟的依赖程度 | ✓ | 同步/异步复位的时钟依赖不同 |
2. 最终答案
正确答案:A、B、C、D
8. 题目内容
下面关于 always 语句的使用描述正确的是()。
1. 解题步骤
1.1 always 语句使用规范
- 组合逻辑 always 模块 :
- 使用 阻塞赋值(=)(A 正确)。
- 敏感信号列表需完整,避免锁存器(C 正确)。
- 时序逻辑 always 模块 :
- 使用 非阻塞赋值(<=)(B 正确)。
- 敏感信号列表避免冗余(D 正确)。
1.2 选项分析
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 组合 always 模块使用阻塞赋值 | ✓ | 规范要求 |
B | 时序 always 模块使用非阻塞赋值 | ✓ | 规范要求 |
C | 避免组合 always 模块敏感信号列表缺少信号 | ✓ | 防止锁存器 |
D | 避免敏感信号列表中出现冗余信号 | ✓ | 提高代码可读性 |
2. 最终答案
正确答案:A、B、C、D
9. 题目内容
125MHz 时钟域的多 bit 信号 A[127:0] 需要同步到 25MHz 时钟域,可能使用的同步方式有()。
1. 解题步骤
1.1 跨时钟域同步的核心挑战
- 多 bit 信号同步 :
- 直接打拍会导致数据错位(位偏移)。
- 必须保证所有 bit 在目标时钟域同时生效。
1.2 同步方式分析
选项 | 同步方式 | 适用性 | 依据 |
---|---|---|---|
A | 双向握手 | ✓ | 通过握手协议确保数据完整传输,适用于任意频率比 |
B | DMUX | ✗ | DMUX 是数据选择器,无法解决跨时钟域同步问题 |
C | 打三拍 | ✗ | 仅适用于单 bit 信号,多 bit 信号会位偏移 |
D | 异步 FIFO | ✓ | 工业标准方案,支持任意频率比的多 bit 数据传输 |
2. 最终答案
正确答案:A、D
关键结论:
- 握手协议(A) 和 异步 FIFO(D) 是可靠的多 bit 跨时钟域同步方案。
- DMUX(B) 和 打拍(C) 不适用多 bit 同步。
10. 题目内容
关于异步 FIFO 的设计,以下说法正确的是()。
1. 解题步骤
1.1 异步 FIFO 设计要点
- 格雷码指针:读写指针用格雷码编码,避免多 bit 跳变。
- 深度计算 :
FIFO_depth >= (写速率 - 读速率) × 最大延迟
。 - 空满判断:比较格雷码指针的 MSB 和剩余位。
1.2 选项分析
选项 | 描述 | 正误 | 依据 |
---|---|---|---|
A | 读写指针需用二进制编码 | ✗ | 必须用格雷码 |
B | 深度需覆盖最坏情况速率差 | ✓ | 避免溢出或空读 |
C | 空满判断可直接比较指针值 | ✗ | 需特殊处理格雷码指针 |
D | 时钟域隔离仅需打两拍 | ✗ | 指针同步需额外处理 |
2. 最终答案
正确答案:B
总结
题号 | 正确答案 | 核心考点 |
---|---|---|
9 | A、D | 多 bit 跨时钟域同步方案 |
10 | B | 异步 FIFO 设计规范 |
10. 题目内容
某个时钟域的建立时间要求是 3ns,保持时间要求是 3ns,那么如下几个寄存器,存在时序收敛问题的是:
1. 解题步骤
1.1 时序收敛条件
- 建立时间(Setup Time) :
- 数据在时钟有效沿前需稳定至少 3ns。
- 保持时间(Hold Time) :
- 数据在时钟有效沿后需稳定至少 3ns。
1.2 选项分析
选项 | 稳定时间(Setup) | 稳定时间(Hold) | 是否满足时序 | 依据 |
---|---|---|---|---|
A | 4ns(≥3ns) | 6ns - 4ns = 2ns(<3ns) | ✗ | 保持时间不满足 |
B | 4ns(≥3ns) | 8ns - 4ns = 4ns(≥3ns) | ✓ | 建立/保持时间均满足 |
C | 2ns(<3ns) | 8ns - 2ns = 6ns(≥3ns) | ✗ | 建立时间不满足 |
D | 2ns(<3ns) | 6ns - 2ns = 4ns(≥3ns) | ✗ | 建立时间不满足 |
2. 最终答案
存在时序收敛问题的选项:A、C、D
关键结论:
- A:保持时间不满足(2ns < 3ns)。
- C:建立时间不满足(2ns < 3ns)。
- D:建立时间不满足(2ns < 3ns)。