作者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