Xcell Journal: The authoritative journal for programmable ... - Xilinx
Xcell Journal: The authoritative journal for programmable ... - Xilinx
Xcell Journal: The authoritative journal for programmable ... - Xilinx
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