作者yan12125 (姥姥)
看板EE_DSnP
標題[問題] FEC觀念問題
時間Tue Jan 1 23:38:00 2013
我丟一個我自己寫的aag file:
aag 4 2 0 2 2
2
4
6
8
6 2 4
8 2 5
模擬的pattern:(00跟10各重複32次)
00
....
00
10
....
10
第一輪模擬完AIG 3和AIG 4都是0000_0000_0000_0000_0000_0000_0000_0000,
cirp -fec應該像這樣:
[0] 0 3 4
第二輪模擬AIG 3=0000_0000_0000_0000_0000_0000_0000_0000,
AIG 4=1111_1111_1111_1111_1111_1111_1111_1111
這時./ref/fraig給出cirp -fec的結果是:
[0] 0 3 !4
第一輪模擬後3跟4在同一組,只要之後任何模擬的結果不一樣,兩個gate就要分成
兩組吧?
--
誰知真患難 忽悟大光明 日出雲俱靜 風消水自平
功名幾滅性 忠孝大勞生 天下惟豪傑 神仙立地成
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.241.234
1F:推 ric2k1:因為 00...000 與 11...111 是 inverse FEC,所以還是會被 01/01 23:50
2F:→ ric2k1:放在同一組,只是加上 ! 變成 !4 01/01 23:51
3F:→ yan12125:我的想法是:如果兩個gate equiv. ,則所有的input都會使 01/02 00:00
4F:→ yan12125:結果相同,而如果是inverse equiv. ,則所有的input都會 01/02 00:01
5F:→ yan12125:結果完全相反,因此對於已知的兩個gate,如果存在兩組 01/02 00:03
6F:→ yan12125:input分別使結果完全相同與完全相反,則這兩個gate既不是 01/02 00:03
7F:→ yan12125:equiv. 也不是inverse equiv. ,那就沒有必要繼續留在 01/02 00:04
8F:→ yan12125:functionally equivalent "candidate" pairs裡吧? 01/02 00:05
9F:推 ric2k1:你這麼說的確有道理,ref prog 的確沒有把這個因素考慮進去 01/02 00:12
10F:→ ric2k1:我等一下有空來改一下。 01/02 00:14
11F:→ yan12125:推! 01/02 00:18
12F:推 ric2k1:不過我又想了一下,在正常的 parrallel pattern 模擬底下 01/02 00:21
13F:→ ric2k1:兩個 gates 要前一次 32 個 patterns 是 eq, 下一次 32 個 01/02 00:21
14F:→ ric2k1:patterns 是 inv-eq 的機率幾乎是 0, 為了這樣去改變我收集 01/02 00:22
15F:→ ric2k1:FEC pairs 的機制似乎不太划算,所以我就不改了。 01/02 00:23
16F:→ ric2k1:我們在測的時候會注意不要讓這樣的情形發生。 01/02 00:23
17F:→ yan12125:XD 我亂數產生10000個gate的電路+65行的pattern file 01/02 00:25
18F:→ yan12125:10幾次就出現了 01/02 00:26
19F:→ yan12125:似乎32k+1個pattern時比較容易出現 01/02 00:26
20F:推 ric2k1:不懂... 不過基本上這不會影響 FRAIG 的正確性。也許在某些 01/02 00:45
21F:→ ric2k1:case 會讓 cirp -FEC 不夠精確,但我想 sim 的重點還是要快 01/02 00:46
22F:→ ric2k1:而且夠就好,誤判的情形就交給 SAT,整體來說應該是比較好 01/02 00:47
23F:推 ric2k1:簡單的說,如果前面 32n 個 parallel patterns讓兩個 gates 01/02 01:15
24F:→ ric2k1:的反應一樣,但下 32 個亂數的 parallel patterns 卻讓 01/02 01:16
25F:→ yan12125:嗯 了解 01/02 01:16
26F:→ ric2k1:這兩個 gates 的反應正好反向,這樣的電路真的是太奇怪了, 01/02 01:17
27F:→ ric2k1:都給 SAT 去解 SAT(f == g) // 因為反向 01/02 01:18
28F:→ ric2k1:應該會一下子就解出來了,所以也不會有什麼 overhead 01/02 01:19
29F:→ ric2k1:但為了要檢查這種情形,以我目前的 implement 來說卻要 01/02 01:19
30F:→ ric2k1:多記/多傳一些東西,我覺得是不值得的。 01/02 01:20
31F:→ yan12125:感謝老師!問個小問題,讓我獲益良多 01/02 01:25
32F:→ yan12125:其實就算中間被誤判歸類為inverse FEC,最後還是會被分開 01/02 01:28
33F:→ yan12125:simulation pattern數量增加結果就一樣了 01/02 01:29