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

skv

Участник
  • Постов

    68
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о skv

  • Звание
    Участник
    Участник

Контакты

  • ICQ
    Array

Посетители профиля

804 просмотра профиля
  1. А зачем это нужно? Защита прошивки от копирования в ПЛИС Актела осуществляется аппаратно с помощью встроенного шифрования. Внутреннюю сигнатуру ПЛИС в проекте использовать не получиться. Она не доступна со стороны матрицы. Не надо изобретать велосипед. Используй AES кодирование для защиты прошивки. Это надежно. Взломать можно любую защиту. Вот только во что это обойдется? Я читал статью. Это не первая статья с анализом защищенности ПЛИС Актел. Надо сказать, что это одна из немногих более-менее объективных статей. Хотя доля лукавства в ней тоже есть. Они анализировали прошивку имея сам файл прошивки STAPL. Прошивку они считать так и не смогли - это физически невозможно. То что они вскрыли ключ, то тут есть два момента. Первый, как я уже говорил, у них был файл прошивки, который они проанализировали. Во-вторых, какую микросхему они использовали? На картинке я увидел ПЛИС с логотипом Actel. Дело в том, что пару лет назад, не задолго до слияния с Microsemi, была доработана схема шифрования. Это не обсуждалось широко, т.к. для пользователей внешне ничего не изменилось. Но вот вскрыть защиту стало практически невозможно. Есть подозрение, что они тестировали старую версию ПЛИС. Судя по симптомам. Нет ничего совершенного. Да, первые ПЛИС семейства ProASIC3 выпущенные много лет назад имели некоторые недостатки в защите, которые были в последствии устранены. К стати ПЛИС A3P250 начала выпускаться одной из первых в семействе. Не по этому ли ее и взяли? Но Актел (теперь Microsemi SoC) постоянно совершенствует защиту. Это их фича. Прочитай статью. Вскрыть ПЛИС Актел очень просто. Всего лишь приобретаешь дорогостоящее оборудование, нанимаешь высококлассных специалистов, тыришь у разработчиков файл прошивки и тогда кое-что можно выудить из ПЛИС. А если стырили сам проект, то тут уж ничего не поможет.
  2. Вообще-то это какой-то глюк. Папку work в версии для Libero переименовали в presynth. А перед симуляцией запускал очистку (Clean)? Мне обычно помогет когда после очередного изменения в коде симулятор начинает ругаться на какие-нибудь неправильные подключения какого-нибудь модуля. Это проблема скорее с ModelSim. Я с этим сталкиваюсь не только в Libero. ModelSim почему-то иногда не воспринимает обновления модулей и не перекомпилирует их. Тогда, действительно, приходится удалять папку work с компилированными модулями, чтобы он их перекомпилировал. В Libero обычно помогает запуск команды очистки - Clean.
  3. Конечно есть. Называются constraints. Конечно, полностью управлять синтезом и трассировкой не удастся. Описание констрейнов для синтеза описаны в Synplify User's Guide, а для трассировки - в SmartTime User's Guide.
  4. Предупреждение синтезатора говорит, что не указан вход тактовой частоты и какя тактовая частота дизайна. Он задается в констрейнах. Поэтому синтезатор сам пытается определить какой вход и соответственно цепь использовать как тактовую. По умолчанию тактовая частота 100МГц. Warning: NUMERIC_STD."=": metavalue detected, returning FALSE. Это означает, что где происходит попытка присвоить значение или выполнить действие, например, сдвиг со значением параметра X, U или Z. Касательно неопределенных значений на всех выходах, то надо смотреть что синтезировалось. Проходит ли синтезированная схема по частоте. Возможно неправильно определен тактовый вход. Я бы раскручивал симуляцию от тактового входа, входа сброса и начал бы с входных регистров. Посмотреть доходит ли клок и сброс до триггеров, что на входе данных триггеров входы которых выведены наружу модуля, что на выходе триггера и дальше внутрь схемы. Посмотреть где начинаеся неопределенность.
  5. Ну почему в помойку. Просто придется использовать не аппаратный контроллер внешней памяти, а софтовый. Конечно, для подобных задач, СФ2 будет гораздо вкуснее. Особенно учитывая, что ценник на СФ2 приблизительно такой же, как и на СФ, а возможности гораздо больше. Вот только ценник на сартер кит СФ2, по-моему, они загнули.
  6. Именно, что затрагивал. Просто я уже сталкивался, что Quartus и Xilinx ISE иногда прощают подобные ошибки и интерпритируют их правильно. А Libero - нет. no_ones_below(0) <= '1'; //Это первый процесс process(q, no_ones_below) begin for j in 1 to WIDTH loop no_ones_below(j) <= no_ones_below(j-1) and not q(j-1); // Это второй процесс end loop; end process; По сути это два разных процесса. Не в явном виде. Process - это параллельное выполнение операций внутри этого блока остальным процессам в модуле, в то числе и присваиванию no_ones_below(0) <= '1';. С той лишь разницей, что первое присваивание выполнится один раз при старте симуляции, а опрерации внутри процесса будут выполняться каждый раз, когда выполняются заданные события, в том числе и при старте симуляции, поскольку сигнал сброса активен. Но присваивается 0. Получается конфликт. Да и еще одно замечание. Для ПЛИС Актел нельзя использовать присваивание значения переменной при ее объявлении. Они выполнены по FLASH-ПЗУ технологии (CPLD). Для установки значения надо использовать аппаратный сигнал сброса. Иначе, при включении питания триггер находится в неопределенном состоянии. Однако это обнаруживается только при симуляции посттрассированной модели или непосредственно в плате. При симуляции RTL симулятор присвоит определенное при объявлении значение.
  7. Потянет. Я в свое время делал контролллер с РАТА 133. Работал четко со стандартным кабелем. К стати, у SmartFusion2 есть встроенный контроллер DDR памяти. Я недавно раговаривал с представителем Актела (американского). Он сказал, что о ProASIC3 пора забывать. Это вчерашний день. Это же очень старая технология. На смену этому поколению идет новое семейство. Сейчас появился SmartFusion2, а скоро появить IGLOO2, выполненная по той же архитектуре, что и SM2, но без процессора.
  8. Да, программатор уже на борту. Полноценный.
  9. Код вообще-то не совсем корректный. Процесс - это параллельное выполнение действий другим операциям. Т.е. при старте симуляции одновременно сигналу no_ones_below присваивается и 0 и 1. Результат - неопределенность, что и видно на симуляции. Нулевой бит всегда красный поскольку непонятно его начальное значение. При синтезе синтезатор "догадался" что имелось ввиду и правильно оптимизировал схему. Поэтому и симуляция постсинтезированной схемы правильная. Сигнал всегда! должен определяться в пределах одного процесса. Тогда проблем не будет. Правильно будет записать так: process(q, no_ones_below, reset) begin if(reset = '1') then no_ones_below(0) <= '1'; else for j in 1 to WIDTH loop no_ones_below(j) <= no_ones_below(j-1) and not q(j-1); end loop; end if; end process;
  10. Нет не слишком. Сами Xilinx и Altera дают 2,2-2,3. Актел - 2,4-2,5. При оценке для Альтеры как раз ориентируются на Циклоны. Мой опыт показывает, что правы оба. Все зависит от проекта. Есть один проект где коэффициент получился не более 1,5. Аналог ProASIC3 - это Циклон2. Они как раз в одной весовой категории. А откуда коэффициет 4 для ProASIC+? Даже Альтера с Ксайлинксом такого не давали. Всегда менее 2,5. Со скоростью, согласен, будет поменьше. Но опять же все зависит от проекта. Если собрать простенький 16-битный счетчик, то в Альтере он будет работать на частоте в 2-3 раза большей, чем в Актеле. Но если собрать большой проект, то разница уже не столь заметна. В зависимости от спидгрея у меня проекты работают, в целом, на частотах и больше 100 МГц для стандартного и больше 200 для самого быстрого исполнения ПЛИС. При этом отдельные блоки делал на 150-250 МГц. А непосредственно на конвейеры у меня обычно уходит не более 5-10%. Что же касается частоты, то я только за последние пару-тройку лет сделал десятка полтора проектов и модулей, где частота 50МГц больше чем достаточно. Преимущественно это системы управления или видеосистемы. Да, если требовалась высокоскоростная ЦОС или высокоскоростная передача данных, то это - Ксайлинкс или Альтера. Но при этом Актел - это FLASH технология (CPLD), надежнее, прошивка не грузится не слетает, не греется и потребляет на порядки меньше. Для ряда задач это определяющее преимущество. С появлением нового семейства Актел SmartFusion2, у которого ячейка стала LUT+триггер и появились аппаратные умножители и большого объема память, да и сама матрица в несколько раз больше, преимущества Альтеры и Ксайлинкс теперь скорее только в объеме матрицы. Да и вообще, на сегодня выбор производителя ПЛИС, на мой взгляд, - это в большей степени "любовь" или "не любовь" разработчика. Лично я предпочитаю Xilinx и Microsemi SoC ( так теперь называется Актел) и не очень люблю Альтеру. Все Актеловские ПЛИС и киты можно купить не дорого в представительстве Актел в Питере с доставкой "на дом". Обойдется дешевле, чем тащить из-за бугра. Зайди на www.actel.ru А вообще рекомендую посмотреть SmartFusion2 StarterKit http://www.actel.com/products/hardware/dev...n2_starter.aspx
  11. Для сравнения логики бери коэффициент 2,5. Т.е. на 1 ячейку циклона нужно 2,5 ячейки матрицы SmartFusion. Это касается всех семейств ПЛИС MicrosemiSoC (так теперь называется Актел), кроме нового семейства SmartFusion2. У этих ПЛИС другая архитектура ячейки матрицы, похожая на Альтеру и Ксайлинкс - LUT+триггер.
  12. Libero поддерживает симуляцию 51-го процессора. А зачем симулировать процессор? Собирать ядро микроконтроллера со стандартными контроллерами (IP 8051s, UART, Таймер, GPIO и т.д.) лучше в SmartDesigner. Проще и быстрее. Накидал модулей, бысренько соединил: 10-15 минут и готово. Затем уже перехожу к написанию своих модулей, добавляю модуль (верхнего уровня если проект получился иерархический) в схему процессорной части в SmartDesign и подключаю к АРВ шине. По опыту могу сказать что с конфигурацией собранной из стандартных модулей проблем не возникало ни разу. Смысла тестировать процессор нет. Для отладки своих модулей лучше использовать АРВ BFM. Я последнее время активно использую АРВ и АНВ BFM симуляцию для отладки своих модулей, подключенных на APB или АНВ шины. А более полную отладку и тестирование модуля делаю уже программно в SoftConsole в дебаггере ПО. Пишу тестовые программы и отлаживаю. На симуляции все не проверишь. Да и ресурсов много надо. Если будет время постараюсь к концу недели собрать тестовый проект с комментариями.
  13. Виртех4QV (без конфигурации) стоит раз в 5 дороже чем RT ProASIC3. Да и радстойкое ПЗУ хранения стоит очень немалых денег. RTAX подороже, чем RT ProASIC3, но дешевле, чем Virtex4 QV. Я уж не говорю про 5-й Virtex, который стоит просто безумных денег. Актеловские RT ProASIC3 уже давно летают на буржуйских спутниках. А с прошлого года и на отечественных. RTAX в отношении емкости уступают 4-м и 5-м радстойким Виртексам. Но если учесть, что в Виртексах немалая часть ресурсов уходит на троирование триггеров, а в RTAX их не надо троировать в дизайне - троированы аппаратно, то эта разница становиться не столь сильной. А по производительности будут даже побыстрее. Что касается поляны, то Xilinx давит не меньше. Скорее разработчики не хотят использвать радстойкие. Не привыкли. Мол, всю жизнь работали на коммерческом Xilinx или Альтера, а тут какой-то Актел, да еще за такие сумашедшие деньги. Просто раньше на разработки денег давали очень мало и за "недолеты" сильно не били. Вот никто и не шевелился. А сейчас появились деньги, но и стали бить и бить очень жестко.
  14. Прочитал статью. У Автора явно не очень понимает о чем пишет. У него какая-то каша в голове. Можно написать целую статью по этому поводу. Приведу лишь несколько Software и firmware к разработке ПЛИС не имеет отношение. Это относиться к программному обеспечению. Обычно понимают следующее Software - ПО для компьютера. firware - встраемое ПО для различных микроконтроллеров. RTL модель - в общем случае не привязанная ни к какому либо семейству или производителю поведенческая (функциональная) модель написанная на любом HDL языке: Verilog, VHDL, SystemVerilog и т.д. Нарисованная в графическом редактое схема - это то же RTL модель. В модели могут использоваться специфичные для конкретного семейства модули, такие как PLL, память, примитивы. Тогда она становиться привязана к конкретному семейству. В моели могут использоваться несинтезируемые команды для симуляции, которые будут удалены в последствии при синтезе, и констрейны (правила) для управления синтезом. RTL модель не должна содержать не синтезируемых конструкций!!!!! Т.е. это то, что написали ВЫ! RTL модель еще называют открытым кодом. Синтезированная модель или Netlist. Модель после оптимизации и синтеза. Представляет собой список соединений между примитивами для выбранного семейства. Может быть в виде Veriiog, VHDL кода или в специальном формате. Но нет еще привязки к выводам конкретной микросхемы. Обычно заказчику передают Netlist в виде Verilog или VHDL кода когда обязаны передать код, но не хотят отдавать открытый код, который можно использовать как угодно. а так же используется для трассировки. Трассированная модель - это модель уже после размещения и трассировки. Привязана к конкретной микросхеме. Файл прошивки - содержит бинарный файл трассировки, а так же различную дополнительную информацию для работы програматора, может содержать ключи шифрования и т.д. IP-core (IP-ядро)- сложнофункциональный модуль какого-либо контроллера или процессора. Он может поставляться в виде RTL или синтезированой моделей или дажа в виде претрассированного модуля. Он совершенно не обязательно должен быть привязан к какому-то семейству, но может быть и привязан. Может поставляться на платной и беспланой основе. Вообще IP - это общее обозначение любой интелектуальной собственности а не только для ПЛИС. Это может быть программа для компьютера или алгоритм. К сожалению, я время от времени сталкиваюсь с подобными "авторами" желающими засветиться в прессе. КиТ грешит подобными "не проверенными" статьями. Пару лет назад я увидел статью в КиТ по одной из ПЛИС Актел и с удивлением обнаружил, что статья представляет собой "цитаты" из моих ответов на письма, моих ответах в форумах и из моих статей в КиТ. Разумеется ссылок на мои статьи и ответы в статье не было. Он все написал "сам". Но я не в обиде. "Писатель" явно не понимал о чем пишет и получился бессмысленный бессвязный микс из цитат. Я долго смеялся над этим бредом.
×
×
  • Создать...