Latch based isolation is similar to latch in architecture.
when user specify "-clamp_value latch " in set_isolation latch type isolation is used for analysis.
We can mimic RTL behavioural model of latch based isolation as below.
Behavioural model for Latch based isolation :
module ISO_LATCH (data,iso_en,q,VDD,VSS) ;
input data,iso_en;
input VDD,VSS ; //power and ground pin .
output q;
reg q_latch;
assign q = ((VDD && !VSS ) ? (iso_en ? q_latch : data ) : 1'bx) ;
always @ (VDD,VSS, iso_en,data) begin
if (!(VDD && !VSS ) ) begin
q_latch <= 1'bx ;
end
else if ( iso_en === 1'bx || iso_en === 1'bz) begin
q_latch <= 1'bx ;
end
else if (iso_en === 1'b1 )
q_latch <= data ;
end
endmodule
Example:
Let us consider below example to understand the simulation behavior of Latch based isolation.
Design:
module top (input in1,in2,iso_en,output out);
assign out = in1 & in2 ;
endmodule
UPF:
create_power_domain PD1
set_isolation iso_1 -domain PD1 -elements {out} -clamp_value latch -location self -isolation_signal iso_en -isolation_sense high
Here when "iso_en" signal changes to value 1 , value of signal "out" at that time will be latched until "iso_en" is changes to logic 0 , irrespective of domain primary supply .
when user specify "-clamp_value latch " in set_isolation latch type isolation is used for analysis.
We can mimic RTL behavioural model of latch based isolation as below.
Behavioural model for Latch based isolation :
module ISO_LATCH (data,iso_en,q,VDD,VSS) ;
input data,iso_en;
input VDD,VSS ; //power and ground pin .
output q;
reg q_latch;
assign q = ((VDD && !VSS ) ? (iso_en ? q_latch : data ) : 1'bx) ;
always @ (VDD,VSS, iso_en,data) begin
if (!(VDD && !VSS ) ) begin
q_latch <= 1'bx ;
end
else if ( iso_en === 1'bx || iso_en === 1'bz) begin
q_latch <= 1'bx ;
end
else if (iso_en === 1'b1 )
q_latch <= data ;
end
endmodule
Example:
Let us consider below example to understand the simulation behavior of Latch based isolation.
Design:
module top (input in1,in2,iso_en,output out);
assign out = in1 & in2 ;
endmodule
UPF:
create_power_domain PD1
set_isolation iso_1 -domain PD1 -elements {out} -clamp_value latch -location self -isolation_signal iso_en -isolation_sense high
Here when "iso_en" signal changes to value 1 , value of signal "out" at that time will be latched until "iso_en" is changes to logic 0 , irrespective of domain primary supply .
Hi Ravin,
ReplyDelete1. I couldn't able to understand properly..Can you plz explain in details. means what will be the clamp value when supply will be off for the domain ?
2. Can you plz describe in your blog what is Crroupt_on_activity and corrupt_on_change etc.
Hi Pankaj I have added example for latch based isolation.
ReplyDeleteFor COA , I have added another post http://patelravin.blogspot.in/2017/01/what-is-corruptonactivity-simstate.html