2014-09-22 2 views
0

У меня есть SV субблок с реальными входами:System Verilog модель внутри VHDL TestBench, выпуск Real порта

`include "Components.sv" 

    module EPO_REG #(parameter bit ExtIso = 1, real th_high = 5.5 , real th_low = 4.2)(input bit EPO_SETPOINT, NVC_PMOS_ON, NVC_NMOS_ON ,**input var real IVcc5, Viso, Vcc5_ext** ,output real EpoPower, Vcc5, IEPO); 

    real Iin; 
    real Vout; 
    real Vcap; 
    real Ids_nmos; 
    ........... 
    ........... 

я положил этот блок в уровне VHDL верхнего (или Testbench), например, таким образом:

LIBRARY IEEE; 
USE IEEE.STD_LOGIC_1164.ALL; 
USE IEEE.NUMERIC_STD.ALL; 
USE IEEE.MATH_REAL.ALL; 

entity EPO_REG_WRAP is 

    GENERIC (
     ExtIso  : bit := '1'; 
     th_high : REAL := 5.5; 
     th_low  : REAL := 4.2 
    ); 
    PORT (
     NVC_PMOS_ON : IN STD_LOGIC; 
     NVC_NMOS_ON : IN STD_LOGIC; 
     EPO_SETPOINT : IN STD_LOGIC; 
     Vcc5_ext  : IN REAL; 
     IVcc5  : IN REAL; 
     Viso   : IN REAL; 
     Vcc5   : OUT REAL; 
     EpoPower  : OUT REAL; 
     IEPO   : OUT REAL 
    ); 
end; 

architecture beh of EPO_REG_WRAP is 

COMPONENT EPO_REG 
    GENERIC (
     ExtIso  : bit := '1'; 
     th_high : REAL := 5.5; 
     th_low  : REAL := 4.2 
    ); 
    PORT (
     NVC_PMOS_ON : IN STD_LOGIC; 
     NVC_NMOS_ON : IN STD_LOGIC; 
     EPO_SETPOINT : IN STD_LOGIC; 
     Vcc5_ext  : IN REAL; 
     IVcc5  : IN REAL; 
     Viso   : IN REAL; 
     Vcc5   : OUT REAL; 
     EpoPower  : OUT REAL; 
     IEPO   : OUT REAL 
    ); 
end component; 

begin 

UEPO_REG: EPO_REG 
     GENERIC MAP(
      ExtIso  => '1', 
      th_high => 5.5, 
      th_low => 4.2 
     ) 
     PORT MAP(
      NVC_PMOS_ON => NVC_PMOS_ON, 
      NVC_NMOS_ON => NVC_NMOS_ON, 
      EPO_SETPOINT => EPO_SETPOINT, 
      Vcc5_ext   => Vcc5_ext, 
      IVcc5 => IVCC5, 
      Viso => Viso, 
      EpoPower => EpoPower, 
      Vcc5 => Vcc5, 
      IEPO => IEPO 
     ); 

end; 

Но я получаю следующие ошибки во время разработки:

ncelab: *E,MAINVR: Mapping of Verilog var port of mode IN with VHDL port/signal of entity/component 'VCC5_EXT' (File : EPO_REG_WRAP.vhd, line: 42, position: 13) is not supported. 
ncelab: *E,MAINVR: Mapping of Verilog var port of mode IN with VHDL port/signal of entity/component 'IVCC5' (File : EPO_REG_WRAP.vhd, line: 43, position: 10) is not supported. 
ncelab: *E,MAINVR: Mapping of Verilog var port of mode IN with VHDL port/signal of entity/component 'VISO' (File :EPO_REG_WRAP.vhd, line: 44, position: 9) is not supported. 

насколько я знаю, SV поддерживает реальные величину.О n портов. Что я делаю неправильно?

+0

Задать вопрос Cadence, если они поддерживают это в любой версии их инструмента. – toolic

ответ

0

Я решил переключиться с SV-2008 на SV-2012.

SV-2008 не позволяет изгнать из реальной сети, но он управляет только переменными. SV-2012 позволяет управлять сигналами.

0

Я могу разобрать следующий штраф с помощью Cadence (irun) Incisive 13.01, когда он установлен в SystemVerilog, предоставив файлу расширение .sv.

module EPO_REG #(
    parameter bit ExtIso = 1, 
    real th_high = 5.5 , 
    real th_low = 4.2 
)(
    input bit EPO_SETPOINT, NVC_PMOS_ON, NVC_NMOS_ON , 
    input var real IVcc5, Viso, Vcc5_ext, 
    output real EpoPower, Vcc5, IEPO); 
endmodule 
+0

Хорошо, но у вас есть VHDL-топ? Проблема возникает, когда файл получает реальный сигнал с вершины VHDL. – MtScor

+0

Вы опубликовали правильный код, который я могу попробовать (я не делаю VHDL)? в примере Verilog есть разделы, в которых подразумевалось, что он должен быть изменен, чтобы я мог его проверить. Я просто подтвердил, что SystemVerilog может иметь реальные порты, и то, как вы его написали, было действительно. Поскольку я обычно определяю параметр перед каждым параметром или ввод/вывод перед каждым портом. – Morgan

+0

Да VHDL является полным и действительным. Проблема у меня на границах между SV и VHDL – MtScor

Смежные вопросы