Not enough sites to place MULT18X18?

Hi, there:

I am implementing a partial chip for virtex-2-6000. My module has 116 multipliers, the module is allocated an area group with 120 multipliers. Later I got 9 multipliers not placed, while the PAR informs there are 13 available sites for placing them...However, the placement failed...

How may I handle such a situation? Replace some smaller * with rtl implementation? How many slices can I implement an 8X8 muldipler? Repartitioning to put some * signs in somebody else's modules? Possible but troublesome...

Best Regards, Kelvin

Phase 6.9 WARNING:Place:119 - Unable to find location. MULT component

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_wkq_calc_mul_inst_ m ult_11 not placed. MULT18X18 "i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_wkq_calc_mul_inst _mul t_11". COMPGRP "RX.MULT18X18" LOCATE = SITE "MULT18X18_X1Y23:MULT18X18_X5Y0" LEVEL 4 ; Only the one associated with MULT18X18 i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_wkq_calc_mul_inst_ mult _11 will be looked at. The AREA group contains 120 possible sites for this component. 13 of these sites were available to place this component into. =============================================================== List of 13 available sites in area are: Site MULT18X18_X1Y3 Site MULT18X18_X1Y5 Site MULT18X18_X1Y12 Site MULT18X18_X1Y15 Site MULT18X18_X1Y19 Site MULT18X18_X2Y4 Site MULT18X18_X2Y6 Site MULT18X18_X2Y8 Site MULT18X18_X2Y12 Site MULT18X18_X2Y16 Site MULT18X18_X2Y19 Site MULT18X18_X2Y20 Site MULT18X18_X2Y22 =============================================================== List of comps in area without same LOC are: =============================================================== WARNING:Place:119 - Unable to find location. MULT component

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_q0_b_mul_inst_mu l t_2 not placed. MULT18X18 "i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_q0_b_mul_inst_m ult_

2". COMPGRP "RX.MULT18X18" LOCATE = SITE "MULT18X18_X1Y23:MULT18X18_X5Y0" LEVEL 4 ; Only the one associated with MULT18X18 i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_q0_b_mul_inst_mu lt_2 will be looked at. The AREA group contains 120 possible sites for this component. 13 of these sites were available to place this component into. =============================================================== List of 13 available sites in area are: Site MULT18X18_X1Y3 Site MULT18X18_X1Y5 Site MULT18X18_X1Y12 Site MULT18X18_X1Y15 Site MULT18X18_X1Y19 Site MULT18X18_X2Y4 Site MULT18X18_X2Y6 Site MULT18X18_X2Y8 Site MULT18X18_X2Y12 Site MULT18X18_X2Y16 Site MULT18X18_X2Y19 Site MULT18X18_X2Y20 Site MULT18X18_X2Y22 =============================================================== List of comps in area without same LOC are: =============================================================== WARNING:Place:119 - Unable to find location. MULT component

i_ofdm_rx/i_wrx_top/i_multipath_top/i_multipath_wk_calc/Mmult__n0009_inst_mu l t_3 not placed. MULT18X18 "i_ofdm_rx/i_wrx_top/i_multipath_top/i_multipath_wk_calc/Mmult__n0009_inst_m ult_

3". COMPGRP "RX.MULT18X18" LOCATE = SITE "MULT18X18_X1Y23:MULT18X18_X5Y0" LEVEL 4 ; Only the one associated with MULT18X18 i_ofdm_rx/i_wrx_top/i_multipath_top/i_multipath_wk_calc/Mmult__n0009_inst_mu lt_3 will be looked at. The AREA group contains 120 possible sites for this component. 13 of these sites were available to place this component into. =============================================================== List of 13 available sites in area are: Site MULT18X18_X1Y3 Site MULT18X18_X1Y5 Site MULT18X18_X1Y12 Site MULT18X18_X1Y15 Site MULT18X18_X1Y19 Site MULT18X18_X2Y4 Site MULT18X18_X2Y6 Site MULT18X18_X2Y8 Site MULT18X18_X2Y12 Site MULT18X18_X2Y16 Site MULT18X18_X2Y19 Site MULT18X18_X2Y20 Site MULT18X18_X2Y22 =============================================================== List of comps in area without same LOC are: =============================================================== WARNING:Place:119 - Unable to find location. MULT component

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_dataii_mul_inst_mu l t_1 not placed. MULT18X18 "i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_dataii_mul_inst_m ult_

1". COMPGRP "RX.MULT18X18" LOCATE = SITE "MULT18X18_X1Y23:MULT18X18_X5Y0" LEVEL 4 ; Only the one associated with MULT18X18 i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_dataii_mul_inst_mu lt_1 will be looked at. The AREA group contains 120 possible sites for this component. 13 of these sites were available to place this component into. =============================================================== List of 13 available sites in area are: Site MULT18X18_X1Y3 Site MULT18X18_X1Y5 Site MULT18X18_X1Y12 Site MULT18X18_X1Y15 Site MULT18X18_X1Y19 Site MULT18X18_X2Y4 Site MULT18X18_X2Y6 Site MULT18X18_X2Y8 Site MULT18X18_X2Y12 Site MULT18X18_X2Y16 Site MULT18X18_X2Y19 Site MULT18X18_X2Y20 Site MULT18X18_X2Y22 =============================================================== List of comps in area without same LOC are: =============================================================== WARNING:Place:119 - Unable to find location. MULT component

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_i0_a_mul_inst_mu l t_2 not placed. MULT18X18 "i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_i0_a_mul_inst_m ult_

2". COMPGRP "RX.MULT18X18" LOCATE = SITE "MULT18X18_X1Y23:MULT18X18_X5Y0" LEVEL 4 ; Only the one associated with MULT18X18 i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_i0_a_mul_inst_mu lt_2 will be looked at. The AREA group contains 120 possible sites for this component. 13 of these sites were available to place this component into. =============================================================== List of 13 available sites in area are: Site MULT18X18_X1Y3 Site MULT18X18_X1Y5 Site MULT18X18_X1Y12 Site MULT18X18_X1Y15 Site MULT18X18_X1Y19 Site MULT18X18_X2Y4 Site MULT18X18_X2Y6 Site MULT18X18_X2Y8 Site MULT18X18_X2Y12 Site MULT18X18_X2Y16 Site MULT18X18_X2Y19 Site MULT18X18_X2Y20 Site MULT18X18_X2Y22 =============================================================== List of comps in area without same LOC are: =============================================================== WARNING:Place:119 - Unable to find location. MULT component

i_ofdm_rx/i_wrx_top/i_multipath_top/i_multipath_wk_calc/Mmult__n0010_inst_mu l t_3 not placed. MULT18X18 "i_ofdm_rx/i_wrx_top/i_multipath_top/i_multipath_wk_calc/Mmult__n0010_inst_m ult_

3". COMPGRP "RX.MULT18X18" LOCATE = SITE "MULT18X18_X1Y23:MULT18X18_X5Y0" LEVEL 4 ; Only the one associated with MULT18X18 i_ofdm_rx/i_wrx_top/i_multipath_top/i_multipath_wk_calc/Mmult__n0010_inst_mu lt_3 will be looked at. The AREA group contains 120 possible sites for this component. 13 of these sites were available to place this component into. =============================================================== List of 13 available sites in area are: Site MULT18X18_X1Y3 Site MULT18X18_X1Y5 Site MULT18X18_X1Y12 Site MULT18X18_X1Y15 Site MULT18X18_X1Y19 Site MULT18X18_X2Y4 Site MULT18X18_X2Y6 Site MULT18X18_X2Y8 Site MULT18X18_X2Y12 Site MULT18X18_X2Y16 Site MULT18X18_X2Y19 Site MULT18X18_X2Y20 Site MULT18X18_X2Y22 =============================================================== List of comps in area without same LOC are: =============================================================== WARNING:Place:119 - Unable to find location. MULT component

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_dataqq_mul_inst_mu l t_1 not placed. MULT18X18 "i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_dataqq_mul_inst_m ult_

1". COMPGRP "RX.MULT18X18" LOCATE = SITE "MULT18X18_X1Y23:MULT18X18_X5Y0" LEVEL 4 ; Only the one associated with MULT18X18 i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_dataqq_mul_inst_mu lt_1 will be looked at. The AREA group contains 120 possible sites for this component. 13 of these sites were available to place this component into. =============================================================== List of 13 available sites in area are: Site MULT18X18_X1Y3 Site MULT18X18_X1Y5 Site MULT18X18_X1Y12 Site MULT18X18_X1Y15 Site MULT18X18_X1Y19 Site MULT18X18_X2Y4 Site MULT18X18_X2Y6 Site MULT18X18_X2Y8 Site MULT18X18_X2Y12 Site MULT18X18_X2Y16 Site MULT18X18_X2Y19 Site MULT18X18_X2Y20 Site MULT18X18_X2Y22 =============================================================== List of comps in area without same LOC are: =============================================================== WARNING:Place:119 - Unable to find location. MULT component

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_wki_calc_mul_inst_ m ult_11 not placed. MULT18X18 "i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_wki_calc_mul_inst _mul t_11". COMPGRP "RX.MULT18X18" LOCATE = SITE "MULT18X18_X1Y23:MULT18X18_X5Y0" LEVEL 4 ; Only the one associated with MULT18X18 i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_wki_calc_mul_inst_ mult _11 will be looked at. The AREA group contains 120 possible sites for this component. 13 of these sites were available to place this component into. =============================================================== List of 13 available sites in area are: Site MULT18X18_X1Y3 Site MULT18X18_X1Y5 Site MULT18X18_X1Y12 Site MULT18X18_X1Y15 Site MULT18X18_X1Y19 Site MULT18X18_X2Y4 Site MULT18X18_X2Y6 Site MULT18X18_X2Y8 Site MULT18X18_X2Y12 Site MULT18X18_X2Y16 Site MULT18X18_X2Y19 Site MULT18X18_X2Y20 Site MULT18X18_X2Y22 =============================================================== List of comps in area without same LOC are: =============================================================== WARNING:Place:119 - Unable to find location. MULT component

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_i0_b_mul_inst_mu l t_2 not placed. MULT18X18 "i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_i0_b_mul_inst_m ult_

2". COMPGRP "RX.MULT18X18" LOCATE = SITE "MULT18X18_X1Y23:MULT18X18_X5Y0" LEVEL 4 ; Only the one associated with MULT18X18 i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_i0_b_mul_inst_mu lt_2 will be looked at. The AREA group contains 120 possible sites for this component. 13 of these sites were available to place this component into. =============================================================== List of 13 available sites in area are: Site MULT18X18_X1Y3 Site MULT18X18_X1Y5 Site MULT18X18_X1Y12 Site MULT18X18_X1Y15 Site MULT18X18_X1Y19 Site MULT18X18_X2Y4 Site MULT18X18_X2Y6 Site MULT18X18_X2Y8 Site MULT18X18_X2Y12 Site MULT18X18_X2Y16 Site MULT18X18_X2Y19 Site MULT18X18_X2Y20 Site MULT18X18_X2Y22 =============================================================== List of comps in area without same LOC are: =============================================================== ERROR:Place:120 - There were not enough sites to place all selected components Phase 6.9 (Checksum:39386fa) REAL time: 27 mins 46 secs

Total REAL time to Placer completion: 27 mins 47 secs

Reply to
kelvin8157
Loading thread data ...

Kelvin,

You will probably find that some of the multiplier sites are blocked from being used due to some block RAMs having widths of > 18 bits. If so, try to change some of the RAMs to have smaller widths.

I have a design which now uses all 144 of the V2-6000 multipliers, and most of the RAMs without prob. I had to reduce the width of all of the RAMs to 18 bits or less for the multipliers to be available for use.

(I was impressed that Mentor Precision automatically used multipliers built with LUTs, once it had used up all the available multipiers).

Good Luck,

Ken, Morrow Electronics Limited, UK Currently specialising in FPGA design for 3G.

formatting link

Possible

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_wkq_calc_mul_inst_

"i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_wkq_calc_mul_inst

"MULT18X18_X1Y23:MULT18X18_X5Y0"

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_wkq_calc_mul_inst_

these

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_q0_b_mul_inst_mu

"i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_q0_b_mul_inst_m

"MULT18X18_X1Y23:MULT18X18_X5Y0"

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_q0_b_mul_inst_mu

these

i_ofdm_rx/i_wrx_top/i_multipath_top/i_multipath_wk_calc/Mmult__n0009_inst_mu

"i_ofdm_rx/i_wrx_top/i_multipath_top/i_multipath_wk_calc/Mmult__n0009_inst_m

"MULT18X18_X1Y23:MULT18X18_X5Y0"

i_ofdm_rx/i_wrx_top/i_multipath_top/i_multipath_wk_calc/Mmult__n0009_inst_mu

these

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_dataii_mul_inst_mu

"i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_dataii_mul_inst_m

"MULT18X18_X1Y23:MULT18X18_X5Y0"

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_dataii_mul_inst_mu

these

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_i0_a_mul_inst_mu

"i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_i0_a_mul_inst_m

"MULT18X18_X1Y23:MULT18X18_X5Y0"

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_i0_a_mul_inst_mu

these

i_ofdm_rx/i_wrx_top/i_multipath_top/i_multipath_wk_calc/Mmult__n0010_inst_mu

"i_ofdm_rx/i_wrx_top/i_multipath_top/i_multipath_wk_calc/Mmult__n0010_inst_m

"MULT18X18_X1Y23:MULT18X18_X5Y0"

i_ofdm_rx/i_wrx_top/i_multipath_top/i_multipath_wk_calc/Mmult__n0010_inst_mu

these

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_dataqq_mul_inst_mu

"i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_dataqq_mul_inst_m

"MULT18X18_X1Y23:MULT18X18_X5Y0"

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_dataqq_mul_inst_mu

these

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_wki_calc_mul_inst_

"i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_wki_calc_mul_inst

"MULT18X18_X1Y23:MULT18X18_X5Y0"

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_wki_calc_mul_inst_

these

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_i0_b_mul_inst_mu

"i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_i0_b_mul_inst_m

"MULT18X18_X1Y23:MULT18X18_X5Y0"

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_i0_b_mul_inst_mu

these

Reply to
Ken Morrow

i used core generator to generate the RAMs, and they have 64-depth 64-bit RAMs, so I have no much control over how XST implements it in the synthesis. Actually in Floor Planner I can see some BRAM and MULT18X18 side by side...

I have replaced 16 multipliers with LUTs implementions from Core generator... And it is working now but I am concerned with the slice usage...

Kelvin

the

most

built

I

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_wkq_calc_mul_inst_

"i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_wkq_calc_mul_inst

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_wkq_calc_mul_inst_

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_q0_b_mul_inst_mu

"i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_q0_b_mul_inst_m

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_q0_b_mul_inst_mu

i_ofdm_rx/i_wrx_top/i_multipath_top/i_multipath_wk_calc/Mmult__n0009_inst_mu

"i_ofdm_rx/i_wrx_top/i_multipath_top/i_multipath_wk_calc/Mmult__n0009_inst_m

i_ofdm_rx/i_wrx_top/i_multipath_top/i_multipath_wk_calc/Mmult__n0009_inst_mu

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_dataii_mul_inst_mu

"i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_dataii_mul_inst_m

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_dataii_mul_inst_mu

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_i0_a_mul_inst_mu

"i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_i0_a_mul_inst_m

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_i0_a_mul_inst_mu

i_ofdm_rx/i_wrx_top/i_multipath_top/i_multipath_wk_calc/Mmult__n0010_inst_mu

"i_ofdm_rx/i_wrx_top/i_multipath_top/i_multipath_wk_calc/Mmult__n0010_inst_m

i_ofdm_rx/i_wrx_top/i_multipath_top/i_multipath_wk_calc/Mmult__n0010_inst_mu

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_dataqq_mul_inst_mu

"i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_dataqq_mul_inst_m

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_dataqq_mul_inst_mu

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_wki_calc_mul_inst_

"i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_wki_calc_mul_inst

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_wki_calc_mul_inst_

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_i0_b_mul_inst_mu

"i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_i0_b_mul_inst_m

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_i0_b_mul_inst_mu

Reply to
kelvin8157

Do you need the 64-bit width of your RAMs at full speed? If you need wide but can handle a little latency, going 16 bits wide with the BlockRAMs into

64 bits of register would give you the width and depth you need in one BlockRAM *and* allow access to the accompanying MULT.

This might help - I only scanned it recently...

XAPP229 - Wider Block Memories

formatting link

from

multipliers.

can

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_wkq_calc_mul_inst_

"i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_wkq_calc_mul_inst

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_wkq_calc_mul_inst_

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_q0_b_mul_inst_mu

"i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_q0_b_mul_inst_m

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_q0_b_mul_inst_mu

i_ofdm_rx/i_wrx_top/i_multipath_top/i_multipath_wk_calc/Mmult__n0009_inst_mu

"i_ofdm_rx/i_wrx_top/i_multipath_top/i_multipath_wk_calc/Mmult__n0009_inst_m

i_ofdm_rx/i_wrx_top/i_multipath_top/i_multipath_wk_calc/Mmult__n0009_inst_mu

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_dataii_mul_inst_mu

"i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_dataii_mul_inst_m

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_dataii_mul_inst_mu

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_i0_a_mul_inst_mu

"i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_i0_a_mul_inst_m

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_i0_a_mul_inst_mu

i_ofdm_rx/i_wrx_top/i_multipath_top/i_multipath_wk_calc/Mmult__n0010_inst_mu

"i_ofdm_rx/i_wrx_top/i_multipath_top/i_multipath_wk_calc/Mmult__n0010_inst_m

i_ofdm_rx/i_wrx_top/i_multipath_top/i_multipath_wk_calc/Mmult__n0010_inst_mu

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_dataqq_mul_inst_mu

"i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_dataqq_mul_inst_m

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_dataqq_mul_inst_mu

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_wki_calc_mul_inst_

"i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_wki_calc_mul_inst

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_wk_calc/Mmult_wki_calc_mul_inst_

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_i0_b_mul_inst_mu

"i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_i0_b_mul_inst_m

i_ofdm_rx/i_wrx_top/i_channel_top/i_channel_calc/Mmult_data_i0_b_mul_inst_mu

Reply to
John_H

If you want to force the core generator to use x16 BRAMs just tell it that you want a ram that is 1K deep, as it will be forced to build it from 1K x 16 BRAMs. We have generally found that it is easier to instantiate primitives (i.e. BRAMs) in the VHDL with loops, than it is to use the core generator for things like memories. When you use core generator to make a memory, XST is really just treating it as a black box.

It might make more sense to use SelectRAMs rather than BRAMs for the rather shallow memories. This will use slices to build the memories, but may be a better trade off than using slices for the multipliers. You did mention 8x8 multipliers in your original posts, so this is probably not the case.

Regards, Erik Widding.

--
Birger Engineering, Inc. -------------------------------- 617.695.9233
100 Boylston St #1070; Boston, MA 02116 -------- http://www.birger.com
Reply to
Erik Widding

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.