Перейти к содержанию
    

ISE ucf + IOSTANDARD

Скажите, есть ли какая-нибудь возможность задать IOSTANDARD для всех pads одной командой?

 

Команда `NET "*" IOSTANDARD = LVCMOS33;` не совсем корректна - она пытается присвоить этот аттрибут ВСЕМ нетам в дизайне без исключения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скажите, есть ли какая-нибудь возможность задать IOSTANDARD для всех pads одной командой?

 

Команда `NET "*" IOSTANDARD = LVCMOS33;` не совсем корректна - она пытается присвоить этот аттрибут ВСЕМ нетам в дизайне без исключения.

Я задавался таким вопросом, но положительного ответа не нашел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Могу предложить сделать уникальный префикс для пинов нужного интерфейса и использовать маску с этим префиксом для того, чтобы задать им стандарт ввода/вывода.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Могу предложить сделать уникальный префикс для пинов нужного интерфейса и использовать маску с этим префиксом для того, чтобы задать им стандарт ввода/вывода.

 

Если не трудно, приведите пожалуйста пример.

 

И еще мне давно интересно, но никак не могу выяснить, можно ли для сигнала c большой разрядностью задавать LOC-констрейны одной строкой, как-нибудь в виде присвоения значения массиву?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если не трудно, приведите пожалуйста пример.

 

Обозначаете все пины стандарта LVCMOS33 как LVCM_xxxxx, где xxxxx - это значащая часть имени, а LVCM_ - префикс для использования маски, после этого в UCF пишете:

NET "LVCM_*" IOSTANDARD = LVCMOS33;

 

И еще мне давно интересно, но никак не могу выяснить, можно ли для сигнала c большой разрядностью задавать LOC-констрейны одной строкой, как-нибудь в виде присвоения значения массиву?

 

Если под сигналом большой разрядности Вы понимаете шину, выходящую на выводы ПЛИС, то боюсь, что через UCF одной строкой не получится. Есть вариант присваивать эти атрибуты в коде модуля на HDL, например, в цикле. Но это на любителя... ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При использовании verilog в ISE поддерживаются атрибуты, что позволяет использовать в HDL такие конструкции:

module top
    (
        (*IOSTANDARD="SSTL2_II"*)
        input  wire [  7 : 0 ] SAMPLE_IN,
        (*IOSTANDARD="SSTL2_II_DCI"*)
        output wire [  7 : 0 ] SAMPLE_OUT
    );

Иногда удобно вынести почти все содержимое ucf в модуль верхнего уровня:

module top
    (
        (*LOC="AT17 AT14 AT8 AN6 M36 U38"*) (*IOSTANDARD="SSTL2_II"*)
        input  wire [  7 : 0 ] SAMPLE_IN,
        (*LOC="M34 AK39 AJ38 AC38 AJ39 AG38 AH38 AF39"*) (*IOSTANDARD="SSTL2_II_DCI"*)
        output wire [  7 : 0 ] SAMPLE_OUT
    );

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сам не пробовал (мне хватает ISE XST), но этот метод предположительно применителен к любому синтезу, поддерживающему атрибуты Verilog. Атрибуты - часть стандарта Verilog, а не расширение Xilinx.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сам не пробовал (мне хватает ISE XST), но этот метод предположительно применителен к любому синтезу, поддерживающему атрибуты Verilog. Атрибуты - часть стандарта Verilog, а не расширение Xilinx.

 

Но это не стандартный формат.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если под сигналом большой разрядности Вы понимаете шину, выходящую на выводы ПЛИС, то боюсь, что через UCF одной строкой не получится. Есть вариант присваивать эти атрибуты в коде модуля на HDL, например, в цикле. Но это на любителя... ;)

 

Жаль, а то частенько получается так, что сохраняется последовательность в нумерации выводов ПЛИС для нескольких последовательных разрядов шины, и можно было б не прописывать каждый в отдельности.

 

Я вроде бы видела мельком книжку какую-то, в которой это описано, но никак ее найти не могу :cranky:

 

2 daemonDX: А VHDL аналогичную запись поддерживает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

К сожалению похоже нельзя применить констрент IOSTANDARD к группе PADS инче получалось бы все легко и просто :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ISE поддерживает возможность назначения группе сигналов одного стандарта, банка и т.д. Только для этого нада в ucf файл лезть не через текстовый редактор, а с помощью Xilinx Pace (User Constraints -> Assign Package Pins)/ Далее с помощью Shift и/или Ctrl выбрать требуемые сигналы и либо обьеденить их в группу и работать с группой, либо при выделенных сигналах нажать правую кнопку и выбрать Ceate Constraint. Закончив редактирование нажать Save и создастся обыкновенный текстовый ucf с требуемыми параметрами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...