FPGA将暂停实体(通过暂停时钟输入)降低整体功耗?

时间:2018-05-05 11:35:21

标签: vhdl fpga

我目前正在创建一个多实体项目,其中所有实体都具有时钟同步架构(无行为),并且大多数实体都在派生时钟上工作。 我正在使用DE0 Nano,所以我的源时钟是50MHz,我有4个派生时钟:1 MHz,500 kHz,10 Hz和1 Hz。

Disclamer:虽然我知道以这种方式做事的能效要低得多,但我一直想知道是否有一些事情可以做到至少可以解决这个问题(我对这些想法持开放态度)。< / p>

现在,在顶级实体中,我有一个“事件处理程序”,它可以决定哪些实体应该在任何给定时刻工作。 因此,当我不需要给定实体工作一段时间时,我想出了将导出时钟输入信号的开/关时钟开关连接到较低级别实体并禁用其中一些(时钟输入)的想法。 (据我所知,这应该会阻止他们的进程在那段时间内被解雇)。

由于我没有简单的方法来测试这个想法(我估计需要花费大量的工作和时间,特别是设置功耗测量)我想问一下是否有人尝试过类似的东西和/或知道它是否值得一试?

为了您的信息,当前实体处于“休眠”模式时,它们的进程在每个上升的时钟边沿触发,检查内部状态或标记变量/信号并停止,例如:

process (1MHz clock) is
    variable ...
begin
    if rising_edge(clk) then
        if state = ready and enable = '1' then
             ...
        end if;
    end if;
end process;

或许还有其他更好的方法吗?

0 个答案:

没有答案