pushing register
This commit is contained in:
@ -1,57 +1,49 @@
|
||||
t.ff._mqib t.clk t.d t.q t.ff._sqib t.ff._sqi t.ff.__clk t.ff._mqi t.ff._clk
|
||||
t.ff.__clk_B t.ff._clk_B t.d t.clk
|
||||
[0] start test
|
||||
1 Reset : 0
|
||||
1 t.clk : 0
|
||||
1 t.d : 0
|
||||
3 t.ff._mqib : 1 [by t.d:=0]
|
||||
4756 t.ff._mqi : 0 [by t.ff._mqib:=1]
|
||||
5893 t.ff._sqib : 1 [by t.ff._mqi:=0]
|
||||
6007 t.ff._sqi : 0 [by t.ff._sqib:=1]
|
||||
7093 t._reset_B : 1 [by Reset:=0]
|
||||
10468 t.ff._clk : 1 [by t.clk:=0]
|
||||
12194 t.ff.__clk : 0 [by t.ff._clk:=1]
|
||||
71259 t.q : 0 [by t.ff._sqib:=1]
|
||||
61021 Reset : 0
|
||||
61021 t.clk : 1
|
||||
61021 t.d : 0
|
||||
61022 t.ff._clk_B : 0 [by t.clk:=1]
|
||||
61023 t.ff.__clk_B : 1 [by t.ff._clk_B:=0]
|
||||
65875 t._reset_B : 1 [by Reset:=0]
|
||||
|
||||
[1] reset completed
|
||||
71259 t.clk : 1
|
||||
71298 t.ff._clk : 0 [by t.clk:=1]
|
||||
71313 t.ff.__clk : 1 [by t.ff._clk:=0]
|
||||
[2] tested d = 0, clk rise
|
||||
71313 t.clk : 0
|
||||
71804 t.ff._clk : 1 [by t.clk:=0]
|
||||
71817 t.ff.__clk : 0 [by t.ff._clk:=1]
|
||||
71817 t.d : 1
|
||||
71817 t.clk : 1
|
||||
71857 t.ff._clk : 0 [by t.clk:=1]
|
||||
72272 t.ff.__clk : 1 [by t.ff._clk:=0]
|
||||
72292 t.ff._mqib : 0 [by t.ff.__clk:=1]
|
||||
78353 t.ff._mqi : 1 [by t.ff._mqib:=0]
|
||||
78353 t.d : 0
|
||||
78353 t.clk : 0
|
||||
WARNING: unstable `t.ff._mqib'+
|
||||
>> cause: t.ff._clk (val: 1)
|
||||
78369 t.ff._clk : 1 [by t.clk:=0]
|
||||
WARNING: weak-interference `t.ff._mqi'
|
||||
>> cause: t.ff._mqib (val: X)
|
||||
>> time: 78400
|
||||
78400 t.ff._mqib : X [by t.ff._clk:=1]
|
||||
78404 t.ff._mqib : 0 [by t.ff._clk:=1]
|
||||
WARNING: weak-unstable `t.ff._sqib'-
|
||||
>> cause: t.ff._mqi (val: X)
|
||||
>> time: 87529
|
||||
87529 t.ff._mqi : X [by t.ff._mqib:=0]
|
||||
87544 t.ff._mqi : 1 [by t.ff._mqib:=0]
|
||||
WARNING: weak-interference `t.ff._sqi'
|
||||
>> cause: t.ff._sqib (val: X)
|
||||
>> time: 92093
|
||||
WARNING: weak-interference `t.q'
|
||||
>> cause: t.ff._sqib (val: X)
|
||||
>> time: 92093
|
||||
92093 t.ff._sqib : X [by t.ff._mqi:=1]
|
||||
92148 t.q : X [by t.ff._sqib:=X]
|
||||
122467 t.ff.__clk : 0 [by t.ff._clk:=1]
|
||||
129024 t.ff._sqi : X [by t.ff._sqib:=X]
|
||||
135341 t.ff._sqib : 0 [by t.ff._mqi:=1]
|
||||
165121 t.q : 1 [by t.ff._sqib:=0]
|
||||
186994 t.ff._sqi : 1 [by t.ff._sqib:=0]
|
||||
65875 t.clk : 0
|
||||
65875 t.d : 1
|
||||
84773 t.ff._mqib : 0 [by t.d:=1]
|
||||
85476 t.ff._mqi : 1 [by t.ff._mqib:=0]
|
||||
96922 t.ff._clk_B : 1 [by t.clk:=0]
|
||||
97123 t.ff.__clk_B : 0 [by t.ff._clk_B:=1]
|
||||
107244 t.ff._sqib : 0 [by t.ff._clk_B:=1]
|
||||
107250 t.ff._sqi : 1 [by t.ff._sqib:=0]
|
||||
110736 t.q : 1 [by t.ff._sqib:=0]
|
||||
110738 t.ff.q_B : 0 [by t.q:=1]
|
||||
110738 t.clk : 1
|
||||
113054 t.ff._clk_B : 0 [by t.clk:=1]
|
||||
113104 t.ff.__clk_B : 1 [by t.ff._clk_B:=0]
|
||||
113104 t.d : 0
|
||||
114289 t.ff._mqib : 1 [by t.d:=0]
|
||||
137967 t.ff._mqi : 0 [by t.ff._mqib:=1]
|
||||
137967 t.clk : 0
|
||||
137992 t.ff._clk_B : 1 [by t.clk:=0]
|
||||
138009 t.ff.__clk_B : 0 [by t.ff._clk_B:=1]
|
||||
138073 t.ff._sqib : 1 [by t.ff.__clk_B:=0]
|
||||
138074 t.q : 0 [by t.ff._sqib:=1]
|
||||
138478 t.ff._sqi : 0 [by t.ff._sqib:=1]
|
||||
203221 t.ff.q_B : 1 [by t.q:=0]
|
||||
203221 t.d : 1
|
||||
203221 t.clk : 1
|
||||
203222 t.ff._clk_B : 0 [by t.clk:=1]
|
||||
214646 t.ff.__clk_B : 1 [by t.ff._clk_B:=0]
|
||||
227406 t.ff._mqib : 0 [by t.ff.__clk_B:=1]
|
||||
227582 t.ff._mqi : 1 [by t.ff._mqib:=0]
|
||||
[3] tested d = 1, clk rise and fall
|
||||
227582 t.clk : 0
|
||||
227583 t.ff._clk_B : 1 [by t.clk:=0]
|
||||
227590 t.ff._sqib : 0 [by t.ff._clk_B:=1]
|
||||
227593 t.q : 1 [by t.ff._sqib:=0]
|
||||
234776 t.ff.q_B : 0 [by t.q:=1]
|
||||
241004 t.ff._sqi : 1 [by t.ff._sqib:=0]
|
||||
278221 t.ff.__clk_B : 0 [by t.ff._clk_B:=1]
|
||||
278221 t.d : 0
|
||||
|
@ -4,22 +4,24 @@
|
||||
"Reset"->"t._reset_B"-
|
||||
~("Reset")->"t._reset_B"+
|
||||
= "t._reset_B" "t.ff.reset_B"
|
||||
"t.ff.clk"->"t.ff._clk"-
|
||||
~("t.ff.clk")->"t.ff._clk"+
|
||||
"t.ff._clk"->"t.ff.__clk"-
|
||||
~("t.ff._clk")->"t.ff.__clk"+
|
||||
~"t.ff.d"&~"t.ff._clk"|~"t.ff.reset_B"|~"t.ff.__clk"&~"t.ff._mqi"->"t.ff._mqib"+
|
||||
"t.ff.d"&"t.ff.__clk"|"t.ff.reset_B"&"t.ff._mqi"&"t.ff._clk"->"t.ff._mqib"-
|
||||
"t.ff.clk_B"->"t.ff._clk_B"-
|
||||
~("t.ff.clk_B")->"t.ff._clk_B"+
|
||||
"t.ff._clk_B"->"t.ff.__clk_B"-
|
||||
~("t.ff._clk_B")->"t.ff.__clk_B"+
|
||||
~"t.ff.d"&~"t.ff._clk_B"|~"t.ff.reset_B"|~"t.ff.__clk_B"&~"t.ff._mqi"->"t.ff._mqib"+
|
||||
("t.ff.d"&"t.ff.__clk_B"|"t.ff._mqi"&"t.ff._clk_B")&"t.ff.reset_B"->"t.ff._mqib"-
|
||||
"t.ff._mqib"->"t.ff._mqi"-
|
||||
~("t.ff._mqib")->"t.ff._mqi"+
|
||||
~"t.ff._mqi"&~"t.ff.__clk"|~"t.ff.reset_B"|~"t.ff._sqi"&~"t.ff._clk"->"t.ff._sqib"+
|
||||
"t.ff._mqi"&"t.ff._clk"|"t.ff._sqi"&"t.ff.__clk"&"t.ff.reset_B"->"t.ff._sqib"-
|
||||
~"t.ff._mqi"&~"t.ff.__clk_B"|~"t.ff.reset_B"|~"t.ff._sqi"&~"t.ff._clk_B"->"t.ff._sqib"+
|
||||
("t.ff._mqi"&"t.ff._clk_B"|"t.ff._sqi"&"t.ff.__clk_B")&"t.ff.reset_B"->"t.ff._sqib"-
|
||||
"t.ff._sqib"->"t.ff._sqi"-
|
||||
~("t.ff._sqib")->"t.ff._sqi"+
|
||||
"t.ff._sqib"->"t.ff.q"-
|
||||
~("t.ff._sqib")->"t.ff.q"+
|
||||
"t.ff.q"->"t.ff.q_B"-
|
||||
~("t.ff.q")->"t.ff.q_B"+
|
||||
= "Vdd" "t.ff.vdd"
|
||||
= "GND" "t.ff.vss"
|
||||
= "t.q" "t.ff.q"
|
||||
= "t.clk" "t.ff.clk"
|
||||
= "t.clk" "t.ff.clk_B"
|
||||
= "t.d" "t.ff.d"
|
||||
|
@ -33,7 +33,7 @@ open tmpl::dataflow_neuro;
|
||||
|
||||
defproc flipflop_test (bool! q; bool? d,clk){
|
||||
|
||||
DFFQ_R_X1 ff(.d=d,.clk = clk, .q = q);
|
||||
DFFQ_R_X1 ff(.d=d,.clk_B = clk, .q = q);
|
||||
//Low active Reset
|
||||
bool _reset_B;
|
||||
prs {
|
||||
|
@ -1,29 +1,51 @@
|
||||
watchall
|
||||
system "echo '[0] start test'"
|
||||
|
||||
set Reset 0
|
||||
set t.d 0
|
||||
set t.clk 0
|
||||
set t.clk 1
|
||||
cycle
|
||||
status X
|
||||
mode run
|
||||
assert t.q 0
|
||||
|
||||
cycle
|
||||
assert t.q 0
|
||||
system "echo '[1] reset completed'"
|
||||
set t.clk 1
|
||||
cycle
|
||||
assert t.q 0
|
||||
|
||||
system "echo '[2] tested d = 0, clk rise'"
|
||||
set t.clk 0
|
||||
set t.d 1
|
||||
cycle
|
||||
|
||||
set t.clk 1
|
||||
cycle
|
||||
set t.d 0
|
||||
cycle
|
||||
|
||||
assert t.q 1
|
||||
|
||||
set t.clk 0
|
||||
cycle
|
||||
assert t.q 0
|
||||
|
||||
set t.d 0
|
||||
set t.clk 0
|
||||
cycle
|
||||
|
||||
assert t.q 0
|
||||
|
||||
set t.d 1
|
||||
cycle
|
||||
set t.clk 1
|
||||
cycle
|
||||
set t.d 0
|
||||
assert t.q 0
|
||||
|
||||
system "echo '[3] tested d = 1, clk rise and fall'"
|
||||
|
||||
set t.d 1
|
||||
cycle
|
||||
set t.clk 0
|
||||
cycle
|
||||
assert t.q 1
|
||||
system "echo '[3] tested d = 1, clk rise and fall'"
|
||||
set t.d 0
|
||||
cycle
|
||||
|
||||
assert t.q 1
|
Reference in New Issue
Block a user