17.11.2012 Views

Soft-Core Processor Design - CiteSeer

Soft-Core Processor Design - CiteSeer

Soft-Core Processor Design - CiteSeer

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

the HDL coding style. To ensure that the desired megafunction will be inferred from the HDL,<br />

the coding style guidelines outlined in [16] should be followed.<br />

Aside from the design flow steps described in the section 2.3, the Quartus II design flow<br />

includes two optional steps: timing analysis and simulation. Timing analysis provides information<br />

about critical paths in a design by analyzing the netlist produced by the fitter. Simulation is used<br />

for design verification by comparing the expected output with the output of the design simulation.<br />

The Quartus II simulator supports two modes of simulation; functional and timing. Functional<br />

simulation verifies the functionality of the netlist produced by synthesis. At that level, timing<br />

parameters are unknown, since there is no information on mapping into the physical device.<br />

Therefore, the functional simulation ignores any timing parameters and assumes that the<br />

propagation delays are negligible. The timing simulation extracts the timing information from the<br />

fitting results, and uses it to simulate the design functionality, including timing relations among<br />

signals. The timing simulation gives more precise information about the system behaviour at the<br />

expense of increased simulation time.<br />

Quartus II also supports the use of other Electronic <strong>Design</strong> Automation (EDA) tools. One such<br />

tool is ModelSim [19], the simulation tool which was particularly useful for the work in this<br />

thesis. In addition to functional and timing simulation, ModelSim also supports behavioural<br />

simulation. The behavioural simulation verifies the functionality of the circuit description,<br />

without any insight into actual implementation details. For instance, if the circuit specification is<br />

given in an HDL, the behavioural simulator would simulate the HDL code line by line; like a<br />

program in a high-level language. Unlike the functional simulator, the behavioural simulator does<br />

not take into account how the circuit specification maps into logic gates, or if it can be mapped at<br />

all. A design that passes the behavioural verification may not function correctly when<br />

implemented in logic, since it is unknown how it maps to the hardware.<br />

To make sure that the behavioural description will compile and produce a circuit with<br />

intended behaviour, designers should follow the design recommendations provided in the Quartus<br />

II documentation [16]. This is especially true when writing HDL code. Both Verilog and VHDL<br />

were designed as simulation languages; only a subset of the language constructs is supported for<br />

synthesis [20,21]. Therefore, not all syntactically correct HDL code will compile into the<br />

functionality corresponding to the results of the behavioural simulation.<br />

In this chapter, an overview of the previous work in the area of reconfigurable computing has<br />

been presented. <strong>Design</strong> methodology, and hardware and software tools used in this thesis have<br />

also been presented. The next chapter presents the Altera Nios soft-core processor and supporting<br />

tools in more detail.<br />

11

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

Saved successfully!

Ooh no, something went wrong!