MAZZI 1 14 сентября, 2006 Опубликовано 14 сентября, 2006 · Жалоба По умолчанию при программировании Spartan2 ISE ставит все IOB в LVTTL, в Spartan3 ISE по умолчанию ставит в LVCMOS25. Как сделать по умолчанию в SPARTAN3 все выходные сигналы LVTTL? И не мучаться с назначением в UCF каждого пина в установку LVTTL, как-то этот вопрос ребята из Xilinx не продумали... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
avesat 0 14 сентября, 2006 Опубликовано 14 сентября, 2006 · Жалоба По умолчанию при программировании Spartan2 ISE ставит все IOB в LVTTL, в Spartan3 ISE по умолчанию ставит в LVCMOS25. Как сделать по умолчанию в SPARTAN3 все выходные сигналы LVTTL? И не мучаться с назначением в UCF каждого пина в установку LVTTL, как-то этот вопрос ребята из Xilinx не продумали... .ucf наиболее простой способ изменения IOSTANDARD #################################################### Net fpga_0_DDR_SDRAM_16Mx16_DDR_Clk_pin LOC=J5; Net fpga_0_DDR_SDRAM_16Mx16_DDR_Clk_pin IOSTANDARD = SSTL2_I; .... Net fpga_0_Ethernet_MAC_PHY_tx_clk_pin LOC=T7; Net fpga_0_Ethernet_MAC_PHY_tx_clk_pin IOSTANDARD = LVCMOS33; #################################################### для map никаких ключиков связаных с уровнями IO нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 14 сентября, 2006 Опубликовано 14 сентября, 2006 · Жалоба По умолчанию при программировании Spartan2 ISE ставит все IOB в LVTTL, в Spartan3 ISE по умолчанию ставит в LVCMOS25. Как сделать по умолчанию в SPARTAN3 все выходные сигналы LVTTL? И не мучаться с назначением в UCF каждого пина в установку LVTTL, как-то этот вопрос ребята из Xilinx не продумали... хмм ну ucf то вам все равно делать, вот и вколотите на все пины нужный стандарт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Doka 4 14 сентября, 2006 Опубликовано 14 сентября, 2006 · Жалоба MAZZI, чтобы ... не мучаться с назначением в UCF каждого пина в установку LVTTL Вы можете помучаться в верилоге/ВХДЛе с назначением каждого пина в установку LVTTL. Однако вариант с UCF предпочтителен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MAZZI 1 14 сентября, 2006 Опубликовано 14 сентября, 2006 · Жалоба Есть несколько неприятностей, у меня построенна система на MACRO_m4 автоматической связи регистров с программированием и с автоматическим генерированием UCF, Verilog_TOP, т.д. Также у устройства есть стандартные шины, в данном случае некоторые сигналы могут не использоваться и они не описываются в UCF, но в Verilog_TOP они присутствуют и не исключаются (в итоге просто разводятся на любые свободные не используемые пины). Т.к. из документации по Spartan3: Если используются стандарты, требующие опорного напряжения VREF, то при установке ПЛИС семейства на плату следует руководствоваться следующими правилами подключения контактов VREF: ... 2. На все контакты VREF одного банка должно быть подано одинаковое напряжение питания. 3. В пределах одного банка блоки ввода-вывода могут быть запрограммированы на совместимость только со стандартами, которые используют одинаковое значение VREF. ... У меня получалось, что все "используемые" сигналы в LVTTL, "не используемые" LVCMOS25, вот и не давало нормально развести проект. Исправил в Xilinx PACE (Create Area Constraints) "не используемые" в LVTTL. И все прошло как надо. Для себя вижу, что необходимо дорабатывать систему генерации проекта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
daemonDX 0 15 сентября, 2006 Опубликовано 15 сентября, 2006 · Жалоба Скорректируйте систему генерации верхнего уровня (либо создайте дополнительно скрипт/программу на Python/Perl/Tcl/etc...), чтобы перед каждым сигналом указывался тип io-стандарта, в вашем случае (*IOSTANDARD="LVTTL"*) . То есть: module top ( (*IOSTANDARD="LVTTL"*) input wire TOP_LEVEL_INPUT_SINGLE, (*IOSTANDARD="LVTTL"*) input wire [ 7 : 0 ] TOP_LEVEL_INPUT_BUS, (*IOSTANDARD="LVTTL"*) output wire TOP_LEVEL_OUTPUT_SINGLE, (*IOSTANDARD="LVTTL"*) output wire [ 7 : 0 ] TOP_LEVEL_OUTPUT_BUS ) ... endmodule Удобно полностью исключить ucf из проекта, указывая полные спецификации сигналов: module top ( (*LOC="AR6"*) (*IOSTANDARD="LVTTL"*) input wire TOP_LEVEL_INPUT_SINGLE, (*LOC="AK38"*) (*IOSTANDARD="LVTTL"*) input wire [ 7 : 0 ] TOP_LEVEL_INPUT_BUS, (*LOC="AL38"*) (*IOSTANDARD="LVTTL"*) output wire TOP_LEVEL_OUTPUT_SINGLE, (*LOC="J31 E34 L34 K37 H31 D35 K33 K34"*) (*IOSTANDARD="LVTTL"*) (*IOBDELAY="NONE"*) output wire [ 7 : 0 ] TOP_LEVEL_OUTPUT_BUS ) ... endmodule Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 15 сентября, 2006 Опубликовано 15 сентября, 2006 (изменено) · Жалоба По умолчанию при программировании Spartan2 ISE ставит все IOB в LVTTL, в Spartan3 ISE по умолчанию ставит в LVCMOS25. Как сделать по умолчанию в SPARTAN3 все выходные сигналы LVTTL? И не мучаться с назначением в UCF каждого пина в установку LVTTL, как-то этот вопрос ребята из Xilinx не продумали... Я пошел несколько другим путем... Сделал софтовый инструмент, который дописывает в верхний проект буфера, входы-выходы и провода - это особенно удобно для диф пар, и в нем же я делаю назначения типов выводов. Это такая табличка, в которой колонки можно заполнять по маске. Т.е если указать маску "output", колонку "IO_standart", и текст "LVTTL", то вот таким способом все выходы будут назначены по одному клику. Это для того, чтобы быстро работать с шинами. Указал маску на название шины - и вся шина точно переписывается. Туда же из списка связей импортируются LOC'и. Далее автоматически генерятся верхние Верилоги и UCF. См. статью "Между ISE и ViewDraw". Изменено 15 сентября, 2006 пользователем iosifk Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MAZZI 1 15 сентября, 2006 Опубликовано 15 сентября, 2006 · Жалоба Скорректируйте систему генерации верхнего уровня (либо создайте дополнительно скрипт/программу на Python/Perl/Tcl/etc...), чтобы перед каждым сигналом указывался тип io-стандарта, в вашем случае (*IOSTANDARD="LVTTL"*) . То есть: module top ( (*IOSTANDARD="LVTTL"*) input wire TOP_LEVEL_INPUT_SINGLE, (*IOSTANDARD="LVTTL"*) input wire [ 7 : 0 ] TOP_LEVEL_INPUT_BUS, (*IOSTANDARD="LVTTL"*) output wire TOP_LEVEL_OUTPUT_SINGLE, (*IOSTANDARD="LVTTL"*) output wire [ 7 : 0 ] TOP_LEVEL_OUTPUT_BUS ) ... endmodule Удобно полностью исключить ucf из проекта, указывая полные спецификации сигналов: module top ( (*LOC="AR6"*) (*IOSTANDARD="LVTTL"*) input wire TOP_LEVEL_INPUT_SINGLE, (*LOC="AK38"*) (*IOSTANDARD="LVTTL"*) input wire [ 7 : 0 ] TOP_LEVEL_INPUT_BUS, (*LOC="AL38"*) (*IOSTANDARD="LVTTL"*) output wire TOP_LEVEL_OUTPUT_SINGLE, (*LOC="J31 E34 L34 K37 H31 D35 K33 K34"*) (*IOSTANDARD="LVTTL"*) (*IOBDELAY="NONE"*) output wire [ 7 : 0 ] TOP_LEVEL_OUTPUT_BUS ) ... endmodule Сейчас уже Synplify поддерживает аттрибуты Verilog (*LOC="AR6"*) (*IOSTANDARD="LVTTL"*)? А то я ещё пользуюсь 8.4 и здесь он вроде не поддерживает (хотя я не проверял) :). 4iosifk: Дай ссылку на "См. статью "Между ISE и ViewDraw"" :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 15 сентября, 2006 Опубликовано 15 сентября, 2006 · Жалоба 4iosifk: Дай ссылку на "См. статью "Между ISE и ViewDraw"" :) Ну так все там же, где и раньше. Вот вчера 5700-й был... "Милости просим", как говорится - www.iosifk.narod.ru - статьи ... Если что найдете полезного, прекрасно.. А будут вопросы - пишите... Буду со вторника по четверг в Москве на ЧипЭкспо, так что почту буду читать только в след. понед и в пятницу.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 17 15 сентября, 2006 Опубликовано 15 сентября, 2006 · Жалоба Удобнополностью исключить ucf из проекта, указывая полные спецификациисигналов: Я считаю такой подход в корне неверным. Не надо загромождать rtl-кодтакими подробностями реализации, которые на синтез не влияют. Каждомусвое. Код --- в .vhd или в .v, констрейны --- в соответствующих файлах:для синтезатора --- в своих, для разводчика --- в своих. Зачем пересинтезировать проект, если вам, скажем, потребовалось сигнал перекинуть на другой пин? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
daemonDX 0 15 сентября, 2006 Опубликовано 15 сентября, 2006 · Жалоба to andrew_b: а у меня на верхнем уровне код состоит только из подключений модулей, т.е. является шаблоном для работы с отдельно взятой серией плат, там загромождать особо нечего :). Сам проектированием PCB не занят, работаю с готовыми, причем стандартно на платах стоит 2 кристалла, один для общения с компом, а другой - "рабочий". Смена пина в "рабочем" обычно требует не только перекомпиляции проекта, но и серьезного общения с теми, из-за кого эта смена произошла, так как обычно только сменой пина это не обходится :). Ну и плюс дискуссия ведется по поводу наиболее простого и удобного способа "Как сделать по умолчанию в SPARTAN3 все выходные сигналы LVTTL", а не по поводу "как я считаю нужным проектировать" :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 17 15 сентября, 2006 Опубликовано 15 сентября, 2006 · Жалоба Как сделатьпо умолчанию в SPARTAN3 все выходные сигналы LVTTL? И не мучаться сназначением в UCF каждого пина в установку LVTTL А wildcard воспользоваться? Написать в .ucf NET "*" IOSTANDARD = LVTTL; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MAZZI 1 15 сентября, 2006 Опубликовано 15 сентября, 2006 · Жалоба Как сделатьпо умолчанию в SPARTAN3 все выходные сигналы LVTTL? И не мучаться сназначением в UCF каждого пина в установку LVTTL А wildcard воспользоваться? Написать в .ucf NET "*" IOSTANDARD = LVTTL; Круто! Я и забыл что в UCF таким образом можно определять параметры. Это так же означает, что можно сразу же и группы по имени определять. Хорошо, что ты это написал! :) По поводу где определять ограничения в VRL_TOP или в UCF, я считаю, что тут необходимо смотреть на само ограничение, к примеру, назначение пинов я генерю только в UCF, т.к. одно и тоже устройство, я использую как на Spartan2 так и на Spartan3 (так сложилось исторически). Минус ещё задания ограничений в VRL - у каждого синтезатора поддержка атрибутов может отличаться (к примеру, Synplify и ISE XST), поэтому я решил, что атрибуты по возможности переношу в UCF. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться