gpt4 book ai didi

vhdl - 设计中的所有触发器都需要可复位 (ASIC) 吗?

转载 作者:行者123 更新时间:2023-12-05 01:06:13 24 4
gpt4 key购买 nike

我试图了解芯片中的时钟复位。在设计中,什么标准用于决定在复位期间是否应将触发器分配给一个值(通常为零)?

always_ff @(posedge clk or negedge reset) begin : process_w_reset
if(~reset) begin
flop1 <= '0;
....
end else begin
if (condition) begin
flop1 <= something ;
....
end
end
end

always_ff @(posedge clk) begin : process_wo_reset
if (condition) begin
flop1 <= something ;
....
end
end

不重置稍后用作梳状逻辑中的控制信号的触发器是一种不好的做法吗?如果设计确保在将触发器用于梳状逻辑块(即在 if 语句或 FSM 梳状逻辑中)之前为其分配有效值(0 或 1),该怎么办?

我觉得最好总是重置设计中的所有触发器。这样芯片复位后就不会有X了。然而,对于数据路径逻辑来说,重置触发器可能不需要什么大不了的,因为它只是管道阶段。但是,如果触发器在控制路径中(即 FSM 下一状态梳逻辑),则应将其重置为默认值。我的理解正确吗?我对 DFT 了解不多,不确定它是否还有其他含义。

最佳答案

假设重置意味着异步重置,如代码示例中所示。

答案部分基于意见,因为可以使设计与最少数量的触发器 (FF) 和所有 FF 的复位一起工作。

我建议重置最少数量的 FF,通常这会导致控制路径中的大多数 FF 重置,而数据路径中的 FF 不会重置。下面概述了这种方法的优点。

仿真 对于 Verilog 和 VHDL,对于未初始化值的传播通常是保守的,因此模拟可以在值未初始化时同时检查 0 和 1 值。

由于未重置的 FF 导致的错误因此可能会在模拟验证中更早地显示出来,从而设计人员可以获得有关错误设计假设的宝贵反馈,这可能会导致设计中修复其他错误的更正。仅重置所有 FF 可能会隐藏此类错误。

如果在控制和数据路径中重置所有 FF,设计和验证似乎更容易,因为它修复了设计中所有那些“烦人的”X 传播。但是,当 X 传播通过重置被抑制时,它需要更多的测试来验证所有值组合。

实现 给复位信号带来更小的负载,因此更容易满足整个芯片复位网络的时序。

DFT (Design For Test) 通常,将复位添加到 FF 将不会帮助 DFT 找到卡在复位值的网络。使用 DFT 扫描链方法,其中所有 FF 都通过扫描链加载,那么某些 FF 上缺少复位将不需要更多向量。

关于vhdl - 设计中的所有触发器都需要可复位 (ASIC) 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29573968/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com