Package edu.byu.ece.rapidSmith.design

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


   * @param vhdName The output file name, used to generate the VHDL wrapper file name.
   * @return The newly created hard macro.
   */
  public Design convertToHardMacro(String vhdName){
    hardMacro.setName(design.getName() + "_HARD_MACRO");
    hardMacro.addAttribute(new Attribute("_SYSTEM_MACRO","","FALSE"));
    originalVHDLFileName = vhdName;
   
    // Initialize OutputBuffer for VHD file
    String fileNameVHD = design.getName()+ ".vhd";
   
View Full Code Here


          }
        }
        if(!foundBadInstance){
          inst.getAttributes().clear();
          if(design.getExactFamilyName().contains("virtex4")){
            inst.getAttributes().add(new Attribute("G","","#LUT:D=0"));
            inst.getAttributes().add(new Attribute("YUSED","","0"));
          }else if(design.getExactFamilyName().contains("virtex5")){
            //TODO V5
            inst.getAttributes().add(new Attribute("D6LUT","","#LUT:O6=0"));
            inst.getAttributes().add(new Attribute("DUSED","","0"));
          }
        }
      }
    }
  }
View Full Code Here

  private Instance createRegisterSlice(String name){
    Instance inst = new Instance();
    inst.setName(name);
    inst.setType(PrimitiveType.SLICEL);
    if(design.getExactFamilyName().contains("virtex4")){
      inst.getAttributes().add(new Attribute("DYMUX","","BY"));
      inst.getAttributes().add(new Attribute("FFY","","#FF"));
      inst.getAttributes().add(new Attribute("FFY_INIT_ATTR","","INIT0"));
      inst.getAttributes().add(new Attribute("FFY_SR_ATTR","","SRLOW"));
      inst.getAttributes().add(new Attribute("SYNC_ATTR","","SYNC"));
    }else if(design.getExactFamilyName().contains("virtex5")){
      //TODO V5
      //might need?: inst.getAttributes().add(new Attribute("CEUSED","","0"));
      inst.getAttributes().add(new Attribute("DFFMUX","","DX"));
      inst.getAttributes().add(new Attribute("DFF","","#FF"));
      inst.getAttributes().add(new Attribute("DFFINIT","","INIT0"));
      inst.getAttributes().add(new Attribute("DFFSR","","SRLOW"));
      inst.getAttributes().add(new Attribute("SYNC_ATTR","","SYNC"));
    }
    return inst;
  }
View Full Code Here

  private Instance createStaticSliceSource(NetType netType){
    Instance inst = new Instance();
    inst.setName("RS_DUMMY_CLB");
    inst.setType(PrimitiveType.SLICEL);
    if(design.getExactFamilyName().contains("virtex4")){
      inst.getAttributes().add(new Attribute("G","","#LUT:D=" + (netType.equals(NetType.GND) ? "0" :"1")));
      inst.getAttributes().add(new Attribute("YUSED","","0"));
    }else if(design.getExactFamilyName().contains("virtex5")){
      //TODO V5
      inst.getAttributes().add(new Attribute("DUSED","","0"));
      inst.getAttributes().add(new Attribute("D6LUT","","#LUT:O6=" + (netType.equals(NetType.GND) ? "0" :"1")));
    }
    return inst;
  }
View Full Code Here

  private Instance createPassThruSlice(){
    Instance inst = new Instance();
    inst.setName("XDL_LUT");
    inst.setType(PrimitiveType.SLICEL);
    if(design.getExactFamilyName().contains("virtex4")){
      inst.getAttributes().add(new Attribute("YUSED","","0"));
      inst.getAttributes().add(new Attribute("G","","#LUT:D=A1"));     
    }else if(design.getExactFamilyName().contains("virtex5")){
      //TODO V5
      inst.getAttributes().add(new Attribute("DUSED","","0"));
      inst.getAttributes().add(new Attribute("D6LUT","","#LUT:O6=A1"));
    }
    return inst;
  }
View Full Code Here

        }
        else if(token.equals(COMMA) && currNet != null){
          state = ParserState.NET_STATEMENT;
        }
        else{
          Attribute attribute = createAttribute(token);
          if(currInstance != null) currInstance.addAttribute(attribute);
          else if(currNet != null){
            currNet.addAttribute(attribute);
            if(attribute.getPhysicalName().equals("_MACRO")){
                ModuleInstance mi = design.getModuleInstance(attribute.getValue());
                currNet.setModuleInstance(mi);
                mi.addNet(currNet);
                Module module = mi.getModule();
                currNet.setModuleTemplate(module);
                currNet.setModuleTemplateNet(module.getNet(currNet.getName().replaceFirst(mi.getName() + "/", "")));
View Full Code Here

        break2 = attribute.indexOf(':', break2 + 1);
      }
      String physicalName = pool.getUnique(attribute.substring(0, break1));
      String logicalName = pool.getUnique(attribute.substring(break1 + 1, break2));
      String value = pool.getUnique(attribute.substring(break2 + 1, attribute.length()));
    return new Attribute(physicalName, logicalName, value);
  }
View Full Code Here

      System.out.println("Sorry, this architecture is not supported.");
      System.exit(1);
    }
   
    // Initialize attributes
    noUserLogicAttr = new Attribute("_NO_USER_LOGIC","","");
    hard1Attr = new Attribute("_VCC_SOURCE","","HARD1");
    keep1Attr = new Attribute("_VCC_SOURCE","","KEEP1");
    keep0Attr = new Attribute("_GND_SOURCE","","KEEP0");
   
    for (int i = 0; i < v5ctrl.length; i++) {
      v5ctrlWires[i] = we.getWireEnum(v5ctrl[i]);     
    }
  }
View Full Code Here

        for(PrimitiveSite site : currentTile.getPrimitiveSites()){
          if(site.getType().equals(PrimitiveType.SLICEL) || site.getType().equals(PrimitiveType.SLICEM)){
            if(!router.design.getUsedPrimitiveSites().contains(site)){
              Instance returnMe = new Instance();
              HashMap<String, Attribute> attributeMap = new HashMap<String, Attribute>();
              attributeMap.put("_NO_USER_LOGIC", new Attribute("_NO_USER_LOGIC","",""));
             
              attributeMap.put(srcTypeString, new Attribute(srcTypeString,"",slicePin));
             
              returnMe.place(site);
              returnMe.setType(PrimitiveType.SLICEL);
              returnMe.setAttributes(attributeMap);
              returnMe.setName("XDL_DUMMY_" + returnMe.getTile() + "_" + site.getName());
              currStaticSourcePin = null;
              return returnMe;             
            }
            else if(isVirtex5){
              // Check all the LUTs in this slice
              Instance i = router.design.getInstanceAtPrimitiveSite(site);
              String[] letters = {"A","B","C","D"};
              for(String letter : letters){
                if(i.testAttributeValue(letter+"5LUT", "#OFF") &&
                   i.testAttributeValue(letter+"6LUT", "#OFF") &&
                   !i.hasAttribute("_GND_SOURCE") &&
                   !i.hasAttribute("_VCC_SOURCE")){
                  i.addAttribute(new Attribute(new Attribute(srcTypeString,"",letter)));
                  currStaticSourcePin = new Pin(true, letter, i);
                  i.addPin(currStaticSourcePin);
                  return i;
                }
              }
View Full Code Here

   */
  private Instance updateTIEOFF(Tile tile, Net net, boolean needHard1){
    String tileSuffix = tile.getTileNameSuffix();
    String instName = "XDL_DUMMY_INT" + tileSuffix + "_TIEOFF" + tileSuffix;
    Instance currInst = router.design.getInstance(instName);
    Attribute vccAttr = needHard1 ? hard1Attr : keep1Attr;
    // Add the appropriate attribute if instance already exists
    if(currInst != null){
      if(net.getType().equals(NetType.VCC)){
        // Add HARD1
        if(!currInst.hasAttribute(vccAttr.getPhysicalName())){
          currInst.addAttribute(vccAttr);
        }
      }
      else if(net.getType().equals(NetType.GND)){
        if(!currInst.hasAttribute(keep0Attr.getPhysicalName())){
View Full Code Here

TOP

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

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.