exponenta event banner

Создание кода из многоскоростных моделей

HDL Coder™ поддерживает генерацию кода HDL для многоскоростных моделей с одним и несколькими часами. Модель может включать блоки, выполняющиеся с несколькими показателями выборки:

  • В пределах тестируемого устройства (DUT).

  • На испытательном стенде за рулем DUT. В этом случае DUT наследует несколько скоростей дискретизации от своих входов или выходов.

  • Как на испытательном стенде, так и на DUT.

В общем, генерация кода ЛПВП для многоскоростной модели не сильно отличается от генерации кода ЛПВП для односкоростной модели. Однако существует несколько требований и ограничений в отношении конфигурации модели и использования специализированных блоков (таких как Rate Transitions), которые применяются к многоскоростным моделям. Дополнительные сведения см. в разделе Требования к многоскоростной модели для генерации кодов HDL.

Генерация включения синхронизации для многоскоростного DUT

На следующей блок-схеме показана внутренняя часть подсистемы, содержащей блоки, которые явно сконфигурированы с различными временами выборки. Верхний и нижний блоки «Counter Free-Running» имеют время выборки 10 с и 20 с соответственно. Выходные сигналы счетчиков направляются на выходные порты ST10 и ST20, которые наследуют свои образцы времени. Тракт сигнала, оканчивающийся на ST10 выполняется с базовой скоростью модели; тракт сигнала, оканчивающийся на ST20 - сигнал подскоростной передачи, выполняющийся на половине базовой скорости модели.

Как показано на следующем рисунке, выходы многоскоростного диска DUT To Workspace блокируются на тестовом стенде. Эти блоки наследуют время выборки выходов DUT.

В следующем списке показано объявление объекта VHDL ®, сформированное для DUT.

ENTITY DUT IS
  PORT( clk                               :   IN    std_logic;
        reset                             :   IN    std_logic;
        clk_enable                        :   IN    std_logic;
        ce_out_0                          :   OUT   std_logic;
        ce_out_1                          :   OUT   std_logic;
        ST10                              :   OUT   std_logic_vector(7 DOWNTO 0);  -- uint8
        ST20                              :   OUT   std_logic_vector(5 DOWNTO 0)  -- ufix6
        );
END DUT;

Объект имеет стандартные входы синхронизации, сброса и включения синхронизации и выходы данных для ST10 и ST20 сигналы. Кроме того, объект имеет два выхода включения синхронизации (ce_out_0 и ce_out_1). Эти выходы включения синхронизации воспроизводят внутренние сигналы включения синхронизации, поддерживаемые объектом контроллера синхронизации.

Следующий рисунок, показывающий часть моделирования Mentor Graphics ® ModelSim ® сгенерированного кода VHDL, позволяет наблюдать связь синхронизации часов базовой скорости (clk), тактовый сигнал активирует и вычисленные выходные сигналы модели.

После утверждения clk_enable (реплицируется ce_out_0), вычисляется новое значение и выводится в ST10 для каждого цикла тактовой частоты базовой скорости.

Вычисляют новое значение и выводят его для субскоростного сигнала. ST20 для каждого другого цикла тактовой частоты базовой скорости. Внутренний сигнал, enb_1_2_1 (реплицируется ce_out_1) регулирует время этого вычисления.