Jump to content

    

evocatus

Участник
  • Content Count

    15
  • Joined

  • Last visited

Community Reputation

0 Обычный

About evocatus

  • Rank
    Участник
  1. Это ещё быстрее. Лицензия на Sublime Text стоит 70$. Я знаю, что это просто отличный редактор, но отдавать такие деньги не готов :)
  2. Если вдруг в дизайн на Verilog попадает большое IP-ядро (например, MIG или 10GEMAC от Xilinx), то прописывать ручками одни и те же сигналы много раз (в объявлении инстанса ядра, в объявлении подключённых к нему сигналов в модуле верхнего уровня, в объявлении этих сигналов, выходящих из модуля наружу, для тестбенча этого модуля..) очень быстро надоедает, Поэтому я сделал маленькую программу, которая автоматизирует эти задачи. Программе для работы нужен установленный интерпретатор Python 2 или 3. Лицензия MIT. Работает под всеми операционными системами, где есть интерпретатор Python, т.е. Linux, Windows, OS X Что она умеет? Генерировать из шаблона инстанса IP-ядра (из .veo файла) или модуля код для объявления подключённых к нему сигналов Обратная задача - генерировать код для инстанциирования модуля по списку его сигналов Сопутствующие задачи - массовая смена направления, ширины и типа сигналов. Краткое описание кнопок: Clear очищает текстовое поле Copy копирует его содержимое в буфер обмена inst. -> ports превращает код для создания экземпляра модуля в код объявления сигналов для него ports -> inst. - наоборот Следующие функции работает как с одной строкой текстового поля (на которой сейчас мигает курсор), так и с выделенными несколькими строками (если выделены) revert меняет input на output и наоборот. Никак не затрагивает inout make local убирает из объявления сигнала направление wire меняет тип на wire, reg, соответственно, на reg bus делает сигнал шиной или меняет ширину шины. Для этого сначала надо ввести желаемую ширину в битах в маленьком окошке справа от кнопки simgle делает шину одиночным сигналом Собственно, ссылка: https://github.com/reflechant/veri_ports прямая ссылка: https://github.com/reflechant/veri_ports/ra...r/veri_ports.py просьба оставлять сообщения о багах здесь: https://github.com/reflechant/veri_ports/issues Надеюсь это кому-то пригодится.
  3. ISE 14.1 при попытке сделать "Verify UCF and Update Design and UCF" выводит такое: http://bpaste.net/show/200196/ Как вообще себя вести в таких ситуациях? Есть плата, в её документации описана разводка и приведён UCF-файл, а ISE не хочет его принимать.
  4. Оригинальный UCF (я так понял это тот, что сгенерировал MIG) я выкладывал выше. Дублирую ссылку. Корпус FG320
  5. Мой самописный UCF (на базе того, что из документации по плате) Spartan-3E XC3S500E-4C
  6. Во втором случае, как я понимаю, надо выбрать соотв. банк? Он и сейчас (когда я его вообще не ограничивал) 3 пина из control/address раскидать не может, я их вручную в один из банков вставлял.
  7. UCF я уже написал (он был в документации по плате, это Spartan-3E Starter Kit). Мне теперь просто скормить его MIG'у?
  8. А если мне надо поменять назначение пинов? Мне кажется, что менять этот шаблон напрямую - не самая лучшая идея. Вроде у MIG есть функция типа "add and verify ucf" (за точность названия не ручаюсь). Это то, что мне надо?
  9. Решил проблему поставив ISE 14.1 - он корректно генерит ядра для всех вариантов. Непонятно вот что: как правильно назначить пины для ядра? При создании ядра генерируется ucf файл (в папке ipcore_dir/ipcorename/user_design/par) с таким содержимым. Он реально используется, или это только шаблон, который мне надо вставлять в свой ucf?
  10. ISE: 14.3: MIG: 3.6.1 Надо работать с памятью на плате Spartan-3E Starter Kit. Та память, что там есть (MT46V32M16TG-6TF) в списке ise не значится, поэтому пришлось создать для неё запись вручную на базе MT46V32M16XX-5B, взяв значения из микроновских доков. Вобще интерфейс 16-битный (ширина шины данных). Но для 16-битного интерфейса ядро даже не создаётся, выводя такую ошибку: ERROR:sim - Failed to generate 'ddr'. Wrote CGP file for project 'ddr'. Core Generator edit command failed. Пробовал создать ядро для 8-битного интерфейса. Создаётся. Но теперь надо его переконфигурировать под реальную распиновку платы. Создал UCFфайл, но при попытке скормить его MIG'у выводит ошибку: Reading design libraries of xc3s500e-fg320... successful ! /*******************************************************/ /* Controller 0 /*******************************************************/ ERROR: All the dqs signal(s)/pin(s) are missing. Помогите, пожалуйста.
  11. Вы имеете в виду XGMII и т.д.? Впервые с этим всем сталкиваюсь, ещё не разобрался. Мне сказали, что если подключать сразу PHY, то придётся самому делать линейное кодирование. Но в доках по GTX трансиверам написано, что они сами умеют 8/10. Есть ещё вариант через XGMII и я не знаю что выбрать. По микроконтроллерам есть сборники типовых решений. Есть ли такое для FPGA? :05: :laughing:
  12. ZASADA, а как вы определяете подо что лучше проект ложится? akorud, можно поподробнее про запитку Kintex-7? Сколько ей напряжений надо? Я правильно понимаю, что она греется меньше, потому что 7-е поколение и другой техпроцесс? Чтобы определиться окончательно мне нужно понять сколько всё-таки нужно пинов FPGA для подключения 10G Ethernet и одной планочки DDR3
  13. goodsoul, спасибо. Смотрел альтеровскую PDF с сравнением SoC ихних и Xilinx. Не знаю сколько там маркетинга, но выглядит, как будто Altera действительно лучше. Похоже, в SoC действительно нет надобности. Планирую Virtex-6 (из-за 10гигабитных GTX трансиверов). P.S. Как убедить начальство, что альтера лучше? Раньше её использовали, но потом по малоизвестным мне причинам стали юзать Xilinx. Есть какие-то непредвзятые сравнения ПЛИС?
  14. Так их и надо обрабатывать, о чём я написал. Кастомный интерфейс, ~7 Gbit/s. ПЛИС ставить придётся по-любому, потому что от микросхем-приёмников их надо принять, декодировать и отдать компьютеру. Maverick, спасибо за совет. У контроллера памяти Zynq-7000 адресное пространство всего 1ГБ, а буфер будет больше. В итоге похоже отпадает смысл в использовании именно его. Я подумал о нём чтобы перенести на ARM всё что можно, а уж остальное на ПЛИС. Возможно это только добавит хлопот с отладкой.
  15. Я с FPGA совсем недавно начал работать, а тут грядёт большой проект, поэтому прошу вашего совета, чтобы не налажать ещё на уровне выбора ПЛИС. Устройство должно принимать около 7 Гбит кастомного интерфейса, отрезать служебные сигналы, буферизовать в DDR2/3 и оттуда слать по 10Gb Ethernet. Подойдёт ли для такой задачи Zynq-7000? Или лучше взять какой-нибудь Virtex?