How do I choose between a Virtex-II block multiplier and a multiplier that uses only LUTs? Synplify seems to make this choice for me when I wish to use a different multiplier.
(NOTE: This Answer Record applies only to a Synplify project, not an ISE project.)
In Synplify/Synplify Pro, you can apply a constraint called "syn_multstyle".
During the synthesis process, your design runs through two steps: compile and map. The multiplier primitive is applied during the mapping phase, so you must apply the constraint after the compile phase. To ensure that this constraint is properly applied after the compile phase, use Synplify's constraints editor as follows:
1. Compile your design.
2. Open a constraint file (the clock initialization is not necessary for this solution).
3. Select the "Attributes" tab in the constraint file.
4. Open the RTL view (not the Technology view).
5. Find the output net of the multiplier and drag-and-drop it into the constraint file.
6. Select the syn_multstyle constraint from the Attribute column.
7. Select the multiplier type from the Value column.
8. Map your design.