12.12.2012 Views

Xcell Journal: The authoritative journal for programmable ... - Xilinx

Xcell Journal: The authoritative journal for programmable ... - Xilinx

Xcell Journal: The authoritative journal for programmable ... - Xilinx

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

DIGITAL SIGNAL PROCESSING<br />

<strong>Xilinx</strong> black box is in a model file, and the<br />

VHDL code to configure it resides in the<br />

folder in which the model file is saved, then<br />

the configuration wizard <strong>for</strong> the black box<br />

will automatically generate an .m file to<br />

describe the functionality of the black box.<br />

With System Generator 3.1, you can configure<br />

the black box manually.<br />

Figure 6 – Example model demonstrating<br />

clock enable probe use<br />

Figure 7 – Scope output from<br />

clock enable probe example<br />

A problem exists when generating the .m<br />

file through the wizard. <strong>The</strong> configuration<br />

wizard <strong>for</strong> the black box cannot realize multiple<br />

entities in the .vhd file. <strong>The</strong> VHDL<br />

file bbrx.vhd contained multiple entities<br />

because of inefficient VHDL code generation<br />

through <strong>Xilinx</strong> StateCAD. Thus, you<br />

must manually manipulate the code to<br />

reduce it to one entity. You can then use the<br />

Figure 8 – Propagation of enable signal through delay blocks<br />

modified VHDL code in conjunction with<br />

the <strong>Xilinx</strong> black box wizard, creating a<br />

block shown like that in Figure 5.<br />

System Generator 6.1 Features<br />

<strong>The</strong> Fast Fourier Trans<strong>for</strong>m (FFT) implementation<br />

through configuration of a<br />

<strong>Xilinx</strong> black box block with M-file and<br />

VHDL wrapper file had problems in the<br />

past with execution in Simulink. <strong>The</strong>se<br />

problems arose from the fact that System<br />

Generator did not appear to allow <strong>for</strong> multiple<br />

sampling rates (<strong>for</strong> instance, a clock<br />

and its respective down-sampled version).<br />

This problem has since been alleviated<br />

with the addition of a clock enable probe system<br />

generator block. This block lets you<br />

effectively up- and down-sample a clock rate<br />

such that multiple clock rates are allowed<br />

within the same model. Figures 6 and 7 illustrate<br />

an example of the clock enable probe.<br />

DSP Circuitry Synchronization<br />

Synchronous design goes hand in hand<br />

with the development of DSP circuitry.<br />

<strong>The</strong>re<strong>for</strong>e, it is important to be able to realize<br />

synchronous design in the high-level<br />

abstraction that System Generator provides.<br />

Note that <strong>Xilinx</strong> delay blocks are used<br />

<strong>for</strong> “delaying” enable signals <strong>for</strong> a duration<br />

that matches computation ef<strong>for</strong>t time. You<br />

can use the output of this delay as an effective<br />

“output enable,” as shown in Figure 8.<br />

<strong>The</strong>se delays are of such importance that<br />

be<strong>for</strong>e enabling the second block in a<br />

chain, you want to make sure the first<br />

block has completed its computation.<br />

Exploring “FFT_power.mdl” demonstrates<br />

that latency requirements increase<br />

when the precision of the<br />

inputs and output of the<br />

multiplier block increase.<br />

Thus, the delays need to be<br />

modified when greater<br />

computational ef<strong>for</strong>t and<br />

thus greater time requirements<br />

in terms of <strong>Xilinx</strong><br />

block latency result from<br />

overall design changes.<br />

You could add greater<br />

flexibility to the <strong>Xilinx</strong><br />

blockset with the addition<br />

of extra input parameters to<br />

some of the blocks in the set. For instance,<br />

the count-limited counter does not offer a<br />

count-to value as a possible input parameter.<br />

<strong>The</strong>re<strong>for</strong>e, dynamic configuration of<br />

the counter threshold is unrealizable.<br />

Output enables allow one stage to signify<br />

it is complete, and thus <strong>for</strong> the next<br />

stage to start. Currently, most of the blocks<br />

in the blockset do not provide signals<br />

telling you when the block is finished its<br />

computation. This would be helpful in the<br />

handshaking <strong>for</strong> several <strong>Xilinx</strong> blocks.<br />

However, you can realize output enable<br />

signals and counter threshold input signals<br />

by generating a VHDL file using the<br />

<strong>Xilinx</strong> Core Generator tool, and then<br />

configuring a <strong>Xilinx</strong> black box. But this<br />

requires more time from the designer and<br />

greater engineering ef<strong>for</strong>t as well.<br />

We have to consider flexibility (the<br />

addition of output enables and other input<br />

parameters) to offer dynamic configuration<br />

of blocks versus a trade-off in maintaining<br />

the abstraction desired by DSP designers<br />

lacking strong digital design skills. It is<br />

there<strong>for</strong>e important to consider these ideas<br />

in future versions of System Generator.<br />

Conclusion<br />

A custom logic design may seem like a<br />

daunting task, but with the flexibility<br />

offered by <strong>Xilinx</strong> System Generator, it is<br />

quite achievable. <strong>Xilinx</strong> MCode and black<br />

box block configuration offer viable solutions<br />

<strong>for</strong> implementing custom logic.<br />

System Generator is a very powerful and<br />

abstract tool, but we would like to see greater<br />

flexibility in terms of achieving synchronous<br />

design within System Generator.<br />

80 <strong>Xcell</strong> <strong>Journal</strong> Winter 2004

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

Saved successfully!

Ooh no, something went wrong!