#functional-programming #verilog #code-coverage #add #system-verilog
#функциональное программирование #verilog #покрытие кода #система-verilog
Вопрос:
Я новичок в функциональном охвате в system-verilog. Я хочу написать covergroup, когда два сигнала не равны.
Например, у меня есть два отдельных покрытия для каждого сигнала.
covergroup group1 @(posedge `TB_TOP.clk);
cpb_1 : coverpoint `TB_TOP.sig1 {
bins r_zero = {0};
bins r_one = {1};
endgroup
covergroup group2 @(posedge `TB_TOP.clk);
cpb_2 : coverpoint `TB_TOP.sig2 {
bins r_zero = {0};
bins r_one = {1};
endgroup
Теперь я хочу добавить еще одно, когда sig1 не равен sig2 в позиции часов.
Спасибо
Ответ №1:
Вы имеете в виду что-то вроде этого?
covergroup group3 @(posedge `TB_TOP.clk);
// coverpoint can take an expression, so provide sig1!=sig2
cpb_3: coverpoint (`TB_TOP.sig1 != `TB_TOP.sig2) {
// Since we only want to cover this case, sample a true value (1) only
bins covered = {1};
}
endgroup