Hi,
While writing the assertion, Can we use the internal signal of DUT. or we should only use the input, output of DUT ?
Is their any recommendation ?
Thanks,
Hi,
While writing the assertion, Can we use the internal signal of DUT. or we should only use the input, output of DUT ?
Is their any recommendation ?
Thanks,
In reply to rkg_:
While writing the assertion, Can we use the internal signal of DUT. or we should only use the input, output of DUT ? Are there recommendations?
Example uses a module instead of a checker.
Ben Cohen
http://www.systemverilog.us/ ben@systemverilog.us
For training, consulting, services: contact http://cvcblr.com/home.html
** SVA Handbook 4th Edition, 2016 ISBN 978-1518681448
…
In reply to ben@SystemVerilog.us:
Thanks Ben :)
let me reframe my question in slightly diffrent way :-
lets say design has output signal inc and dec. i need to write property where I have to use inc and dec signal. and condition is like if inc or dec happen consecutively 4 times lock will be de- asserted
But in DUT they have used internal signal(fll_unlock_check_timer) to detect inc or dec. and every inc or dec fll_unlock check timer will change.
So my question is, Can i directly use (fll_unlock_check_timer == 4) lock should be de-asserted ?
In reply to rkg_:
I would write two assertions
Hi Ben,
/**
module formal_tb(
// clocks and resets
input Cpl_VDDCR_SOC_REFCLK,
input Cpl_VDDCR_SOC_REFCLK_100,
input Cpl_VDDCR_SOC_GAP_REFCLK,
input FCH_SIB_S5_RESETn,
input SOC_SIB_PWROK
// APB
// input PSEL,
// input PENABLE,
// input PREADY
);
/**
* Constrain pwrok
*/
default clocking clk_cb @(posedge Cpl_VDDCR_SOC_REFCLK_100); endclocking
default disable iff(!FCH_SIB_S5_RESETn);
property p_SOC_SIB_PWROK();
@(posedge Cpl_VDDCR_SOC_REFCLK_100) disable iff (!FCH_SIB_S5_RESETn)
FCH_SIB_S5_RESETn == 1;
endproperty // p_SOC_SIB_PWROK
asm_p_SOC_SIB_PWROK: assume property(p_SOC_SIB_PWROK());
property p_axi_always_ready(axready);
axready == 1;
endproperty // p_axi_always_ready
asm_p_axi_always_arready_TM_to_ROM:
assume property(p_axi_always_ready(secipsys.art.mpART.mpART_core.rom_axi_arready));
/**
* This property is made up, it is not based on specs. We just
* want to see something in the VCF task list.
/
/ property p_pready_max_wait_time();
@(posedge Cpl_VDDCR_SOC_REFCLK_100) disable iff (!FCH_SIB_S5_RESETn)
PSEL && PENABLE |-> ##[1:15] PREADY;
endproperty // p_pready_max_wait_time
ast_p_pready_max_wait_time: assert property(p_pready_max_wait_time());
*/
endmodule
bind secipsys formal_tb formal_tb_inst(.*);
/**
This is the code that i ahve written to access the internal module signals , I need to write the assert/assume to internal module signlas.
I am facing the segmentation fault issue .
Where i am stuck and not known the exact cause of segmentation fault.
Could you please point what is the mistake i have done .
if i need to provide more details i can provide .
Thanks,
Ambika M