SV中的interface

来源:互联网 发布:部落冲突数据大全2016 编辑:程序博客网 时间:2024/05/24 00:20
随着设计复杂度的增加,模块之间的连接也变的复杂。通常连接DUT和Testbench的信号很多,一旦连接错误,平台就不能工作。并且很难发现其中的错误。添加信号的时候也是非常麻烦的。逻辑设计已经变的如此复杂,即使是块之间的通信也必须分割为独立的实体。SV中接口为块之间的通信建模,接口可以看成是一捆智能的连线。接口包含了连接,同步,甚至是两个块或者更多块之间的通信功能。它们连接了设计和测试平台。
`ifndef ROUTER_IO__SV`define ROUTER_IO__SVinterface router_io(input bit clk);   logic  reset_n ;              //logic为SV中新的数据类型。四值逻辑   logic [15:0] frame_n ;   logic [15:0] valid_n ;   logic [15:0] din ;   logic [15:0] dout ;   logic [15:0] busy_n ;   logic [15:0] valido_n ;   logic [15:0] frameo_n ;   clocking drvClk @(posedge clk);   //时钟块通过clk对块中的信号进行同步      output  reset_n;      output  frame_n;      output  valid_n;      output  din;      input   busy_n;   endclocking: drvClk   clocking iMonClk @(posedge clk);      input  frame_n;      input  valid_n;      input  din;      input  busy_n;   endclocking: iMonClk   clocking oMonClk @(posedge clk);      input  dout;      input  valido_n;      input  frameo_n;   endclocking: oMonClk   modport driver(clocking drvClk, output reset_n);   modport imon(clocking iMonClk);   modport omon(clocking oMonClk);   modport dut(input clk, reset_n, frame_n, valid_n, din, output dout, busy_n, valido_n, frameo_n);endinterface: router_io`endif
原创粉丝点击