2016-05-12 6 views
0

Поставщик использует инструмент, который компилирует некоторый код в необработанный VHDL. Они не хотят, чтобы я видел исходный код и вместо этого хотел зашифровать выходные файлы. В настоящий момент они шифруют его в NetIFist EDIF с помощью Vivado.Как шифровать файлы для Modelsim с Vivado

Это прекрасно при реализации дизайна; Я воспринимаю это как черный ящик, использую оболочку для ввода-вывода и записываю бит-поток. Они обеспечивают мне работу с черным ящиком. Я действительно вижу, что мое использование ресурсов подходит к тому, что я ожидаю, но я хотел бы имитировать и проверять их результаты.

При попытке имитировать его с помощью modelsim, он, разумеется, понятия не имеет, как расшифровать эти файлы. Если вы пишете нетлисты в VHDL, вы просто получите ошибку:

# ** Error: Formatter.vhd(58329): near "AES128-CBC": Unknown session key in protected region 

Я попросил их включить ключ шифрования для ModelSim при шифровании этих файлов, но они не знали, как.

Я понимаю их грубый рабочий процесс с их .tcl является:

synth_design -top Formatter 
write_edif -force ./Formatteredf 

Так что мой вопрос, как они включают в себя ключ шифрования ModelSim, когда они генерируют файлы EDIF с Vivado?

ответ

0

Modelsim не может имитировать EDIF. Вам нужно преобразовать EDIF в формат, который можно моделировать. Вы упоминаете Vivado, поэтому для их преобразования вы должны использовать write_verilog или write_vhdl.

У меня нет доступа к зашифрованным сторонним netlists, но я использовал некоторый зашифрованный IP-адрес Xilinx (в частности, ila_v6). После синтеза, я открыл синтезированные результаты и сделал следующее:

write_vhdl -mode funcsim -cell test_ila/U0 ila_funcsim.vhd 

Теперь test_ila это экземпляр я создал на самом высоком уровне, и U0 является зашифрованным экземпляром внутри. Сгенерированный VHDL был просто списком примитивов UNISIM. И он с радостью скомпилирован под Modelsim. В списке соединений не было зашифрованного IP-адреса.

Итак, я полагаю, у вас есть что-то вроде этого:

component encrypted_ip is 
... 
end component encrypted_ip; 

Затем добавить зашифрованное EDIF, который трактуется как Blackbox, но в конце концов втягивается в синтез/реализации. Итак, откройте либо синтезированный, либо реализованный проект, и используйте write_vhdl, чтобы выгрузить компонент в список соединений.

+0

Не является ли netgen ISE? – fiz

+0

@fix Doh! Я отстоял. Я обновил свой ответ. – PlayDough

+0

Да, но это все еще не отвечает на вопрос. write_vhdl по-прежнему содержит шифрование для vivado, а не modelsim. Как вы включаете ключ шифрования для modelsim? – fiz

0

Если EDIF зашифрован, write_vhdl почти наверняка произведет другой зашифрованный список соединений. Этот список соединений VHDL может имитироваться в Modelsim, но я бы не догадался.

В Modelsim имеется инструмент «vhencrypt.exe», который зашифрует исходный код с использованием IEEE 1735. Результирующий файл можно моделировать Modelsim, но вы должны начать с источника, а не EDIF. Теперь у вас возникнет проблема использования EDIF в Vivado и выхода vhencrypt в Modelsim, но это шаг в правильном направлении.

IEEE 1735 может производить один вывод, который может быть использован как Vivado, так и Modelsim, но вам нужно будет предоставить открытый ключ от Xilinx. Насколько я знаю, Xilinx не публикует публичный ключ для 1735 года, но они, вероятно, поделится им с IP-партнером.

Смежные вопросы