`timescale 1ps / 1ps
`include "clk_monitor.sv"module clk_vip_0_exdes_tb();wire clk_out;//Declare monitor for master CLK VIP clk_monitor#(10.0) mst_monitor;//Declare monitor for passthrough CLK VIP clk_monitor#(10.0) passthrough_monitor;initial begin/******************************************************************************************* * The hierarchy path of the CLK VIP's interface is passed to the monitor when it is newed* construct mst_monitor and assign the master clk vip interface to its virtual interface* construct passthrough_monitor and assign the passthrough clk vip interface to its* virtual interface*******************************************************************************************/mst_monitor =new("Clk mst_monitor",clk_vip_0_exdes_tb.DUT.ex_design.clk_vip_mst.inst.IF);passthrough_monitor =new("Clk passthrough_monitor",clk_vip_0_exdes_tb.DUT.ex_design.clk_vip_passthrough.inst.IF);/******************************************************************************************* switch passthrough VIP into runtime master mode* 8.1 start clock-- this will generate the default clk with period(default passthrough clk* vip period) with no jitter, duty cycle 50%* 8.2 turn on mst_monitor clk check with expected clk settings*******************************************************************************************/clk_vip_0_exdes_tb.DUT.ex_design.clk_vip_passthrough.inst.set_master_mode();#1ns;clk_vip_0_exdes_tb.DUT.ex_design.clk_vip_passthrough.inst.IF.set_initial_value(0);clk_vip_0_exdes_tb.DUT.ex_design.clk_vip_passthrough.inst.IF.start_clock();passthrough_monitor.enable_clk_check(.expected_period(10.0),.expected_duty_cycle(0.50),.expected_jitter(0.0));#(10.0*10*1ns);/******************************************************************************************* * 9.1 update clock by calling set_clk_prd with clock period, duty cycle,jitter on/off,* jitter minmum range, jitter maximum range,if jitter is on,it means* that the jitter is randomized picked between jitter minmum range and jitter maximum* range)* 9.2 turn on the monitor check with expected clock period, duty cycle and jitter*******************************************************************************************/clk_vip_0_exdes_tb.DUT.ex_design.clk_vip_passthrough.inst.IF.set_clk_prd(.user_period(1000),.user_duty_cycle(0.3),.user_jitter_on(1),.user_jitter_min_range(0.0),.user_jitter_max_range(0.01));passthrough_monitor.enable_clk_check(.expected_period(1000),.expected_duty_cycle(0.3),.expected_jitter(0.01));#4000ns;/******************************************************************************************* * 10.1 update clock by calling set_clk_frq with clock frequency, duty cycle,jitter on/off,* jitter minmum range, jitter maximum range,if jitter is on,it means * that the jitter is randomized picked between jitter minmum range and jitter maximum* range)* 10.2 turn on the monitor check with expected clock period, duty cycle and jitter*******************************************************************************************/clk_vip_0_exdes_tb.DUT.ex_design.clk_vip_passthrough.inst.IF.set_clk_frq(.user_frequency(10000000),.user_duty_cycle(0.7),.user_jitter_on(0),.user_jitter_min_range(0.0),.user_jitter_max_range(0.00));passthrough_monitor.enable_clk_check(.expected_period(100),.expected_duty_cycle(0.7),.expected_jitter(0));#810ns;/******************************************************************************************* * update clock again with different period and duty cycle*******************************************************************************************/clk_vip_0_exdes_tb.DUT.ex_design.clk_vip_passthrough.inst.IF.set_clk_prd(.user_period(200),.user_duty_cycle(0.4),.user_jitter_on(1),.user_jitter_min_range(0.0),.user_jitter_max_range(0.02));passthrough_monitor.enable_clk_check(.expected_period(200),.expected_duty_cycle(0.4),.expected_jitter(0.0));#1080ns;/******************************************************************************************* * stop clock and disable passthrough monitor*******************************************************************************************/clk_vip_0_exdes_tb.DUT.ex_design.clk_vip_passthrough.inst.IF.stop_clock();passthrough_monitor.disable_clk_check();#1;/******************************************************************************************* * set clk_vip_passthrough back into passthrough mode*******************************************************************************************/clk_vip_0_exdes_tb.DUT.ex_design.clk_vip_passthrough.inst.set_passthrough_mode();#(10*1ns);$display("EXAMPLE TEST DONE : Test Completed Successfully");$finish;endchip DUT(.clk_out(clk_out));endmodule
问题如下图:
This address is restrictedThis address uses a network port which is normally used for purposes other than Web browsing. Firefox has canceled the request for your protection.
此地址受到限制
此地址使用通常用于 Web 浏览以外的目的的网…