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

Программа для автоматизации редактирования Verilog

Если вдруг в дизайн на 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

 

Надеюсь это кому-то пригодится.

Изменено пользователем evocatus

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


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

А намного ли это быстрее, чем ручками с применением автоматизации блочного выделения в Notepad++? Пользуюсь последним, копировать цепи согласно указанным Вами проблемам вообще не напрягало...

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


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

Если вдруг в дизайн на Verilog попадает большое IP-ядро (например, MIG или 10GEMAC от Xilinx), то прописывать ручками одни и те же сигналы много раз (в объявлении инстанса ядра, в объявлении подключённых к нему сигналов в модуле верхнего уровня, в объявлении этих сигналов, выходящих из модуля наружу, для тестбенча этого модуля..) очень быстро надоедает,

 

использую тогда программу sublime_text + плагины

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


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

А намного ли это быстрее, чем ручками с применением автоматизации блочного выделения в Notepad++? Пользуюсь последним, копировать цепи согласно указанным Вами проблемам вообще не напрягало...

Это ещё быстрее.

 

Лицензия на Sublime Text стоит 70$. Я знаю, что это просто отличный редактор, но отдавать такие деньги не готов :)

Изменено пользователем evocatus

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


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

Своровать )

зачем? он и бесплатно работает, просто рекламу шлет, плата $70 за ее отключение фактически

 

 

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


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

а, ну тогда в любом брандмауэре отрубить ему вообще под ноль доступ к инету. Или есть проги (для андроида это называется adaway), которые все рекламные адреса добавляют в файл hosts, после чего эти адреса не грузятся ))

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


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

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

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

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

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

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

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

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

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

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