作者takua624 (TAKUA)
看板EE_DSnP
标题[问题] HW6基本AIG格式问题
时间Fri Dec 9 23:30:19 2011
原本以为AIG就快要不难理解了,结果还是不行参透。
1.以SPEC里面第六页那个线路为例,
M = 10的意思不是"10个variable",而是"variable 最大到10"...吗?
所以只要最大那个是10,中间缺了4也没关系...吗?
既然这样,3号头上伸出来的11是怎麽回事呢?
2. ./tests.fraig/opt01.aag
M=2,那後面怎麽会既有一个input、一个output,还有一个gate呢?
而且cirp的结果也是"有三个东西"
不晓得我对这个aag档的解读是否正确:
aag 2 1 0 1 1 //variable编号最大到2,有一个PI、一个PO、一个AIG
2 // 有一个PI编号是1
4 // 有一个PO编号是2
4 0 2 // 有一个AIG编号是2,它的输出是 CONST 0 & PI 1
这样...所以PO可以跟AIG同样编号...吗?
然後PO 3是怎麽来的?明明不可以有三号不是吗?
--
春
苑树雪菜萌苗,
雀儿喜上夏枝梢;
蓝眼望尽
黄泉路,只盼俪人一
美笑。
长巾初解投送抱,金
珠丽叶贺新好;
神代仙眷且羡嫉,长伴相随誓到老。
静马千华留秋晚,冬风不止
三乡道;
红枝立约携手情,今此空余泣嚎啕。
姬宫千歌音悠悠,
樱井奏乐声袅袅;奈何天令伊人变,
飞离斯爱离斯去。
结城AIRA→ 悲恸独泣无人应,
白昼梦尽皆空语。
←美乡あき
Kalafina→ 红月旋响戚
音乐,黯然步上
镇魂旅。
←飞 兰
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.57.147.96
1F:→ Helicoid:原PO可以再看一次讲义和相关资料 再来决定要不要发文 12/09 23:34
嗯,又看过一次了,大概吧。是指这个吗?
http://fmv.jku.at/aiger/FORMAT
我决定还是继续问吧。
看了讲义与参考资料後,搞懂了PI、PO跟AIG可以互相重复
但还是不懂11号跟3号是怎麽来的。他们已经超过MAX variable的编号了吧。
2F:推 kickpp:我记得M就是var个数才是 literal跟varible不一样 12/10 00:08
3F:→ kickpp:一个varible会有正负所以有两个literal 我的理解是这样 12/10 00:09
4F:→ takua624:M就是VAR个数的话,opt01 M=2,可是东西有三个耶 12/10 00:10
5F:→ takua624:对,一个VAR有两个LITERAL 12/10 00:10
6F:推 vuluy:output不用编号 12/10 00:22
7F:推 kickpp:推楼上 12/10 00:39
8F:推 ric2k1:1. M 是指最大 variables 个数 (也是 varID),中间缺没关系 12/10 01:26
9F:→ ric2k1:2. 11 & 3 是 literal ID, which is 2*varId or 2*varID+1 12/10 01:27
10F:→ ric2k1:3. PO 不用有自己的 varID, 因为他一定是从别的 gate接来的 12/10 01:28
谢谢教授。可是SPEC上面那个线路里面,"11"如果是literal,指的应该是5号吧?
但是他是连到3号GATE的OUTPUT耶!
然後对这个aag:
aag 2 1 0 1 1
2
4
4 1 2
cirg 3 竟然有东西?明明没有3号variable啊?
如果3是一个literal,那应该是指1号variable,但并不是
这个神秘3是2号GATE的输出不是吗?
11F:→ e124553423:程式里PO好像会从M+1开始编号 12/10 07:56
12F:→ e124553423:可能是为了方便?(但是input还是要接对) 12/10 07:56
嗯,这样就还算能看出道理了,感谢楼上!
所以以opt01来说,神秘3号的确是一个variable,指的是"第[3-M]个PO",也就是第一个PO
然後要找第一个PO就要看aag的第三行那个"4",这个4是一个literal
所以就知道了第1个PO是接在2号variable的输出端,且没有反相
然後2号variable是一个AIG...[下略]
然後SPEC的神秘11例子里,11也是一个额外的variable,表示第一个PO
不过这样跟教授说的"PO不用有自己的varID"好像有点冲突。
是说在AIG的规则里面PO没有自己的varID,但在这个程式里为了方便,还是帮它编号吧?
※ 编辑: takua624 来自: 61.57.147.96 (12/10 09:04)
13F:推 ric2k1:从 1 号开始编 var ID 是因为 0 号留给 const 0 12/10 11:05
14F:→ ric2k1:PO 的 ID 是要在程式里头自己编的,为了 report 区别方便 12/10 11:06
15F:→ ric2k1:否则 cirg 3 你就不知道应该要 report 哪一个了 12/10 11:07
16F:推 ric2k1:关於 PO 的 ID,请见 spec 第四页 1.7 12/10 11:09