System design using FPGA, ASIC and microprocessor/microcontroller based system design is significantly different from the regular board design. In this technical article, we will provide you some key recommendations to design FPGA/Processor-based systems successfully. These are suggested by many board design engineers who has good experience in high speed board designs , multi-layered, multi-CPU and high performance board designs.

Functional Design Guidelines for FPGA & Processor Board Design

  • Ensure that all the critical signals on the board are terminated properly.
  • Fanout calculations should consider the current drive capability, the rise time of the outputs and the trace load.
  • Analyze the dynamic drive capability of output drivers to make sure that the drivers are not loaded more than its limits. (IOLmax, IOHmax). If the driver is unable to meet the loading requirements then it is recommended to use buffers. Timing analysis should be done to ensure that the delays resulting from use of buffers are taken care of.
  • Analyze the dynamic drive capability of output drivers to make sure that the drivers are not loaded more than its limits. (CL). If the capacitive load on the driver is too high then the rise and fall time deteriorates. Also, timing delays are introduced. Timing analysis should be done for all traces to ensure that the delays do not cause timing violations.
  • Avoid bus contention in bi-directional interfaces. Designs with bi-directional buffers should conform to the following sequence for switching from one direction to another. Disable the buffer, Change the direction, and Enable the buffer while switching the directions for avoiding contention. This will help in avoiding bus contention and hence damage to the buffers during switchovers.
  • When multiple devices are on the same bus, ensure proper turnaround time. There should be sufficient turnaround time during switchover from one driver to another. To ensure this, the present driver should tristate the bus, and the next driver should start driving after sufficient turnaround time. This is done to avoid damages to all the devices on the bus.
  • Select the LED drive circuitry in a product so that there is uniformity across various subsystems of a product. Also make the LEDs visible outside the product wherever it is applicable so that there is uniformity across various subsystems of a product. This is to ensure compatibility across modules of a product, like intensity, size, color, indication status etc.