2014-09-22 87 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