作者ric2k1 (Ric)
看板EE_DSnP
標題[情報] FEC pairs
時間Mon Jan 17 16:10:59 2011
有同學想知道 FEC pairs/groups 怎麼存比較好,
所以我提供一下 ref prog. 的做法,不想被雷的請盡速按左鍵離開!
在剩下不到 24 小時的時間,請大家自行判斷是否要參考我的作法,
大家量力而為,能在時限內交出可以跑的程式比較重要。
1. In class CirMgr:
vector<IdList*> _fecGrps;
where
typedef vector<unsigned> IdList;
2. In CirMgr::initFEC()
create a local hash: Hash<CirPValue, IdList*> fecHash;
Simulate the first parallel pattern;
for_each(gate, _dfsList)
check gate->simPValue() ==> insert to fecHash
for_each(idList, fecHash)
if (idList->size() > 1) add to _fecGrps;
Note: fecHash will be destructed here!!
3. In CirMgr::checkFEC()
create a new vector<IdList*> newGrps;
for_each(idList, _fecGrps)
create a local hash: fecHash;
for_each(gate, idList)
check gate->simPValue() ==> insert to fecHash
for_each(idList2, fecHash)
if (idList2->size() > 1) add to newGrps;
local hash will be destructed here!!
_fecGrps.swap(newGrps);
clean up some data fields in gates.
大致上是這樣,還有一些細節,像是 gate 裡面要存 _fecGrps's index 等等,
我就不細講了。我是覺得如果現在才要改 FEC 的架構的話可能是有點來不及了,
請自行斟酌,參考參考就好!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.21.241
1F:推 puerpuella:我本來也要這樣做的...可是不會寫QQ 01/17 20:14
2F:推 BBSealion:感謝老師... 我終於成功解決sim10.aag了... 01/17 21:35
3F:→ BBSealion:不過跑大Case 真的慢的有點恐怖QQ... 01/17 21:36
4F:推 tomap41017:感謝老師釋出扣ㄉ 01/17 22:09
5F:推 pandakuo:目前我有的pair ref都有 但ref有的我會有一些些沒有 01/18 01:41
6F:→ pandakuo:這樣會算全錯嗎?因為現在介於debug跟寫report之間的選擇 01/18 01:42
7F:→ ric2k1:由於大家的 opt 結果不盡相同,所以不會做 FEC pair 的一一 01/18 01:45
8F:→ ric2k1:比對,只會對很小的電路看看 FEC pair 是否有被找出來! 01/18 01:45
9F:推 pandakuo:那所以個數跟老師不一樣也是對得可能?? 01/18 01:45
10F:→ ric2k1:當然! simulation 的多寡會影響 #FEC pairs 01/18 01:46
11F:→ pandakuo:所以是用小電路 然後助教用肉眼比對囉? 01/18 01:47
12F:→ ric2k1:小電路大家應該都會一樣吧! 01/18 01:48
13F:推 pandakuo:可是print的order cirp -fi 會不一樣 那大概沒問題了 01/18 01:49
14F:→ pandakuo:所以應該不是bug 01/18 01:49
15F:→ pandakuo:謝謝老師 01/18 01:49
16F:推 pandakuo:剛剛吃宵夜又想了一下 可是的問題徵狀應該如下 01/18 02:35
17F:→ pandakuo:1.我跑老師的ref我已經-noopt 2.我也沒有事先做化簡 01/18 02:36
18F:→ pandakuo:可是我的個數確實是比ref少幾個(當電路很大時) 01/18 02:36
19F:→ pandakuo:忘了說 我是有跑一樣的pattern 01/18 02:37