Answers Database
Foundation F2.1i, F1.5i: Adding Schematics to HDL Flow ProjectsRecord #4292
Product Family: Software 1. Create a new HDL project. In the Foundation Project Manager, select File -> New Project. Make sure the Flow selected is HDL. 2. Add a schematic library. Because the device family is not selected until the design is synthesized, you need to manually add a Xilinx library if you wish to add Unified components to your schematics. If you are simply creating a top level schematic that will act as a block diagram of the design, this is not necessary. Select File -> Project Libraries, select your target family in the left hand pane, and click on Add to add this to your project. This library will appear in the Files tab. 3. Open an HDL file from the flow button. Create (or open) an HDL file by clicking on the HDL Editor icon in the Design Entry flow button. In order to create a schematic macro from an HDL file, the file must not be added to the project (i.e. the HDL file does not show up under the files tab of the Foundation Project Manager). If the HDL file has been added to the project, the Create Macro option will not be available. This rule also applies to State Machines. 4. Create a symbol for the HDL file. After you have finished editing your HDL file, select Project -> Create Macro. If you are asked for an initial target, it is okay to enter any device at this point. The synthesis that is being done now is simply necessary to create the symbol. Repeat steps 3 and 4 for all HDL macros that will be placed directly on the schematic. 5. Edit the schematic. Open the schematic editor and create a top-level design. Edit this schematic just as if you were using the Schematic Flow. Unified library components and HDL macros will be available in the Symbols toolbox. Create LogiBLOX macros if you'd like. Add this schematic to your project by selecting Hierarchy -> Add Current Sheet to Project. The lone difference when creating your top-level schematic is that you cannot use PAD components (IPAD, OPAD, etc.) from the Unified library. Foundation Express will synthesize this design from the top down and will add ports as well as buffers (if necessary). To define the ports, use Hierarchy Connectors, just as you would if this schematic was a lower level of hierarchy. You may add I/O components like I/O buffers, I/O flip flops, or I/O latches, but do not use any PADs. Save the schematic. HDL files are added to project when schematic is analyzed. You will notice that all HDL and ASF files for which schematic macros have been made will be added to the Files tab when the top-level schematic is analyzed. You may edit the files by opening them from the Foundation Project Manager, but you will only be able to update HDL macros by opening them from the schematic. This must be done to have access to the Project -> Update Macro menu pick. 6. Add lower levels of hierarchy and libraries to your project. If the HDL macros in the schematic have lower levels of hierarchy or use user-defined libraries, these HDL files must be added to the project manually via Document -> Add. Foundation Express must have access to all design files before synthesis. 7. Synthesize the design like a top level HDL project. Click on the Synthesis (or Implementation) flow button and select your schematic as the top level. Be sure to select the family that matches the schematic library you have chosen. Foundation Express will link all the project files and will synthesize the design using the top-down methodology. Other considerations: Because the design will be processed by Foundation Express, care must be taken when adding attributes to the schematic. When adding pin location or slew rate constraints, place them on the I/O buffer (or flip flop or latch), not the net or the hierarchy connector. Other attributes, like TNMs or Timespecs are not processed; use a UCF file to apply these constraints. In addition, pin locations, slew rates and certain other design constraints may be placed on the design by using the built-in Express constraint editor. When a schematic is added to the project, or when Foundation Express analyzes the schematic portion of the design, the schematic is netlisted into one of three formats: VHDL, XNF or EDIF. The format is determined by selecting Synthesis -> Options and choosing one of the three formats under "Export Schematics to". If the design is only a block diagram (there are no Unified components), or if no attributes are to be passed from the schematic (including within Xilinx macros), then VHDL should be used. If any attributes have been applied within the schematic, then XNF or EDIF must be selected as the netlist type (EDIF must be used to target Virtex devices). However, if the schematic includes XNF macros that contain RLOCs, then either VHDL must be selected, or the Preserve Hierarchy option must be selected. This is due to the way that Foundation Express flattens the design; identical RLOCs will exist without hierarchy designations to keep them unique. End of Record #4292 - Last Modified: 07/29/99 10:07 |
For the latest news, design tips, and patch information on the Xilinx design environment, check out the Technical Tips! |