15.01.2013 Views

U. Glaeser

U. Glaeser

U. Glaeser

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

FIGURE 12.8<br />

Design<br />

Entry<br />

Logic Simulation and Test<br />

A typical FPGA CAD tool design flow is shown in Fig. 12.8. First, the design is entered, using an HDL<br />

or schematic. Large designs are often simulated first using a faster running functional simulation tool<br />

that uses a zero gate delay model (i.e., it does not contain any gate level timing information). Functional<br />

simulation will detect logical errors but not synthesis related timing problems. Timing simulations are<br />

performed later after synthesis and mapping of the design onto the FPGA.<br />

A test bench (also called a test harness or a test fixture) is a specially written module that provides<br />

input stimulus to a simulation and automatically monitors the output of the hardware unit under test<br />

(UUT) [8,22]. Using a test bench isolates the test-only code portion of a design from the hardware<br />

synthesis model. By running the same test bench code and test vectors in both a functional and timing<br />

simulation, it is possible to check for any synthesis related problems. It is common for the test bench<br />

code to require as much development time as the HDL synthesis model.<br />

Following functional simulation of the design, the logic is automatically minimized, the design is synthesized,<br />

and saved as a netlist. A netlist is a text-based representation of a logic circuit’s schematic diagram.<br />

FPGA Place and Route Tools<br />

An automatic fitting or place and route tool then reads in the design’s netlist and fits the design into the<br />

device. The design is mapped into the FPGA’s logic elements, first by partitioning the design into small<br />

pieces that fit in an FPGA’s logic element, and then by placing the design in specific logic element locations<br />

in the FPGA. After placement, the interconnection network routing paths are determined. Many logic<br />

elements must be connected to form a design, so the interconnect delays are a function of the distance<br />

between the logic elements selected in the place process. The place and route process can be quite involved<br />

and can take several minutes to compute on large designs. Combinatorial explosion prevents the tools<br />

from examining all possible place and route assignments for a design. Heuristic algorithms such as simulated<br />

annealing are used for place and route, so running the place and route tool multiple times may<br />

produce better performance. External I/O signals can be constrained to particular device pin numbers, but<br />

allowing them to be selected automatically by the place and route tools often results in improved performance.<br />

Many tools also allow the designer to specify timing constraints on critical signal paths to help<br />

meet performance goals. Most tools still include a floorplan editor that allows manual placement of the<br />

design into logic elements, but current generation tools, using automatic placement with appropriate timing<br />

constraints, are likely to produce superior performance. Place and route errors will occur when there are<br />

not enough logic elements, interconnect, or pin resources on the specified FPGA to support the design.<br />

After partition, place, and route, accurate timing simulations can be performed using logic and interconnect<br />

time delays automatically obtained from the manufacturer’s detailed timing model of the device.<br />

Although errors can occur at any step in the process, the most common step where errors are detected is<br />

during tests in an exhaustive simulation.<br />

Device Programming and Hardware Verification<br />

After successful simulation, the final step is device programming and hardware verification using the<br />

actual FPGA. Smaller PLD and CPLD devices with fuses or EEPROM will only need to be programmed<br />

once since the memory is nonvolatile. Most FPGAs use volatile RAM memory for programming, so they<br />

need to be reprogrammed each time power is turned on. For initial prototyping, FPGA CAD tools can<br />

© 2002 by CRC Press LLC<br />

Translation<br />

Functional<br />

Simulation<br />

CAD tool flow for FPGAs and CPLDs.<br />

Optimization<br />

& Synthesis<br />

Place &<br />

Route<br />

Timing<br />

Simulation<br />

Device<br />

Programming

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!