| 1 | = Developing Peripherals for WARP and XPS: Preface = |
| 2 | [[BR]] |
| 3 | XPS provides an added layer of abstraction for developing modular peripherals. For example, adding in a peripheral to an XPS project is easy – the user simply drags the peripheral into their System Assembly, puts it on a bus (if it requires PowerPC control), generates its bass-address (again, if it’s on a BUS or has memory-mapped I/O), and finally ties the peripherals in/out ports to other peripheral modules or external pins, using net-names (the equivalent of a wire).[[BR]][[BR]] |
| 4 | This process is extremely efficient from the standpoint of recyclability of the peripheral modules. This can be even more powerful when a peripherals information has been added to an XBD (Xilinx Board Description File) – which will even automatically fill in the necessary pin constraints for the user (which can at times be quite overwhelming depending on the peripheral). [[BR]][[BR]] |
| 5 | This guide is meant to be extremely straight-forward in introducing the user to building peripherals for use with XPS (both to be PowerPC controlled and not). It is assumed that the reader has a solid background in VHDL or Verilog programming, for the individual to program peripherals effectively. The procedure for teaching this is as follows:[[BR]][[BR]] |
| 6 | |
| 7 | * The file structure for XPS/EDK-based peripherals[[BR]] |
| 8 | * Creating peripherals that do not require PowerPC control[[BR]] |
| 9 | * Creating peripherals that DO require PowerPC control[[BR]] |
| 10 | * Updating the *.XBD and *.MPD files for using the peripheral in BSB (*.xbd compliance)[[BR]] |
| 11 | * Notes for good peripheral design practice[[BR]] |
| 12 | * References[[BR]] |