数字电路初学者
低功耗设计里,时钟门控是关键,但实现不好会引入功能问题。除了楼上说的锁存器+与门结构,笔试时可能还会问同步使能信号的问题。实际设计中,使能信号(en)通常来自同步时钟域,但为了绝对避免毛刺,最好再经过一个同步器(两级触发器)同步到主时钟clk,然后再送给时钟门控单元。这样虽然增加了一点延迟,但更稳健。代码可以扩展为:module clock_gating_sync (input clk, input async_en, output gated_clk); reg [1:0] sync_reg; reg en_latched; always @(posedge clk) sync_reg <= {sync_reg[0], async_en}; // 两级同步 always @(clk or sync_reg[1]) if (!clk) en_latched <= sync_reg[1]; assign gated_clk = clk & en_latched; endmodule。另一个常见考点是门控时钟的测试:由于门控时钟在使能无效时被关闭,扫描链测试会出问题。所以笔试可能会问如何解决,答案是使用测试模式信号(test_mode)旁路门控,在测试时让时钟直接通过。实现就是在与门之前加一个选择器:assign gated_clk = test_mode ? clk : (clk & en_latched)。把这些细节都答上,就显得很专业了。
