05.07.2013 Views

Xilinx Synthesis Technology User Guide

Xilinx Synthesis Technology User Guide

Xilinx Synthesis Technology User Guide

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

Multiplexers<br />

FPGA Optimization<br />

For multiplexers the Macro Generator provides the following two<br />

architectures:<br />

• MUXFx based multiplexers<br />

• Dedicated Carry-MUXs based multiplexers<br />

For Virtex-E, MUXFx based multiplexers are generated by using the<br />

optimal tree structure of MUXF5, MUXF6 primitives, which allows<br />

compact implementation of large inferred multiplexers. For example,<br />

XST can implement an 8:1 multiplexer in a single CLB. In some cases<br />

dedicated carry-MUXs are generated; these can provide more<br />

efficient implementations, especially for very large multiplexers.<br />

For Virtex-II and Virtex-II Pro, XST can implement a 16:1 multiplexer<br />

in a single CLB using a MUXF7 primitive, and it can implement a 32:1<br />

multiplexer across two CLBs using a MUXF8.<br />

In order to have a better control of the implementation of the inferred<br />

multiplexer, XST offers a way to select the generation of either the<br />

MUXF5/MUXF6 or Dedicated Carry-MUXs architectures. The<br />

attribute MUX_STYLE specifies that an inferred multiplexer will be<br />

implemented on a MUXFx based architecture if the value is MUXF, or<br />

a Dedicated Carry-MUXs based architecture if the value is MUXCY.<br />

You can apply this attribute to either a signal that defines the<br />

multiplexer or the instance name of the multiplexer. This attribute<br />

can also be global.<br />

The attribute MUX_EXTRACT with, respectively, the value no or force<br />

can be used to disable or force the inference of the multiplexer.<br />

Priority Encoder<br />

The if/elsif structure described in the “Priority Encoders” section of<br />

the “HDL Coding Techniques” chapter will be implemented with a 1of-n<br />

priority encoder.<br />

XST uses the MUXCY primitive to chain the conditions of the priority<br />

encoder, which results in its high-speed implementation.<br />

You can enable/disable priority encoder inference using the<br />

priority_extract property.<br />

XST <strong>User</strong> <strong>Guide</strong> 3-5

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

Saved successfully!

Ooh no, something went wrong!