kesselscounter passes ncc, drc
[fleet.git] / testCode / marina.bsh
1 /* marina.bsh */
2
3 import com.sun.electric.plugins.menus.ScanChainXML;
4
5 /*
6  * Create a ScanChainXML object
7  */
8
9 import com.sun.electric.tool.user.menus.FileMenu;
10 import com.sun.electric.tool.user.menus.FileMenu.ReadLibrary;
11 import com.sun.electric.tool.simulation.Simulation;
12 import com.sun.electric.tool.io.output.Output;
13 import com.sun.electric.tool.io.FileType;
14 import com.sun.electric.database.hierarchy.EDatabase;
15 import com.sun.electric.database.text.TextUtils;
16 import com.sun.electric.tool.Job;
17 import java.lang.Thread;
18 import java.net.URL;
19 import com.sun.electric.database.variable.EvalJavaBsh;
20 import com.sun.electric.database.hierarchy.View;
21
22 Simulation.setVerilogStopAtStandardCells(false);
23 for (Library lib : EDatabase.clientDatabase().getLibraries()) {
24   for (Cell c : lib.getCells()) {
25     if (c.getName().equals("marinaOutDock") && c.getView()==View.SCHEMATIC) {
26       Output.exportCellCommand(c, null, "marina.v", FileType.VERILOG, null);
27       Output.exportCellCommand(c, null, "marina.schematic-parasitics.spi", FileType.SPICE, null);
28     }
29   }
30 }
31
32   ScanChainXML gen = new ScanChainXML();
33
34   // Add all the scan chain elements: name, access, clears, 
35   // scan in port name, scan out port name, 
36   // (optional:) data out port name (may be "" or null), 
37   // data out bar port name (may be "" or null).
38   // Both data out and data out bar must be specified or left out.
39
40   gen.addScanChainElement("scanK", "scanCellKh", "R", "-", "sin", "sout", "din[1](R)", "");
41   gen.addScanChainElement("countersL", "cntScnOne", "RW", "-", "sin", "out", "out(R)", "latch2in@0.dataBar(WI)");
42
43   gen.addScanChainElement("scanM", "scanCellE", "RW", "-", "sin", "sout", "dIn[1](R)", "latch2in@0.dataBar(WI)");
44   gen.addScanChainElement("scanM", "scanCellF", "RW", "L", "sin", "sout", "dout[1](R)", "latch2in@1.dataBar(WI)");
45   gen.addScanChainElement("scanM", "scanCellFtaller", "RW", "L", "sin", "sout", "dout[1](R)", "latch2in@1.dataBar(WI)");
46
47   // Add all the pass through elements: these pass scan data through,
48   // like inverters or buffers
49
50   gen.addPassThroughCell("scanM", "scanAmp", "in[1]", "out[1]");
51
52   // Define the jtag controller by it's library, cell name,
53   // and the number of instruction register bits
54
55   gen.setJtagController("jtagController", "jtagCentral{sch}", 8);
56
57   // Chip-specific configuration
58
59   gen.setChipName("marina");
60
61    // gen.addJtagPort(1, "leaf0[1]", "leaf0[8]", "jtag_lvds");
62    // gen.addJtagPort(1, "leaf1[1]", "leaf1[8]", "jtag_noise");
63    // gen.addJtagPort(2, "leaf2[1]", "leaf2[8]", "jtag_exp");
64
65    // Generate xml for isolatedInDock only. This is for simulations that include only
66    // one input dock.
67    gen.setOutput("marina.xml");
68    gen.startFromExport("sir[1]", "marina_report");
69    gen.startFromExport("sic[1]", "marina_control");
70    gen.startFromExport("sid[1]", "marina_data");
71    gen.start("aMarinaM","marinaOutDock{sch}");
72