【发布时间】:2013-09-10 07:59:40
【问题描述】:
我必须实现一个串行执行 A+B+C+D 的电路。
A 和 B 使用第一个加法器相加,结果使用第二个加法器添加到 C,最后使用第三个加法器将结果一个接一个地添加到 D。
问题是,为了使设计低功耗。我必须关闭其他两个未使用的加法器。我能想到的只是启用和禁用信号,但这会导致延迟问题。
如何在 verilog 中有效地合成这个?
A、B、C、D 可能会在每个时钟周期发生变化。开始信号用于指示何时需要进行新的计算。
【问题讨论】:
-
任何相关材料都会有用
-
你所说的“连续”是什么意思?如果它是真正的位串行,您可以使用单个一位加法器并通过它移动所有位 - 最小功率,高延迟,无需关闭,相对容易编码。如果您实际上必须禁用两个真正的 n 位加法器以节省电力,那么您必须关闭它们的时钟。启用和禁用信号通常不会有什么帮助(很多),如果它们只是门控数据。
-
它是一个8位加法器,执行可以忽略
-
使用 Verilog 事件来触发加法器会更有效吗??
-
@TrafalgarLaw 否 Verilog 事件不可合成。
标签: verilog