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.

FPGA design flow is a random function of the circuit design and a seed. “A seed is a parameter<br />

that affects the random initial placement of the Quartus II fitter” [16]. The Quartus II<br />

documentation suggests that the seed value has small influence on the final compilation result<br />

[16]. However, our experiments show that the seed may have a large impact on the compilation<br />

results. We analyzed the compilation results of the UT Nios based system using 20 different<br />

seeds, and found that the results varied as much as 14.9%. Furthermore, exploring how the<br />

compilation results of seven different systems vary with different seeds, we found that on<br />

average, the difference between the best and the worst case over 20 seeds was 12.4%. But, the<br />

difference between the best and the average case was only 5.6% in this experiment. Therefore, we<br />

believe that the designers should always do a seed sweep as part of the recommended design<br />

process. The seed value does not influence the number of LEs required for the design<br />

implementation; it influences only how the LEs are placed inside the device.<br />

The compilation result variations affected the methodology used in this work. We based our<br />

design decisions on the results from the timing analysis provided by Quartus II. Since the initial<br />

placement changes whenever the netlist changes, we compiled each design with multiple seeds,<br />

and based the decisions on the maximum Fmax values obtained. The fluctuations in the Fmax have<br />

another implication on the design process that we have observed. Since the development board<br />

contains only a 50 MHz clock signal, we have used PLLs to synthesize the appropriate clock<br />

speed for the system. The system has to be compiled once before introducing the PLL to<br />

determine the Fmax. However, when the PLL that produces the clock signal with the obtained Fmax<br />

is introduced in the design, the new compilation result often does not achieve the previously<br />

obtained Fmax. Therefore, the design has to be compiled several times again, with different seeds,<br />

until the seed that produces the original Fmax is found. Another option is to use the Quartus II<br />

LogicLock feature. The feature enables users to lock the placement and routing of the circuit, or<br />

part of the circuit, so the performance of that circuit remains constant when other modules are<br />

added to the design and the design is recompiled.<br />

The nature of state machine processing is another synthesis parameter available in Quartus II<br />

that may have a significant impact on the performance of some designs. The state machine<br />

processing defines how the states in a state machine are encoded. The available options are:<br />

minimal bits, one-hot, user-encoded, and auto (compiler selected). The state machines in the<br />

Verilog design files are automatically recognized if the state machine specification follows the<br />

guidelines outlined in [16]. The value of the state machine processing parameter has very little<br />

effect on our current design (less than 1%). However, at one point during the design process, the<br />

control unit state machine had 14 states. Encoding the states using one-hot encoding in that case<br />

83

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

Saved successfully!

Ooh no, something went wrong!