17.11.2012 Views

Soft-Core Processor Design - CiteSeer

Soft-Core Processor Design - CiteSeer

Soft-Core Processor Design - CiteSeer

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

timing-driven [11]. Although simulated annealing produces suboptimal results, a good choice of<br />

the cost function yields average results that are reasonably close to optimal.<br />

Once the placement has been done, the routing algorithm determines how to interconnect the<br />

logic blocks using the available routing. The routing algorithm can also be timing- or<br />

routability-driven. While a routability-driven algorithm only tries to allocate routing resources so<br />

that all signals can be routed, a timing-driven algorithm tries also to minimize the routing delays<br />

[15]. The routing algorithm produces a set of programming bits determining the state of all the<br />

interconnection switches inside an FPGA.<br />

The final output the CAD tools produce is the FPGA programming file, which is a bit stream<br />

determining the state of every programmable element inside an FPGA. <strong>Design</strong> flow, including<br />

synthesis, placement and routing is sometimes referred to as the design compilation. Although the<br />

term synthesis is also commonly used, we will use the term design compilation to avoid<br />

confusion between the synthesis step of the design flow, and the complete design flow.<br />

Although design compilation does not generally require the designer’s assistance, modern<br />

tools allow the designer to direct the synthesis process by specifying various parameters. Even<br />

variations in the initial specification can influence the quality of the final result (examples of such<br />

behaviour will be shown later in the thesis). This suggests that the designer should understand the<br />

CAD tools and the underlying technology to fully exploit the capabilities of both tools and the<br />

device. In the following section we give an overview of the CAD tool and the FPGA device used<br />

in the thesis.<br />

2.4. Stratix FPGA and Quartus II CAD Tool<br />

The previous two sections presented a general FPGA architecture and CAD design flow. In<br />

this section, the Stratix FPGA device family [12] used for the implementation of UT Nios is<br />

presented. The CAD tool Quartus II [16], used for the synthesis of the UT Nios design, is also<br />

described.<br />

The terminology used in Stratix documentation [12] is somewhat different than that presented<br />

in section 2.1. A logic element (LE) is very similar to the logic block depicted in Figure 2.1. It<br />

consists of a 4-LUT, a register (flip-flop), a multiplexer to choose between the LUT and the<br />

register output, and additional logic required for advanced routing employed in Stratix. Special<br />

kinds of interconnection; LUT chains, register chains, and carry chains, are used to minimize the<br />

routing delay and increase capabilities of groups of LEs. Groups of 10 LEs are packed inside<br />

clusters called Logic Array Blocks (LABs), with a hierarchical routing structure [12].<br />

9

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

Saved successfully!

Ooh no, something went wrong!