a fast 6v sim
This commit is contained in:
1 parent
fc030c6708
commit
f6baf9cb5e
2 files changed
+124
-1
No files matched your search
+25
-1
@@ -1,6 +1,6 @@
|
||||
import numpy as np
|
||||
|
||||
from kyupy.logic_sim import LogicSim
|
||||
from kyupy.logic_sim import LogicSim, LogicSim6V
|
||||
from kyupy import bench, logic, sim
|
||||
from kyupy.logic import mvarray, bparray, bp_to_mv, mv_to_bp
|
||||
|
||||
@@ -94,6 +94,30 @@ def test_4v():
|
||||
'--0XX', '--X1X', '--XXX', '--XXX'))
|
||||
|
||||
|
||||
def test_6v():
|
||||
c = bench.parse('input(x, y) output(a, o, n, xo, no) a=AND2(x,y) o=OR2(x,y) n=INV1(x) xo=XOR2(x,y) no=NOR2(x,y)')
|
||||
s = LogicSim6V(c, 36)
|
||||
assert s.s_len == 7
|
||||
mva = mvarray(
|
||||
'0000101', '0101110', '0R0R1RF', '0F0F1FR', '0P0P1PN', '0N0N1NP',
|
||||
'1001010', '1111000', '1RR10F0', '1FF10R0', '1PP10N0', '1NN10P0',
|
||||
'R00RFRF', 'R1R1FF0', 'RRRRFPF', 'RFPNFNP', 'RPPRFRF', 'RNRNFFP',
|
||||
'F00FRFR', 'F1F1RR0', 'FRPNRNP', 'FFFFRPR', 'FPPFRFR', 'FNFNRRP',
|
||||
'P00PNPN', 'P1P1NN0', 'PRPRNRF', 'PFPFNFR', 'PPPPNPN', 'PNPNNNP',
|
||||
'N00NPNP', 'N1N1PP0', 'NRRNPFP', 'NFFNPRP', 'NPPNPNP', 'NNNNPPP')
|
||||
tests = np.copy(mva)
|
||||
tests[2:] = logic.ZERO
|
||||
s.s[0] = tests
|
||||
s.s_to_c()
|
||||
s.c_prop()
|
||||
s.c_to_s()
|
||||
resp = s.s[1].copy()
|
||||
|
||||
exp_resp = np.copy(mva)
|
||||
exp_resp[:2] = logic.ZERO
|
||||
np.testing.assert_allclose(resp, exp_resp)
|
||||
|
||||
|
||||
def test_8v():
|
||||
c = bench.parse('input(x, y) output(a, o, n, xo) a=and(x,y) o=or(x,y) n=not(x) xo=xor(x,y)')
|
||||
s = LogicSim(c, 64, m=8)
|
||||
|
||||
Reference in new issue
Block a user