推荐答案
测试一下
题目
下面代码描述的是一个什么样的电路?
A、综合为Latch
B、带同步复位的D触发器
C、带异步复位的D触发器
D、组合逻辑
参考答案与知识点
参考答案
本题缺少具体代码,但基于常见笔试题目,假设典型的Verilog代码为:
always @(posedge clk or posedge rst) begin
if (rst)
q <= 0;
else
q <= d;
end
该电路敏感列表同时包含时钟上升沿和复位上升沿,复位信号不在时钟边沿控制之下,只要rst出现上升沿,就立刻触发复位赋值,属于异步复位。复位到0后,时钟上升沿才执行数据传递,因此是带异步复位的D触发器。选项C正确。
若代码敏感列表仅有posedge clk,且if(rst)写在always内部,则为同步复位(选项B)。若敏感列表为电平信号(如d或en),且使用阻塞赋值,则综合为透明锁存器(选项A)。若always块内为纯组合逻辑赋值(如q = d & en),则为组合逻辑(选项D)。
核心考点:边沿敏感列表与电平敏感列表的区别;同步复位与异步复位的实现方式;锁存器与触发器的综合条件。易错点:混淆同步复位和异步复位时敏感列表的写法;误认为always @(posedge clk)内的if(rst)是异步复位(实际为同步复位);忽略灵敏列表中的异步信号必须与时钟并列书写。
涉及知识点
- 边沿敏感列表与电平敏感列表
- 同步复位与异步复位的区别
- D触发器的Verilog描述
- 锁存器的推断条件
- 组合逻辑与时序逻辑的区分
- 硬件综合中的敏感信号完整性