Generate bins depending on value of another signal

Hello,

I want to generate coverage bins depending on the value of another signal. Here, initially clk_timeout =x and then after reset its value defined by user case. I want to cover that successful clk_timeout occurred. But in the coverage report I only see bin zero and not timeout.

covergroup c_timeout (ref logic[15:0] timeout_value, ref_logic[15:0]clk_timeout) @(posedge clk)
	clk_cnt_timeout:   coverpoint clk_timeout iff(reset){
		bins timeout = {timeout_value} ;
		bins zero    = {0};
	}
c_timeout c_timeout_fcov = new(DUT_timeout_value, DUT_timeout);

Is it because my timeout bin is created at the time of instantiation of the covergroup ? In any case how can I achieve this type of coverage considering I can not control instantiation time of covergroup.

In reply to Priyank Solanki:

Create two coverpoints with one bin instead of one coverpoint with two bins

covergroup c_timeout (ref logic[15:0] timeout_value, ref_logic[15:0]clk_timeout) @(posedge clk)
	clk_cnt_timeout:   coverpoint (clk_timeout == timeout_value) iff(reset){
		bins timeout = {1'b1} ;
	}
	clk_zero_timeout:  coverpoint clk_timeout iff(reset){
		bins zero = {0} ;
	}
endgroup