Почему динамическое энергопотребление всегда равно нулю?

Я хочу получить точный отчет о мощности, содержащий реальное динамическое и статическое потребление энергии. Я работаю на плате 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 % Чтобы увидеть

ВНИМАНИЕ: Мощность: 1337 - Тактовая частота для тактовой сети "clk_BUFGP" равна нулю.

ВНИМАНИЕ: Мощность: 1337 - Тактовая частота для тактовой сети "clk_BUFGP/IBUFG" равна нулю.

ВНИМАНИЕ: мощность: 1369 - тактовая частота для одного или нескольких часов не найдена.


Согласно комментарию Брайана, я редактирую результат отчета о мощности:

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

person Amir    schedule 09.12.2014    source источник
comment
Предупреждения говорят вам. Поскольку динамическая мощность зависит от частоты, сообщите ей свою тактовую частоту. Найдите в справке временные ограничения. Примените ограничение тактового периода и повторите попытку.   -  person user_1818839    schedule 09.12.2014
comment
Большое спасибо, Брайан. Я применяю период clk (20 нс) на вкладке Timing Constrains. Я добавил окончательные результаты в конце моего Вопроса. Есть ли другие изменения или отчет по мощности завершен?   -  person Amir    schedule 09.12.2014


Ответы (1)


Как указал Брайан в своем комментарии, причина, по которой ваша первоначальная мощность оценка не имела динамического энергопотребления, заключалась в том, что при первоначальном моделировании конструкции она моделировалась в статическом состоянии. То есть никакие элементы вашего дизайна не переключались. Причина, по которой никакие элементы вашего дизайна не переключались, заключается в том, что все элементы дизайна чувствительны только к изменениям часов; если часы не имеют нарастающего фронта, то динамическая мощность потребляться не будет.

Когда вы применили ограничение тактовой частоты к вашей тактовой сети, это предоставило симулятору информацию о том, насколько быстро вы планируете запускать свой проект на реальном оборудовании. При желании вы можете настроить ограничение (25, 50, 100, ... 200 МГц), чтобы увидеть, как это влияет на динамическую мощность.

person Community    schedule 10.02.2015