<> <> DIRECTORY Core, IO, Ports, PW, Rosemary, RosemaryUser; TestDiv: CEDAR PROGRAM IMPORTS -- IO, PW, -- Ports, Rosemary, RosemaryUser = BEGIN Vdd: NAT; Gnd: NAT; CK : NAT; RESET: NAT; Q: NAT; Init: PROC [ct: Core.CellType] = { sim: Rosemary.Simulation; Vdd _ Ports.PortIndex[ct.public, "Vdd"]; Gnd _ Ports.PortIndex[ct.public, "Gnd"]; Q _ Ports.PortIndex[ct.public, "Q"]; CK _ Ports.PortIndex[ct.public, "CK"]; RESET _ Ports.PortIndex[ct.public, "RESET"]; [] _ Rosemary.SetFixedWire[ct.public[Vdd], H]; [] _ Rosemary.SetFixedWire[ct.public[Gnd], L]; [] _ Ports.InitPort[ct.public[Q], ls, drive]; [] _ Ports.InitTesterDrive[wire: ct.public[CK], initDrive: force]; [] _ Ports.InitTesterDrive[wire: ct.public[RESET], initDrive: force]; sim _ RosemaryUser.TestProcedureViewer[name: "Tester", cellType: ct, testButtons: LIST["Tester"], displayWires: RosemaryUser.DisplayCellTypePortLeafWires[ct], -- cutSets: LIST["SSI", "MSI"], -- flatten: TRUE]; }; Tester: RosemaryUser.TestProc = { p[CK].b _ FALSE; p[RESET].b _ TRUE; Eval[]; p[RESET].b _ FALSE; Eval[]; FOR i: NAT IN [0 .. 5) DO p[CK].b _ TRUE; Eval[]; p[CK].b _ FALSE; Eval[] ENDLOOP; }; RosemaryUser.RegisterTestProc["Tester", Tester]; END.