2014-09-22 71 views
0

內部系統的Verilog模型我有一個真正的輸入的SV子塊:VHDL測試平臺,真正的端口號

`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頂層(或測試平臺),例如以這種方式:

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支持O實值n個端口。我做錯了什麼?

+0

詢問Cadence是否支持他們的任何版本的工具。 – toolic 2014-09-22 13:19:26

回答

0

我通過從SV-2008切換到SV-2012解決了。

SV-2008不允許從真實網絡驅動,但它只能管理變量。 SV-2012允許管理信號。

0

我可以通過給予文件.sv擴展名來解析下面的罰款與Cadence(irun)Incisive 13.01當它被設置爲SystemVerilog。

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 2014-09-22 15:20:42

+0

您是否發佈了我可以嘗試的有效代碼(我沒有做VHDL)? Verilog的例子有其中的部分意味着它必須被修改,所以我可以檢查它。我只是驗證SystemVerilog可以有真正的端口,而且你寫的方式是有效的。正如我通常在每個端口之前的每個參數或輸入/輸出之前定義參數。 – Morgan 2014-09-22 16:28:45

+0

是VHDL是完整且有效的。我遇到的問題是SV和VHDL之間的界限 – MtScor 2014-09-22 19:09:30