使用bind命令时,无法将dut绑定到接口

时间:2017-01-04 13:03:54

标签: system-verilog

请帮助弄清楚我在使用bind命令时遇到的问题,将我的DUT绑定到接口。我无法将我的dut信号绑定到接口信号。模拟器不断给出错误。

我觉得我需要将所有DUT端口定义为接口的输入/输出端口,以使bind命令工作。 这是我的代码:

module top();
…

trfcCtrlItf itf (clock);

trafficController dut
    (hwy, hwy_wlk, cntry, cntry_wlk, 
    cntrRdCarsNmb, 
    setup, done, 
    clock, clear);

bindModule bind_inst(clock);
…
endmodule

module bindModule (input bit clk);

 bind trafficController trfcCtrlItf bind_inst 
    (hwy, hwy_wlk, cntry, cntry_wlk, 
    cntrRdCarsNmb, 
    setup, done, 
    clock, clear);  

endmodule

module trafficController
    (hwy, hwy_wlk, cntry, cntry_wlk, 
    cntrRdCarsNmb, 
    setup, done, 
    clock, clear);

output reg [1:0] hwy, cntry;
output reg [1:0] hwy_wlk, cntry_wlk; 
input setup, done;
input clock, clear;
input[5:0] cntrRdCarsNmb;   
…
endmodule

interface trfcCtrlItf (input bit clock);

logic clear;
logic [1:0] hwy, cntry;
logic [1:0] hwy_wlk, cntry_wlk;
logic setup, done;
logic [5:0] cntrRdCarsNmb;

modport dut (input clock, clear, setup, done, cntrRdCarsNmb, 
             output hwy, cntry, hwy_wlk, cntry_wlk);

modport tb (output clock, clear, setup, done, cntrRdCarsNmb, 
            input hwy, cntry, hwy_wlk, cntry_wlk);
endinterface

模拟器在绑定模块上给错误说明端口连接太多

  

**致命:(vsim-3365)E:/Documents/SystemVerilog/UVM_Reg_myExample_trfcCntrl/bindModule.sv(15):

     

端口连接太多。预计1,发现9。

请不要发送这篇文章作为答案: http://events.dvcon.org/2012/proceedings/papers/01P_3.pdf

1 个答案:

答案 0 :(得分:0)

bind trafficController trfcCtrlItf bind_inst

表示将(接口)trfcCtrlItf的实例绑定到具有实例名称trafficController的模块bind_inst中。接口trfcCtrlItf只有一个端口,但在此语句中,您将连接9个端口:

 bind trafficController trfcCtrlItf bind_inst 
    (hwy, hwy_wlk, cntry, cntry_wlk, 
    cntrRdCarsNmb, 
    setup, done, 
    clock, clear);  

因此你的错误。