= Good Design Flow Practice for XPS 8.1i = == Preface == Xilinx Platform Studio grants users many of the same freedoms any other programs would; naming files whatever you want, saving files wherever you want, placing directories wherever you want, etc. etc. etc. Despite being granted such freedoms, however, XPS can be extremely picky about how things are named and where they are placed -- even the order in which you generate different parts of the system. That said, this section will contain a system of steps and notes, that although some of which may not be required, will help ensure that you avoid any unnecessary errors that might set you back hours or days. == 1: Xilinx and EDK Installation == Technically, you can install Xilinx XPS and the EDK anywhere and it will function -- you may however notice inconsistencies, such as projects that won't generate, XBD files that can't be found, etc. etc. A tried and true method that will ensure none of this will happen is to perform your installations into the following directories: [[BR]] [[BR]] Xilinx XPS Install Path: [[BR]] {{{ c:\Xilinx }}} Xilinx EDK Install Path: [[BR]] {{{ c:\EDK }}} If you ever perform an update/install a newer version of these toolsets and want to keep the old versions, available -- just rename the old folders from "Xilinx" and "EDK", to "Xilinx7" and "EDK6" for example. If you need to revert to an older installation, you can simply rename the new folders to something such as "Xilinx8" and "EDK7" and rename "Xilinx7" and "EDK6" back to "Xilinx" and "EDK" respectively.[[BR]] The final element to create is your personal EDK user repository for any custom peripherals you create. This '''must''' be created in:[[BR]] {{{ c:\EDK_user_repository }}} This is the only directory for custom peripherals that Xilinx XPS will search every-time you create and '''open''' projects. This is particularly important for opening projects that were ''not'' created on your computer ''and'' require you to manually add new custom peripherals before opening. Because any other peripheral repository directories can ''only'' be searched when creating a new project, or in an already open project, XPS will NOT allow you to open an imported project from someone else that uses new custom peripherals. XPS will complain that it found errors in the project's *.MHS file and ask you to correct them, because it can't find custom peripherals. == 2: Project Creation == * Make sure the directory structure and folder that will hold your system file has '''no''' spaces or underscores. [[BR]][[BR]] Good example: [[BR]] {{{ c:\projects\users\scott\MGTLoopback1\system.xps }}} Bad example: [[BR]] {{{ c:\XPS_Projects\users\scott\MGT Loopback Demo\system.xps }}} * Keep the system name "system.xps," as there's no good reason to modify it == 3: Base System Builder == * Choose the latest WARP board revision[[BR]] * Choose a processor speed such that it is twice the Bus Speed (For ethernet, the Bus must run at least at 65 MHz)[[BR]] * Make sure caching is disabled[[BR]] * use the maximum amount of RAM you can pick[[BR]] * Keep peripherals on their default busses[[BR]] * For Serial/RS232 peripheral, choose a baud-rate at or under 57600[[BR]] * Choose to create a memory_test. It will generate a properly working linker-script (which you should never touch unless you have to) -- you can rename this file, the project, and fill your code into it.[[BR]] == 4: Applying Custom Peripherals from the IP catalog into your project == * Drag the peripheral into system assembly (or double-click it)[[BR]] * In the Bus Interface tab, make sure to fill in it's bubble for it's Bus[[BR]] * Connect the Ports as desired in the Ports tab[[BR]] * Addresses View (IMPORTANT): LOCK all addresses that are already in place, THEN proceed to click Generate Addresses. The reason for this, is because there have been instances in which hardware has ceased to respond properly or memory overlap errors occur...[[BR]] * Fill in UCF file with pin-mappings if needed == 5: System Generation == * Generate Netlist (Hardware menu)[[BR]] * Generate Bitstream (Hardware menu)[[BR]] * Generate Libraries and BSPs (Software menu) -- see [wiki:"FAQ" Frequently Asked Questions] for errors that might occur here[[BR]] * Build All User Applications (Software menu)[[BR]] * Update Bitstream (Device Configuration)[[BR]] == 6: Making Updates and Changes == === A: Changes to Hardware === If you modify a peripheral's HDL or data files (such as its MPD)...[[BR]] [[BR]] * Close all documents and directories containing generated files[[BR]] * Clean hardware (Hardware menu)[[BR]] * Rescan user repositories (Project menu)[[BR]] * Update bitstream[[BR]] === B: Changes to Software === * Update the bistream