Jump to content

    
Sign in to follow this  
evocatus

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

Recommended Posts

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

 

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

Edited by evocatus

Share this post


Link to post
Share on other sites

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

Share this post


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

 

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

Share this post


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

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

 

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

Edited by evocatus

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this