0

我想获得一份准确的功率报告,其中包含真实的动态和静态功耗。我正在研究 Xilinx spartan3 板。我的代码没有错误,但是在 ISE(Xilinx 综合工具)中选择“生成文本功耗报告”后,功耗报告总是显示我的设计没有动态功耗。(为什么?)

电源报告:

Dynamic   =  0.00
Quiescent =  59.84
Total     =  59.84

我的代码:

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;

ENTITY SRAM IS
  PORT(
    clk  : IN  std_logic;
    wr   : IN  std_logic;
    din  : IN  std_logic_vector(7 DOWNTO 0);
    dout : OUT std_logic_vector(7 DOWNTO 0);
    addr : IN  INTEGER RANGE 0 TO 3
  );
END SRAM;

ARCHITECTURE Behavioral OF SRAM IS
    TYPE matrix IS ARRAY (0 TO 3) OF std_logic_vector(7 DOWNTO 0);
    SIGNAL mem : matrix;
    BEGIN
        PROCESS(clk)
            BEGIN
            IF clk = '1' AND clk'event THEN
                IF wr = '1' THEN
                    mem(addr) <= din;
                END IF;
            END IF;
    END PROCESS;
    dout <= mem(addr);
END Behavioral;

警告列表:

设计负载 20% 完成设计负载 25% 完成设计负载 30% 完成设计负载 60% 完成设计负载 95% 完成设计负载 100% 完成警告:PowerEstimator:270 - 功率估计被认为不准确。查看

警告:电源:1337 - 时钟网络“clk_BUFGP”的时钟频率为零。

警告:电源:1337 - 时钟网络“clk_BUFGP/IBUFG”的时钟频率为零。

警告:电源:1369 - 未找到一个或多个时钟的时钟频率


根据“Brian”评论,我编辑了电源报告的结果:

Clocks    = 0.92 mw
Logic     = 0.00 mw
Signals   = 0.09 mw
IOs       = 0.15 mw
Quiescent = 59.85 mw
Total     = 61.01 mw
4

1 回答 1

1

正如 Brian 在他的评论中指出的那样,您最初的功耗估算没有动态功耗的原因是,在最初模拟设计时,它是在静态状态下模拟的。也就是说,您的设计中没有任何元素可以切换。你的设计元素没有被切换的原因是因为设计的所有元素都只对时钟的变化敏感;如果时钟没有上升沿,则不会消耗动态功率。

当您将时钟频率约束应用于您的时钟网络时,这为模拟器提供了有关您计划在实际硬件中以多快的速度运行您的设计的信息。如果您愿意,您可以调整约束(25、50、100、... 200MHz)以查看动态功率如何受到影响。

于 2015-02-10T17:46:47.103 回答