2015-08-14 54 views
0

1.是否可以在系統verilog中明確列出交叉覆蓋點?類似下面..顯式交叉覆蓋定義

2.Since我只雙峯{{1,2},{3,1},{2,4}}的發生興趣,而不是b1b2獨立,我可以做到這一點,而無需創建coverpoints b1b2(即只寫交叉覆蓋)?

covergroup test1 with function sample(int i,int j) ; 
    type_option.comment = "Config"; 
    b1:coverpoint int {bins m1[]={1,2,3};} 
    b2:coverpoint int {bins m2[]={1,2,4};} 
    mx :cross  int,int 
        { 
        bins mx1[] ={{1,2},{3,1},{2,4}}; 
        } 
endgroup 

回答

1

你可能不想要cross你試圖涵蓋。交叉的元素用於合併或排除元組,而不是創建它們。你可能想用一個簡單的coverpoint

cp: coverpoint {i,j} { 
    bins mx[]= { {32'd1,32'd2},{32'd3,32'd1},{32'd2,32'd4} }; 
} 

或者更簡單地說

cp: coverpoint {i[3:0],j[3:0]} { 
    bins mx[]= { 'h12,'h31,'h24 }; 
} 
+1

這將在報告中尋找那種尷尬,雖然。我仍然會進行交叉覆蓋,並將單個覆蓋點上的權重設置爲0. –

+0

@Tudor,這實際上取決於OP希望覆蓋的內容。 –

+0

@ dave_59是不是隻是連接兩個整數?如果我和j是枚舉呢? – Jean