Димыч 0 26 декабря, 2017 Опубликовано 26 декабря, 2017 · Жалоба Доброго дня! Какие существуют технологии в предметной области (ASIC, Digital & Analog IC Design) для скрытия исходного кода или схемных узлов при передаче проекта заказчику? Посыл такой: Заказчик оплачивает Компании разработку, в работе над которой Компания использует свои наработки (назовём это Background IP). Права на результат и коды-схемы, полученные в результате разработки формально должны быть переданы Заказчику, но BIP нужно скрыть, оставив проект компилируемым/собираемым. Это как в варианте с программой на Си - когда передаются не все исходники, а часть; другая же часть - в объектных кодах. Компилировать и изменять вновь созданное можно, добраться до BIP нельзя. В Altera Quartus есть определённые средства для таких задач (передача только нетлиста, qxp...). А как в случае с разработкой ИС? спасибо!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shivers 0 26 декабря, 2017 Опубликовано 26 декабря, 2017 · Жалоба Речь ведь о цифре, верно? Сделайте свои блоки, и передайте их в виде GDS с флатованой до транзисторов иерархией. А цифровой нетлист сконвертируйте в CDL и тоже расфлатуйте: LVS будет проходить. Если заказчику хочется симуляцию на верилоге пускать без задержек, можно обфусцировать и зашифровать нетлист - логика моделироваться будет, а внутрь заглянуть нельзя. Ну и надо понимать, что на 100% защиты не бывает. По GDS можно восстановить CDL, по CDL - логический нетлист. А GDS при желании можно получить послойным стравливанием металлов. Это, если ну очень надо, и есть оборудование, куча денег, людей и времени. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
baumanets 13 26 декабря, 2017 Опубликовано 26 декабря, 2017 · Жалоба Думаю здесь важно правильно составить договор об использовании интеллектуальной собственности. Или же легально лицензировать заказчику свой IP. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Димыч 0 26 декабря, 2017 Опубликовано 26 декабря, 2017 · Жалоба Спасибо, коллеги :) Речь о цифро-аналоге. То есть, на кристалле должен быть довольно значительный объём аналога (сенсоры, СВХ, АЦП, различные компенсационные схемы) и сравнительно простая "цифра" (сериалайзеры, регистры установок). Background IP в большей части относится к аналогу. Но вопрос - пока что - больше теоретический. Та сторона, где нахожусь я, в некоей перспективе выступит по-видимому заказчиком. Да, над договором и соглашениями придётся посидеть и это очень важная сторона орг. процесса. Ну а технически Заказчику нужна будет возможность (при необходимости, хтя и не очень высока её вероятность) что-то изменить в дизайне (что не закрыто в черном ящике ноу-хау IP) и вывести GDS.. Shivers: подскажите, пожалуйста, как должен/может выглядеть процесс шифрования и дальнейшего использования нетлиста для моделирования в случае цифрового узла? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
designer78 0 27 декабря, 2017 Опубликовано 27 декабря, 2017 (изменено) · Жалоба У кэданса в тулах есть такие фичи, только никогда не приходилось пользоваться такими извращениями. Например можно криптануть верилог. #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) Изменено 27 декабря, 2017 пользователем makc codebox -> code Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shivers 0 27 декабря, 2017 Опубликовано 27 декабря, 2017 · Жалоба Если честно, я уже не помню деталей, давно это было: мы купили софт-айпи с отдельным PHY, к которому шел в комплекте шифрованый нетлист (т.е. PHY делался по цифровому маршруту, кроме сердесов, может быть, но нам поставлялся как хард-айпи). Кажется, этот шифрованный файл просто скармливается симулятору, и все, т.е. шифрация производится ключами, зашитыми в тулы кэденс. (у синопсиса свое флоу, и свои ключи, кажется). Так что дешифровывать ничего точно не надо - сразу можно моделировать. p.s. и да, шифрация делалась с помощью ncprotect, но было это еще во времена IUS. Сейчас это может быть уже другая утилита, поскольку от приставок nc они старательно избавляются в новых версиях. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
designer78 0 28 декабря, 2017 Опубликовано 28 декабря, 2017 · Жалоба Попробовал дальше использовать ту саму кракозябру которая делается по 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. Но это надо глубже доки копать. Странно что вы этим интересуютесь, хотя вроде как с той стороны которой нежелательна какая либо зашифровка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Димыч 0 28 декабря, 2017 Опубликовано 28 декабря, 2017 · Жалоба Коллеги, спасибо большое! При возможности попробую применить в своей работе; а сейчас это нужно, так как сторона подрядчика (и она зарубежная) довольно ленива в отношении придумывания вот такого :) Им проще ввести в договор какие-то мутные условия не-передачи данных/файлов до тех пор пока они не обанкротятся/развалятся/отойдут от дел... И здесь нашей стророне нужны некие компетенции; хотя конечно, не погрузившись в тему "с головой" легко и пропустить важные моменты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться