Re: [问题] HW4几个问题

楼主: kaie819 (kaie)   2010-04-28 22:47:42
感谢回答。
我有另一个有关于property checking的问题。
在做property checking的时后,我用reference code作测试,以counterBit2为例,
如果我设定property是!(00),会output 0:11,其中0当然就是因为一开始的state是
00,因此property fail,但后面的11似乎可以用任何input组合取代。范例的
porperty我也遇到类似的问题,就是最后一组input assignment感觉用什么都可以(?)
,因为这时候已经reach到!p的state了?
在simulation部分,由于DFF的值会在"这一个"cycle计算好,然后在"下一个"cycle
才更新,如果property fail出现在第n次的simulation,应该是表示前面n-1个input
所造成的,这样的话,第n次simulation给的值应该也就不重要了(?)。一样用
counterBit2所给的do file为例,其中p2,感觉给两个input就会reach到property fail
的state(10),可是reference code得到的counterexample会有三组input,而且
simulation时也需三次simulation才会观察到property fail,但似乎最后一组其实是
什么都可以(?)
※ 引述《ric2k1 (Ric)》之铭言:
: ※ 引述《kaie819 (kaie)》之铭言:
: : 有关于作业四目前遇到了几个问题
: : 1. 我想要建立DFF fanin cone的BDD,看CirGate的资料结构,可以借由CirGate[0]得到
: : fanin gate,可是实际这样用却得到的是自己这个DFF(?),如果要得到fanin cone,必须
: : 要用CirGate[0][0],这样做出来感觉是对的,但不知道是否合理?(二维?)
: 你确定你的 gate 是 DFF 吗? 看来有可能是 PO gate 哦?
: I wrote the following test code, and the output looks fine.
: for( unsigned i = 0, n = _dffList.size(); i < n; ++i ) {
: cout << i << ": " << endl;
: cout << _dffList[i]->getTypeStr() << endl;
: cout << (*_dffList[i])[0]->getTypeStr() << endl;
: }
: ======= for alu2.v =======
: 0:
: DFF
: AND
: 1:
: DFF
: AND
: ....<略>
: 7:
: DFF
: AND
: : 2. 作业题目有关于PTR的部份TR和TRI顺序好像跟程式不一致
: : 题目是PTR TR TRI; 程式是PTR TRI TR
: 啊... 写反了。
: 改题目好了,比较单纯。
: 就是改成 PTR [triName][trName]
: : 3. 有关于BddNode exist()的功能,不知道大家有没有问题,我用了不会作existential
: : quantification...(e.g., _tr.exit(2);),这个功能应该不需要自己implement吧?
: : 不知道有没有人可以帮我解答一下~
: Yes, the prototype for exist() is:
: BddNode exist(unsigned l) const;
: That means, _tr.exist(2) will return a existentially quantified BDD,
: but itself won't get changed (i.e. This is a constant method).
: So you should use something like "a = b.exist(2)".
: Of course, "_tr = _tr.exist(2)" works fine too,
: if that's what you intened to do.
作者: rockyai (rocky)   2010-04-28 23:13:00
对于property在DFF上,最后一组input确实是随意的这是因为我们对于simulation上所下的规定造成的我们希望在同一个time frame上,电路上的值都是正确模拟所以dff会在模拟完后的下一个cycle才被更新所以bdd验证上会等DFF被给值才验证出property
楼主: kaie819 (kaie)   2010-04-29 00:02:00
谢谢,不过这是只有针对DFF的验证吗?另外,想请教程式中nodeMove的问题,是不是没有node就不能做move,例如tautology,所以move前必须自己检查吗?像如果next state(Y)没node,这样要移到current state(X)似乎就会出现`thisLevel >= fromLevel'的assertion fail
作者: rockyai (rocky)   2010-04-29 09:19:00
property并不只针对DFF,可以从电路上任意点接出来所以对于其他property,最后input pattern有可能是固定的

Links booklink

Contact Us: admin [ a t ] ucptt.com