<> <> <> <> <<>> Install Combinatorial CellLibraries Run -a TestCombinatorial <> _ TestCombinatorial.StdToLisp["b[0].foo.bar[1]"] _ TestCombinatorial.StdToLisp["~x"] _ TestCombinatorial.StdToLisp["a+b*c"] _ TestCombinatorial.StdToLisp["xor2(a, b)"] _ TestCombinatorial.StdToLisp["a+b[0].foo.bar[1]* [2] + xor2(a, b) * ~ ~~foo + (a * (b + c))"] _ &expr _ "a+b[0].foo.bar[1]* [2] + xor2(a, b) * ~ ~~foo + (a * (b + c))+ equal(2, 3, a)" _ &expr2 _ Combinatorial.UnParseExpression[Combinatorial.ParseExpression[&expr]] _ IF Rope.Equal[Combinatorial.UnParseExpression[Combinatorial.ParseExpression[&expr2]], &expr2] THEN NIL ELSE ERROR <> _ &ct _ TestCombinatorial.CMOSBCell["and3(a, b, xor2(c, d))"] _ Combinatorial.MakeCombinatorial[&ct] _ CoreOps.Print[&ct] _ Combinatorial.CheckTransistorsAgainstExpressions[&ct] _ &ct _ Logic.And[5] _ Combinatorial.MakeCombinatorial[&ct] _ CoreOps.Print[&ct] _ Combinatorial.CheckTransistorsAgainstExpressions[&ct] _ &ct _ Logic.DecoderS[3] _ Combinatorial.MakeCombinatorial[&ct] _ CoreOps.Print[&ct] _ Combinatorial.CheckTransistorsAgainstExpressions[&ct] <> _ &ct _ TestCombinatorial.CMOSBCell["inv(in)"] _ &rct _ CombinatorialImpl.SplitCombinatorial[&ct] _ Combinatorial.MakeCombinatorial[&rct] _ Combinatorial.CheckTransistorsAgainstExpressions[&rct] _ &ct _ TestCombinatorial.CMOSBCell["and3(a, b, xor2(c, d))"] _ &rct _ CombinatorialImpl.SplitCombinatorial[&ct] _ Combinatorial.MakeCombinatorial[&rct] _ Combinatorial.CheckTransistorsAgainstExpressions[&rct] _ &ct _ LogicUtils.Extract["ffRP.sch"] _ CoreOps.Print[&ct] _ &rct _ CombinatorialImpl.SplitCombinatorial[&ct] _ CoreOps.Print[&rct] _ &design _ PW.OpenDesign["TestCombinatorial.dale"] _ &ct _ Sisyph.ES["Test2FF.sch", Sisyph.Create[&design]] _ &rct _ CombinatorialImpl.SplitCombinatorial[&ct] _ CoreOps.Print[&rct]