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

Авто-генерация регистров, SystemRDL / PeakRDL

Приветствую!

Озадачили вот меня красивым оформление доков на регистры с прицелом на автоматизацию  всех процессов  работы  с ними.  Естественно чтобы значит были opensource  и функционал можно расширять. 
С ходу  нарыл 2.5  варианта   - один из которых собственно PeakRDL.  Сделано  на Python,  позволяет  компилировать описание регистров на SystemRDL и генерировать сорцы для верификации и доки в разных  форматах.
Увы выход доков есть пока есть лишь в .html и .pdf, а  хотелось бы еще и в привычный .doc.  

Кто набудь имел опыт с этим (или похожим софтом)?   Интересно  что еще есть похожего? 

 

Удачи! Rob.

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


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

40 minutes ago, RobFPGA said:

Интересно, что еще есть похожего? 

В Vivado есть что-то отдаленно похожее..

Хотя, скорее, совсем не похожее.. :)

 

1. Нажимаем: Ctrl+Shift+F

2. Набираем: reg

3. В окне результатов поиска раскрываем все списки

4. Нажимаем: Ctrl+A -> Ctrl+C

5. Копируем содержимое буфера обмена в файл .txt

 

Это, конечно, никакая не "автоматизация всех процессов", но возможно пригодится. :)

FindInFiles.jpg

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


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

Приветствую!

3 hours ago, blackfin said:

В Vivado есть что-то отдаленно похожее..

Спасибо, но это действительно совсем не то :yes3:

Тут основная идея в том что  спецификация регистров иерархически описывается своим языком  (ну либо импортом из различных форматов)  типа

Spoiler

//  Statistic counters 
//-----------------------------------------------------------------------------
reg STAT_CNT_r #(string DSC="") {
    accesswidth = 32;
    regwidth    = 32;
    field {
        desc  = DSC;
        sw    = r;
    } cnt[31:0] = 0;
};

// RX control register 
//-----------------------------------------------------------------------------
reg RX_CTRL_r {
    name = "PHY RX control";
    desc = "Control bits for PHY RX channel";

    field {
        desc = "1: Force re-sync RX PHY";
        sw=rw;
    } force_resync[8:8] = 0;
   ...
};
...

// RX control register set 
//-----------------------------------------------------------------------------
regfile RX_CTRL_f {
    desc = "All control and status registers for RX";

    RX_CTRL_r rx_ctrl  ;
    RX_STAT_r rx_status;

    STAT_CNT_r #(.DSC("Count number of rx_total_good_bytes")) rx_total_good_bytes      @4*64;
   ...
};
...
  
// Registers map   
//-----------------------------------------------------------------------------
addrmap PHY_ETH {
    name = "PHY 10G ETH control";
    desc = "Register definitions for 10G Ethernet PHY/PMA/PCS/MAC module
    ";

    default accesswidth=32;
    default regwidth   =32;
    default sw = r;
    default hw = r;

    RXTX_CTRL_t #(.DSC("PHY0 control")) PHY0 @ 0x0000;
    RXTX_CTRL_t #(.DSC("PHY1 control")) PHY1 @ 0x1000;
};

 

А затем по такому описанию генерируется красивые таблички в доки, .h, .vh, .svh файлы и  даже исходники RTL и тестов для автоматической верификации этого RTL.  При определенной организации и сноровке получается уменьшения объема писанины и легче  вносить изменения.    

 

Удачи! Rob.

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


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

Пользовался Doxygen, но это только документация.

Пишите код с определёнными комментариями, затем натравливаете Doxygen и получаете неплохую документацию в различных форматах.

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


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

On 3/31/2021 at 5:17 PM, RobFPGA said:

выход доков есть пока есть лишь в .html и .pdf, а  хотелось бы еще и в привычный .doc

Онлайновые конвертеры pdf -> docx прекрасно работают. Даже сложные документы конвертируют как надо.

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


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

Приветствую!

30 minutes ago, druzhin said:

Онлайновые конвертеры pdf -> docx прекрасно работают. Даже сложные документы конвертируют как надо.

Это  понятно но по разным соображениям не всегда фирма захочет "светит" доками наружу.  Да и текущий пример конвертора SystemRDL -> pdf  пока еще очень сырой.
Поэтому не хочется делать двойную взгонку по  форматированию pdf, а затем еще и правки доков,   это же не виски все таки :biggrin:  

 

Поэтому пока идет изучение существующих возможностей, различных инструментов и вялотекущие эксперименты с питоном.   

 

Удачи! Rob

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


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

* прошло 3 года, но..

..лучше поздно:

 

я бы посмотрел в сторону получения на выходе PeakRDL маркдауна (хотя может и хтмл сгодился бы), а дальнейшее преобразование в docx делать в pandoc (там же можно подсунуть и референсный док, с которого пандок "спишет" стили для создаваемого документа)

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


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

Раз уж тема всплыла, я в таких ситуациях очень часто просто делаю комментарии специальные, как был совет выше, и травлю код в питон-скрипт, он меня и разрядности извлечет, и все строки со спец комментом и так далее. Не стесняюсь чуть подзамарать код спец-комментариями ради скриптования :)

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


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

On 2/15/2024 at 3:23 AM, 1891ВМ12Я said:

очень часто просто делаю комментарии специальные, как был совет выше, и травлю код в питон-скрипт, он меня и разрядности извлечет, и все строки со спец комментом и так далее

так это уже всё размечено в SystemRDL, а с помощью PeakRDL прожёвано и готово к рендерингу в любой (знакомый разработчику) стандарт.

да и вообще - даже если какого-то верилога вне семантики SystemRDL надо нагенерить, то лучше использовать структурированные форматы хранения данных: json, yaml (мне лично по душе yaml).

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


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

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

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

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

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

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

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

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

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

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