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

скрыть "Background IP" при передаче к 3rd party

Доброго дня!

Какие существуют технологии в предметной области (ASIC, Digital & Analog IC Design) для скрытия исходного кода или схемных узлов при передаче проекта заказчику?

Посыл такой: Заказчик оплачивает Компании разработку, в работе над которой Компания использует свои наработки (назовём это Background IP).
Права на результат и коды-схемы, полученные в результате разработки формально должны быть переданы Заказчику, но BIP нужно скрыть, оставив проект компилируемым/собираемым.
Это как в варианте с программой на Си - когда передаются не все исходники, а часть; другая же часть - в объектных кодах. Компилировать и изменять вновь созданное можно, добраться до BIP нельзя.

В Altera Quartus есть определённые средства для таких задач (передача только нетлиста, qxp...). А как в случае с разработкой ИС?

спасибо!!!

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


Ссылка на сообщение
Поделиться на другие сайты
Речь ведь о цифре, верно? Сделайте свои блоки, и передайте их в виде GDS с флатованой до транзисторов иерархией. А цифровой нетлист сконвертируйте в CDL и тоже расфлатуйте: LVS будет проходить. Если заказчику хочется симуляцию на верилоге пускать без задержек, можно обфусцировать и зашифровать нетлист - логика моделироваться будет, а внутрь заглянуть нельзя.

Ну и надо понимать, что на 100% защиты не бывает. По GDS можно восстановить CDL, по CDL - логический нетлист. А GDS при желании можно получить послойным стравливанием металлов. Это, если ну очень надо, и есть оборудование, куча денег, людей и времени.

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


Ссылка на сообщение
Поделиться на другие сайты
Думаю здесь важно правильно составить договор об использовании интеллектуальной собственности.
Или же легально лицензировать заказчику свой IP.

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


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

Речь о цифро-аналоге. То есть, на кристалле должен быть довольно значительный объём аналога (сенсоры, СВХ, АЦП, различные компенсационные схемы) и сравнительно простая "цифра" (сериалайзеры, регистры установок). Background IP в большей части относится к аналогу.
Но вопрос - пока что - больше теоретический. Та сторона, где нахожусь я, в некоей перспективе выступит по-видимому заказчиком. Да, над договором и соглашениями придётся посидеть и это очень важная сторона орг. процесса. Ну а технически Заказчику нужна будет возможность (при необходимости, хтя и не очень высока её вероятность) что-то изменить в дизайне (что не закрыто в черном ящике ноу-хау IP) и вывести GDS..

Shivers: подскажите, пожалуйста, как должен/может выглядеть процесс шифрования и дальнейшего использования нетлиста для моделирования в случае цифрового узла?

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


Ссылка на сообщение
Поделиться на другие сайты
У кэданса в тулах есть такие фичи, только никогда не приходилось пользоваться такими извращениями.
Например можно криптануть верилог.
#ncprotect -lang vlog -autoprotect nand2.v
эта команда из кода
Код
//structural model of a NAND gate
// program nand2.v
module my_AND(A, B, F);
input A, B;
output F;
nand G(F, A, B); // first parameter must be output.
endmodule

сделает следующую кракозябру
Код
//pragma protect begin_protected
//pragma protect key_keyowner=Cadence Design Systems.
//pragma protect key_keyname=CDS_KEY
//pragma protect key_method=RC5
//pragma protect key_block
W067hTfJoWO/qb6rmRK1TreW6Z5GcAtvGNcZLIDIvTikeHb4hPMAFgi80qoNOqVR
2YkQhvAmNIyQUFC72nOSIRp/eOo2xH4zxhB682BUt++yN2q465+tPsPaPPnIYrt4
6vhPUBkRetLfmjhkD9A5/xdMSQIj1O36hWWfyoLfLmHonOW2hXEkqw==
//pragma protect end_key_block
//pragma protect digest_block
PZBV2zVsjfXfecmem6gJhDoOpQ4=
//pragma protect end_digest_block
//pragma protect data_block
an5bCK+z1V/MOAoD0i8oP7a3G2iqCeNEh83YxtLvP8mBgW7iIFGjU76FMrdJ7U8i
aCsRMjJiDMdpuyJGqumOYH0vnQ+2ACnqgsBTLVk0de3x2U5mAnvTamHOfiMPjUmX
ZPndVeKKwsA4KqHZyajZ9OP8ZRZ65vkE50RsLwkuGXnxP6J5HBT8lLzOMwxPe+Eb
/lMPX8nUV3ZYJ56IMj6xKXpnkgPUTAjvLk8LAYJxRU6k14Zey8swelZa7WaYQzk5
5rON5yrNjYP/K/9szJ20/TZouGkGve18HS4VdnQbKp+v70prxRNhsPLUMjDmYN1h
0HQVk5g766z2IOayqHXFLCSYXQrUl88OjGNabDEkhUVwHZJtvCTi9hP6PYJcLEfz
GAM85yjUmMv4JAyMMn4yvtYrmElgNc26ulFwyXxmKZKeChDEC1mwQ8yJG7Q/lcgn
bPY6DAJ8sATvKTammOrGEyqgw4ZIs5CvkGSHtDIaJQmK/U5TEm6IlpUcto5wNF1q
n0pU1jWlOP4FvkjnzKR/So6xfgGICDXeajqo8kjmRuk=
//pragma protect end_data_block
//pragma protect digest_block
FJzuo0TuLRYLs6hp+BBinHHhYxI=
//pragma protect end_digest_block
//pragma protect end_protected

Но вот как пользоваться этой кракозяброй я к сожалению не знаю.
Нужно читать документацию кеданс. (искать по словам crypt, encrypt, decrypt)
Изменено пользователем makc
codebox -> code

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


Ссылка на сообщение
Поделиться на другие сайты
Если честно, я уже не помню деталей, давно это было: мы купили софт-айпи с отдельным PHY, к которому шел в комплекте шифрованый нетлист (т.е. PHY делался по цифровому маршруту, кроме сердесов, может быть, но нам поставлялся как хард-айпи). Кажется, этот шифрованный файл просто скармливается симулятору, и все, т.е. шифрация производится ключами, зашитыми в тулы кэденс. (у синопсиса свое флоу, и свои ключи, кажется). Так что дешифровывать ничего точно не надо - сразу можно моделировать.
p.s. и да, шифрация делалась с помощью ncprotect, но было это еще во времена IUS. Сейчас это может быть уже другая утилита, поскольку от приставок nc они старательно избавляются в новых версиях.

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


Ссылка на сообщение
Поделиться на другие сайты
Попробовал дальше использовать ту саму кракозябру которая делается по ncprotect
Файлик обзывается nand2.vp (типа verilog protected)
сделал test.v
CODE
Код
`timescale 1ns / 1ps
module test;
// Test bench to test nand
reg A, B; wire F;
my_NAND test_my_nand(A, B, F); // instantiate my_NAND.
initial
begin
// apply the stimulus, test data
A = 1'b0; B = 1'b0;
#100 A = 1'b1; // delay one simulation cycle, then change A=>1.
#100 B = 1'b1;
#100 A = 1'b0;
end
initial #500 $finish;
begin // setup monitoring
//$monitor("Time=%0d a=%b b=%b out1=%b", $time, A, B, F);
//#500 $finish;
end
endmodule

И батничек для запуска симуляции
CODE
#!/bin/sh
ncverilog ./test.v \
./nand2.vp \
-top test \
-access +rw \
-timescale 1ns/1ns \
-gui

Работает.
Точно также похожим образом криптуются verilog-a и spice нетлисты.
Димыч кокретика решения определяется деталями вашей ситуации.
Там еще вроде бы есть специальные заточки, под то чтобы генерить некии лиц фалы и поставлять IP c лицензиями которые декриптуют IP.
Но это надо глубже доки копать.
Странно что вы этим интересуютесь, хотя вроде как с той стороны которой нежелательна какая либо зашифровка.

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


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

При возможности попробую применить в своей работе; а сейчас это нужно, так как сторона подрядчика (и она зарубежная) довольно ленива в отношении придумывания вот такого sm.gif
Им проще ввести в договор какие-то мутные условия не-передачи данных/файлов до тех пор пока они не обанкротятся/развалятся/отойдут от дел...
И здесь нашей стророне нужны некие компетенции; хотя конечно, не погрузившись в тему "с головой" легко и пропустить важные моменты.

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация