jojo 0 14 октября, 2015 Опубликовано 14 октября, 2015 · Жалоба Товарищи, это же статический мультиплексор в LUT. У него нет других целей. Что касается появления внезапных LUT-ов в путях - это вполне возможно. Этим грешит как синтезатор, который из экономии делает, например, много LUT3 где можно сделать мало LUT6, или "Улучшитель потребления" (Coolgate ) который, гад, тоже много себе позволяет - из чистокровного регистра, например BRAM enable делает lut-ы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vascom 0 14 октября, 2015 Опубликовано 14 октября, 2015 · Жалоба Да, про мультиплексор я дописал. И ещё добавил, оно в то же сообщение попало. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 28 14 октября, 2015 Опубликовано 14 октября, 2015 · Жалоба Приветствую! Опять в темной комнате ищем кошку Есть же логи в которых все должно быть понятно - почему не развелось, каких ресурсов не хватило. Так нет же - будем гадать на интерконектой гуще. ISE добавляет LUT/регистры для роутинга очень редко и в логе отдельной строкой идет Number used as Latch-thrus: 4 В общем для решения нужны логи! Успехов! Rob Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jojo 0 14 октября, 2015 Опубликовано 14 октября, 2015 · Жалоба Да, и про печальку с имплепентацией. Если 1. укоротить пути распространения сигнала до 1-2 LUT, 2. не пережимать констрейны размещения и частот, 3. управлять входами clock enable с выхода триггера, 4. закладывать избыточные регистры в путях с выхода BRAM, и т.п. то под крышку занятая ПЛИС собирается на автомате за ~час с частотами вплоть до максимально возможных по даташиту. Причём без констрейнов на размещение. Если в проекте есть хоть какая-то дыра, она вылезет из-за высокой плотности размещения или частоты. И перебор стратегий сборки в сложных случаях не поможет вплоть до 1. устранения причин, 2. смирения с происходящим. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 14 октября, 2015 Опубликовано 14 октября, 2015 · Жалоба сколько ячеек будут заняты под интерконнект.Я правильно понял, что всё же причина не в этом, и ячейки под интерконнект не расходуются (по крайней мере сверх того, что предложил синтез)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vascom 0 14 октября, 2015 Опубликовано 14 октября, 2015 (изменено) · Жалоба Синтез этого не предлагает. Он определяет только количество функциональных элементов. Затем плейсмент размещает все эти элементы в заданной модели FPGA. Затем роутинг ищет пути соединения этих элементов (возможно перемещает и сами элементы), удовлетворяющие констрейнам. До окончания роутинга все оценки таймингов и занятых ресурсов - приблизительные. Изменено 14 октября, 2015 пользователем Vascom Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 14 октября, 2015 Опубликовано 14 октября, 2015 · Жалоба Чип xilinx spartan6 XC6SLX9 Синтез в synplify h-2013.03 Имплементация ise14.4 А если самим ISE синтезировать, не пробовали? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TRILLER 0 14 октября, 2015 Опубликовано 14 октября, 2015 · Жалоба Я правильно понял, что всё же причина не в этом, и ячейки под интерконнект не расходуются (по крайней мере сверх того, что предложил синтез)? Вы правильно поняли. Просто так ЛУТы для интерконнекта использоваться не будут. Вот эта выходная SLICEL целиком Этот пример некорректен по многим причинам. Во первых: B6LUT уже используется под логику(B5 и B6). В силу этого вполне логично, что маппер решил использовать лишний вход ЛУТа под интерконнект. Во вторых: линия BX уже используется под логику, и соответственно, не может быть использована для прямого соединения триггеров. В третьих - что самое главное: Ваш триггер BQ является элементом шины, а значит маппер в первую очередь поставил элементы вашего вектора в одну ячейку, а потом уже начал крутить логику и интерконнект вокруг них. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 14 октября, 2015 Опубликовано 14 октября, 2015 · Жалоба Синтез этого не предлагает. Он определяет только количество функциональных элементов. Затем плейсмент размещает все эти элементы в заданной модели FPGA. Затем роутинг ищет пути соединения этих элементов (возможно перемещает и сами элементы), удовлетворяющие констрейнам. Это всё понятно. Но мой вопрос был в том, что изначально было предположение, что PAR расходует элементы (допустим LUT) на интерконнект там, где по результатам синтеза LUTа быть не должно, а должна быть прямая связь. Вывод из предыдущих Ваших скриншотов такой, что предположение было ошибочным? Там потом ещё ув. jojo написал, что были задействованы лишь статические мультиплексоры, которые не задействованными и не могли быть. Т.е. их задействование неверно относить к аргументу в пользу предположения. До окончания роутинга все оценки таймингов и занятых ресурсов - приблизительные.Да, это тоже всё понятно, не спорю. Особенно бывают всякие схемы оптимизации типа registers duplication и т.п. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gotcha 0 15 октября, 2015 Опубликовано 15 октября, 2015 · Жалоба А если самим ISE синтезировать, не пробовали? ISE не дружит с systemverilog, надо много чего переписывать. ... больше света в темную комнату Mapping to part: xc6slx9tqg144-2 Cell usage: DCM_SP 1 use FD 94 uses FDE 2720 uses FDR 245 uses FDRE 3189 uses FDSE 4 uses GND 33 uses MUXCY 12 uses MUXCY_L 233 uses MUXF7 290 uses MUXF8 144 uses VCC 33 uses XORCY 209 uses fifo_w4d16_spartan6 1 use LUT1 109 uses LUT2 202 uses LUT3 934 uses LUT4 991 uses LUT5 527 uses LUT6 1570 uses LUT6_2 5 uses I/O ports: 57 I/O primitives: 53 IBUF 12 uses IBUFG 1 use OBUF 40 uses BUFG 2 uses SRL primitives: SRLC32E 48 uses I/O Register bits: 0 Register bits not including I/Os: 6252 (50%) Global Clock Buffers: 2 of 16 (12%) Total load per clock: clk8x|CLKFX_BUF_derived_clock: 6301 clk8x|CLK0_BUF_derived_clock: 1 clock_p51: 1 Mapping Summary: Total LUTs: 3773 (61%) Distribution of All Consumed LUTs = SRL + LUT1 + LUT2 + LUT3 + LUT4 + LUT5 + LUT6 + LUT6_2- HLUTNM/2 Distribution of All Consumed Luts 3773 = 48 + 109 + 202 + 934 + 991 + 527 + 1570 + 5- 1226/2 Number of unique control sets: 130 Region Summary: Other LUTs: 4338 Other Registers: 6252 Mapper successful! Xilinx пишет Interim Summary --------------- Slice Logic Utilization: Number of Slice Registers: 6,282 out of 11,440 54% Number used as Flip Flops: 6,282 Number used as Latches: 0 Number used as Latch-thrus: 0 Number used as AND/OR logics: 0 Number of Slice LUTs: 3,779 out of 5,720 66% Number used as logic: 3,717 out of 5,720 64% Number using O6 output only: 2,880 Number using O5 output only: 70 Number using O5 and O6: 767 Number used as ROM: 0 Number used as Memory: 48 out of 1,440 3% Number used as Dual Port RAM: 0 Number used as Single Port RAM: 0 Number used as Shift Register: 48 Number using O6 output only: 48 Number using O5 output only: 0 Number using O5 and O6: 0 Number used exclusively as route-thrus: 14 Number with same-slice register load: 0 Number with same-slice carry load: 14 Number with other load: 0 Slice Logic Distribution: Number of MUXCYs used: 320 out of 2,860 11% Number of LUT Flip Flop pairs used: 8,885 Number with an unused Flip Flop: 2,732 out of 8,885 30% Number with an unused LUT: 5,106 out of 8,885 57% Number of fully used LUT-FF pairs: 1,047 out of 8,885 11% Number of unique control sets: 180 Number of slice register sites lost to control set restrictions: 742 out of 11,440 6% A LUT Flip Flop pair for this architecture represents one LUT paired with one Flip Flop within a slice. A control set is a unique combination of clock, reset, set, and enable signals for a registered element. The Slice Logic Distribution report is not meaningful if the design is over-mapped for a non-slice resource or if Placement fails. IO Utilization: Number of bonded IOBs: 53 out of 102 51% Specific Feature Utilization: Number of RAMB16BWERs: 0 out of 32 0% Number of RAMB8BWERs: 1 out of 64 1% Number of BUFIO2/BUFIO2_2CLKs: 1 out of 32 3% Number used as BUFIO2s: 1 Number used as BUFIO2_2CLKs: 0 Number of BUFIO2FB/BUFIO2FB_2CLKs: 1 out of 32 3% Number used as BUFIO2FBs: 1 Number used as BUFIO2FB_2CLKs: 0 Number of BUFG/BUFGMUXs: 2 out of 16 12% Number used as BUFGs: 2 Number used as BUFGMUX: 0 Number of DCM/DCM_CLKGENs: 1 out of 4 25% Number used as DCMs: 1 Number used as DCM_CLKGENs: 0 Number of ILOGIC2/ISERDES2s: 0 out of 200 0% Number of IODELAY2/IODRP2/IODRP2_MCBs: 0 out of 200 0% Number of OLOGIC2/OSERDES2s: 0 out of 200 0% Number of BSCANs: 0 out of 4 0% Number of BUFHs: 0 out of 128 0% Number of BUFPLLs: 0 out of 8 0% Number of BUFPLL_MCBs: 0 out of 4 0% Number of DSP48A1s: 0 out of 16 0% Number of ICAPs: 0 out of 1 0% Number of MCBs: 0 out of 2 0% Number of PCILOGICSEs: 0 out of 2 0% Number of PLL_ADVs: 0 out of 2 0% Number of PMVs: 0 out of 1 0% Number of STARTUPs: 0 out of 1 0% Number of SUSPEND_SYNCs: 0 out of 1 0% До окончания роутинга все оценки таймингов и занятых ресурсов - приблизительные. огорчает приближение +- полчипа Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 15 октября, 2015 Опубликовано 15 октября, 2015 · Жалоба Я вообще не обращаю внимание на сообщения синтезатора о тайминге в конце синтеза. Смотрю только после PAR. А по поводу утилизации: результат может быть достигнут довольно близкий (синтез к PAR), если в PAR выключить все оптимизации типа registers duplication и т.п. Но кому это надо? Лучше просто не смотреть на сообщения синтезатора ))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gotcha 0 15 октября, 2015 Опубликовано 15 октября, 2015 · Жалоба Я вообще не обращаю внимание на сообщения синтезатора о тайминге в конце синтеза. Смотрю только после PAR. А по поводу утилизации: результат может быть достигнут довольно близкий (синтез к PAR), если в PAR выключить все оптимизации типа registers duplication и т.п. Но кому это надо? Лучше просто не смотреть на сообщения синтезатора ))) Starting Clock Frequency Frequency Period Period Slack Type Group --------------------------------------------------------------------------------------------------------------------------------------------------- clk8x|CLKFX_BUF_derived_clock 100.0 MHz 155.8 MHz 10.000 6.417 3.583 derived (from clock_p51) default_clkgroup clock_p51 50.0 MHz NA 20.000 NA DCM/PLL declared default_clkgroup Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gotcha 0 15 октября, 2015 Опубликовано 15 октября, 2015 · Жалоба Сегодня Xilinx решил зависнуть на другом этапе (обычно зависал на Phase 9.8 Global Placement): Поддерживаю. Это значит, что не хватило интерконнектов. Посмотрите, можно ли убрать параллельные схемы. И заменить их на последовательные. Или вместо логики применить память, SRL и т.д.... В новой ветке проекта этим и занимаюсь. У S6 только половина слайсов пригодна для сложения, и половина от пригодных для сложения - пригодна и для распределённой памяти. Поэтому, если в дизайне много сумматоров и распределённой памяти, может и не влезть, несмотря на вроде бы большой общий запас. Можете дать ссылку про это почитать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 15 октября, 2015 Опубликовано 15 октября, 2015 · Жалоба http://www.xilinx.com/support/documentatio...uides/ug384.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться