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

Quartus. Netlist с открытым исходником внутри.

Необходимо создать нетлист, где один из исходников будет открыт.

Разработка в Quartus 18 Standart, не Pro.


Дерево проекта, например такое:
-top_module
--submodule l1
---submodule l2
----submodule l3
-----submodule l4
---submodule l2
---submodule l2
--submodule l1
---submodule l2

Задача упаковать все в нетлист, кроме модуля “l4”. Пользователь, которому будет передан нетлист «top», должен иметь возможность менять исходник модуля «l4» и видеть эти изменения в своем проекте, где нетлист «top» это один из сабмодулей. Задал вопрос на форуме intel, но ответа пока нет, возможно кто-то сталкивался с подобной задачей. 


Пробовал два подхода. 
1.    Создал Partition для модуля “l4” и пометил ее как Empty. Далее экспортировал root partition для всего top (включая пустую “l4”). Пытаюсь импортировать в другой проект подключив для l4 нужный исходник (или qxp) и получаю ошибку "Error (35013): Found unexpected partition in previously generated netlist with no corresponding partition definition in the current project".
2.     Вместо модуля “l4” вставил blackbox, но partition не создавал. Экспортировал root partition. Далее успешно без ошибок импортировал в новый проект. Но модуль l4 не реагирует на подсунутый исходник, утилизация по нулям фактически его нет. 


Netlist type для импортированных partition – Post-Synthesis.
Для сабмодуля l1 подход с Empty Partition работал как надо. Весь нетлист закрыт, но l1 на изменения исходника реагирует, я неделю ходил довольный, а потом попробовал провернуть тоже для более глубокой вложенности, но не вышло.


Буду благодарен за идеи, что еще можно попробовать. 

Влад.
 

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


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

Я давненько не работал с Партишинами, но помнится мне, что самый простой вариант в Вашем случае - вынести submodule l4 на уровень l1. Прокинуть порты - не большая проблема. А ещё лучше перенести l4 на уровень l0 и остальное сделать блек боксом, а дальше дело техники

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


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

17 hours ago, Nick_K said:

самый простой вариант в Вашем случае - вынести submodule l4 на уровень l1. 

Это план Z. Очень не хочется ворошить код, получится отдельная ветка и потенциальные грабли, на которые рано или поздно наступишь...

В Xilinx есть возможность слить два нетлиста - "link_design". В Quartus даже отдельный пункт сборки Merge Netlist, казалось бы как раз для этого слить два qxp в один, но пока не выходит. 

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


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

[совет общий, без проверки квартусом]

объявить модуль как black box - синтезировать нетлист. этот нетлист использовать дальше с разными модулями.

ну то есть по сути важно, чтобы квартус не оптимизировал остальную часть нетлиста из-за каких-то знаний структуры этого модуля

---------------

я вот недавно возился с ise и synplify - в ise так прошло, а в синплифае какая-та беда - после второго прохода синтеза проект нерабочий - почему, так и не смог найти. причем это только для одного проекта, для остальных и с симплифаем сработало

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


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

On 3/2/2020 at 3:29 PM, Kapsik said:

Необходимо создать нетлист, где один из исходников будет открыт.

а самоцель передавать нетлист чем именно продиктована?

если сокрытием исходников, то может рассмотреть возможность криптования исходников, а submodule l4 передавать в первозданном виде?!

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


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

1 hour ago, Doka said:

а самоцель передавать нетлист чем именно продиктована?

если сокрытием исходников

Да, сокрытием исходников.

1 hour ago, Doka said:

может рассмотреть возможность криптования исходников

Возможно я что-то упускаю, но про криптование исходников для Altera/Intel мне не известно. На сайте у них вот так: https://www.intel.com/content/www/us/en/programmable/support/support-resources/knowledge-base/solutions/rd10172006_472.html . Пишут хотите исходники, делайте нетлист. 

 

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


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

1 час назад, Kapsik сказал:

Возможно я что-то упускаю, но про криптование исходников для Altera/Intel мне не известно.

Взгляните, например, на исходники альтеровских IP-ядер - большинство из них зашифрованы (и для работы с ними требуется лицензионный файл).

То же самое можно сделать и для своих исходников - передавать их заказчику в зашифрованном виде, вместе с со своим собственным лицензионным файлом.

Подробности - в личке.

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


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

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

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

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

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

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

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

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

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

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