Package edu.byu.ece.rapidSmith.design

Examples of edu.byu.ece.rapidSmith.design.Design


  public ArrayList<PathOffset> getPathOffsets() {
    return pathOffsets;
  }

  public void parseTWR(String twrFileName, String xdlFileName){
    design = new Design();
    design.loadXDLFile(xdlFileName);
    parseTWR(twrFileName, design);
  }
View Full Code Here


  public static void main(String[] args){
    if(args.length != 2){
      MessageGenerator.briefMessageAndExit("USAGE: <input.xdl> <output.xdl>");
    }
   
    Design design = new Design();
   
    design.loadXDLFile(args[0]);
       
    Net gnd = new Net("GLOBAL_LOGIC0",NetType.GND);
    Net vcc = new Net("GLOBAL_LOGIC1",NetType.VCC);
   
    ArrayList<Net> netsToRemove = new ArrayList<Net>();
   
    for(Net net : design.getNets()){
      if(net.isStaticNet()){
        netsToRemove.add(net);
        if(net.getSource() != null && net.getSource().getInstance() != null){
          design.getInstanceMap().remove(net.getSource().getInstance().getName());
        }
        if(net.getType().equals(NetType.GND)){
          for(Pin pin : net.getPins()){
            if(pin.isOutPin()) continue;
            gnd.addPin(pin);
          }
        }
        else if(net.getType().equals(NetType.VCC)){
          for(Pin pin : net.getPins()){
            if(pin.isOutPin()) continue;
            vcc.addPin(pin);
          }
        }
      }
    }
   
    for(Net net : netsToRemove){
      design.removeNet(net.getName());
    }
   
    design.addNet(gnd);
    design.addNet(vcc);
   
    design.saveXDLFile(args[1], true);
  }
View Full Code Here

  public static void main(String[] args){
    if(args.length < 2 || args.length > 3){
      System.out.println("USAGE: <input.xdl|input.ncd> <output file type: xdl|nmc> [optional: original_vhdl_top.vhd]");
      System.exit(0);
    }   
    Design input = new Design();
    Design output;
    String originalVHDLFileName = args.length==3 ? args[2] : null;
    // If we are supplied an NCD, convert it to XDL
    if(args[0].endsWith(".ncd")){
      FileConverter.convertNCD2XDL(args[0]);
      if(!(new File(args[0]).exists())){
        HardMacroGenerator.failAndExit("XDL Generation failed, check your NCD file for correctness.");
      }
      input.loadXDLFile(args[0].replace(".ncd", ".xdl"));
    }
    else{
      input.loadXDLFile(args[0]);
    }
   
    HardMacroGenerator hmTool = new HardMacroGenerator(input);
    output = hmTool.convertToHardMacro(originalVHDLFileName);
   
    //detect graceful failure
    if(output.getName().compareTo("GRACEFUL_FAILURE") == 0){
      failAndExit(gracefulFailureReason);
    }
   
    // Output NMC if desired
    String xdlFileName = hmTool.hardMacro.getName() + ".xdl";
    if(args[1].toLowerCase().endsWith("nmc")){
      output.saveXDLFile(xdlFileName);
      FileConverter.convertXDL2NMC(xdlFileName);
      if(!(new File(xdlFileName).exists())){
        HardMacroGenerator.failAndExit("NMC Generation failed, re-run by hand to get error message.");
      }
    }
    else{
      output.saveXDLFile(xdlFileName);
    }
  }
View Full Code Here

  public static void main(String[] args){
    if(args.length != 1){
      MessageGenerator.briefMessageAndExit("USAGE: <input.xdl>");
    }

    Design design = new Design();
    design.loadXDLFile(args[0]);
   
    // Check for unique placement of primitives
    MessageGenerator.printHeader("CHECKING FOR UNIQUE PRIMITIVE PLACEMENTS ... ");
    HashMap<PrimitiveSite, Instance> usedSites = new HashMap<PrimitiveSite, Instance>();
    for(Instance inst : design.getInstances()){
      if(inst.getPrimitiveSite() == null){
        System.out.println("Warning: " + inst.getName() +" is unplaced.");
      }
      else if(usedSites.containsKey(inst.getPrimitiveSite())){
        System.out.println("ERROR: Placement conflict at site: " + inst.getPrimitiveSiteName() +" (tile: "+inst.getTile()+")");
        System.out.println("  Involving at least these two instances:");
        System.out.println("    " + inst.getName());
        System.out.println("    " + usedSites.get(inst.getPrimitiveSite()).getName());
      }
      else{
        usedSites.put(inst.getPrimitiveSite(), inst);
      }
    }
   
   
   
    // Check for duplicate PIPs
    HashMap<PIP,Net> pipMap = new HashMap<PIP, Net>();
    MessageGenerator.printHeader("CHECKING FOR DUPLICATE PIPS ... ");
    for(Net net : design.getNets()){
      for(PIP pip : net.getPIPs()){
        Net tmp = pipMap.get(pip);
        if(tmp == null){
          pipMap.put(pip, net);
        }
        else{
          System.out.print("  Duplicate PIP: " + pip.toString(design.getWireEnumerator()));
          System.out.println("  in nets: " + net.getName());
          System.out.println("           " + tmp.getName());
        }
      }
    }
   
    // Checking for duplicate PIP sinks
    HashMap<Node,Net> pipSinks = new HashMap<Node, Net>();
    MessageGenerator.printHeader("CHECKING FOR DUPLICATE PIP SINKS ... ");
    for(Net net : design.getNets()){
      for(PIP pip : net.getPIPs()){
        Node n = new Node(pip.getTile(), pip.getEndWire(), null, 0);
        Net tmp = pipSinks.get(n);
        if(tmp == null){
          pipSinks.put(n, net);
        }
        else{
          System.out.print("  Duplicate PIP Sink: " + n.toString(design.getWireEnumerator()));
          System.out.println("  in nets: ");
          System.out.println("           " + net.getName());
          System.out.println("           " + tmp.getName());
        }
      }
View Full Code Here

  public static void main(String[] args){
    if(args.length != 2){
      System.out.println("USAGE: <input.xdl> <output.xdl>");
      System.exit(0);
    }
    Design design = new Design();
   
    design.loadXDLFile(args[0]);
   
    design.unrouteDesign();
   
    design.setNets(combineStaticNets(design.getNets()));
   
    design.saveXDLFile(args[1]);
  }
View Full Code Here

    long initial_usage = rt.totalMemory() - rt.freeMemory();

    // Start Timer
    long start = System.nanoTime();
   
    Design design = new Design(args[0]);
   
    // Stop Timer
    long stop = System.nanoTime();
   
    // Measure Final Heap Size
    System.gc();
    long total_usage = rt.totalMemory() - rt.freeMemory() - initial_usage;
   
    System.out.printf("Loaded %s design in %5.3f seconds using %d MBs of heap space.%s",
      design.getPartName(), (stop-start)/1000000000.0, total_usage/(1024*1024), System.getProperty("line.separator"));
   
    design.saveXDLFile(args[0].replace(".xdl", "_saved.xdl"), true);
  }
View Full Code Here

public class CreateDiffXDL {
  public static void main(String[] args){
    if(args.length != 2){
      MessageGenerator.briefMessageAndExit("USAGE: <firstXDLDesign.xdl> <secondXDLDesign.xdl>");
    }
    Design d1 = new Design(args[0]);
    Design d2 = new Design(args[1]);
    d1.saveComparableXDLFile(args[0].replace(".xdl", "_diff.xdl"));
    d2.saveComparableXDLFile(args[1].replace(".xdl", "_diff.xdl"));
  }
View Full Code Here

    progress.setWindowModality(WindowModality.WindowModal);
    progress.setCancelButton(null);
    progress.show();
    progress.setValue(0)
    progress.setValue(10);
    design = new Design();
    progress.setValue(20);
    design.loadXDLFile(fileName);
    progress.setValue(50);
    device = design.getDevice();
    we = design.getWireEnumerator();
View Full Code Here

  public static void main(String[] args) {
    if(args.length == 0){
      System.out.println("Please supply an XDL file name");
      System.exit(0);
    }
    Design d = new Design(args[0]);
    int switchMatricesUsed = countSwitchMatricesUsed(d.getNets());
    System.out.println("      Number of nets: " + d.getNets().size());
    System.out.println("Switch matrices used: " + switchMatricesUsed);
    Map<WireType,Integer> typeCounts = countUsedWireLengths(d.getNets());
    System.out.println("    Type counts used:");
    for(Entry<WireType,Integer> entry : typeCounts.entrySet()){
     
      System.out.println("\t" + entry.getKey() + ": " + entry.getValue());
    }
View Full Code Here

 
  public static void main(String[] args){
    if(args.length != 2){
      MessageGenerator.briefMessageAndExit("USAGE: <design1.xdl> <design2.xdl>");     
    }
    Design design1 = new Design();
    Design design2 = new Design();
   
    design1.loadXDLFile(args[0]);
    design2.loadXDLFile(args[1]);
   
    DesignDiff dd = new DesignDiff();
    dd.compareDesigns(design1, design2, true);
  }
View Full Code Here

TOP

Related Classes of edu.byu.ece.rapidSmith.design.Design

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.