Skip to main content

[opensource]: Мои скрипты для EDA/CAE/CAD

Приведенное ниже — описание к коллекции моих EDA-скриптов для работы с тулами для ASIC и FPGA

Конвертор из UCF в XDC

Конвертирует для ПЛИС Xilinx привязки ножек и стандартов из формата ucf (Xilinx ISE) в новый формат xdc (Xilinx Vivado). Использование:

В текущей директории появится файл FILENAME.xdc.

Пример входного ucf-файла

Пример сгенеренного утилитой xdc-файла

(далее…)

Читать далее

Обзор цифровых интерфейсов современного автомобиля

Отказ от ответственности

Все нижеследующее выражает личное мнение автора, возможно, мне неизвестны какие-либо существенные факты либо знаковые плюсы и минусы какого-то стандарта либо я недооцениваю их потенциал.

LIN

Интерфейс LIN (aka ISO17987) — пожалуй самый длинный (если сравнивать по длине линий, а не по весу меди в проводах) пучок в современном авто. Как говорится —  модно, доступно, молодёжно. Принцип необходимой достаточности и минимальной цены решения применяемый для некритичных к надёжности и/или безопасности компонент: климатическая установка, кнопки мультируля, стеклоподьемники, замки дверей. Протокол по физике очень похож (берет своё начало) от K-line протокола диагностики, стандартизованного как ISO9141. Во многих микроконтроллерах реализуется на основе аппаратного UART (в том же STM8 имеюттся аппаратные дополнения к UART для поддержки различных реализаций LIN)

Характеристики:

  • 2002г — дата первой публикации (первые черновики датируются 1999г)
  • однопроводная шина с PullUp
  • длина шины до 40 метров
  • коммуникация по принципу ведущий — ведомые (до 16-ти ведомых)
  • скорость до 20 кбит/с
  • длина пакета 2, 4 или 8 байт
  • поддержка широковещательного режима
  • контроль целостности данных с помощью CRC8
  • возможность определения сбойного абонента

CAN

Интерфейс CAN (aka ISO11898) — пожалуй, самый известный интерфейс современного автомобиля, во многом благодаря использования как стандарт де-факто для интерфейса диагностики инжекторного двигателя — аля OBD2. Однако, благодаря своим уникальным качествам, нашёл применение в таких ответственных отраслях как промэлектроника, авиация, космонавтика, ЖД и морской транспорт.

(далее…)

Читать далее

[opensource]: Аппаратный криптодвижок ГОСТ 28147-89

Что такое движок по ГОСТ 28147-89?

Реализация на верилоге советсткого стандарта симметричного шифрования, который был рассекречен в 1989г. В стандарте применяется шифрование с 256-битным ключом над 64-битным блоком данных за 32 раунда.

Текущая реализация являет собой некий компромисс между используемыми ресурсами и производительностью с целью демонстрации возможности размещения криптодвижка в низкобюджетных ПЛИС (оставаясь при этом относительно быстрым), как видно из отчета по использованию ресурсов — цель была достигнута.

Возможности

  • RTL и тесты написаны на верилоге
  • Реализация шифровщика/дешифровщика как единого блока
  • Поддержка режима EBC
  • Реализация алгоритма ГОСТ 28147-89 оптимизированная по использованию минимума ресурсов
  • Реализация криптования/декриптования 1 блока за 32 такта
  • Поддержка следующих типов S-box (имена даны в соответствии с RFC4357):
    • id-GostR3411-94-TestParamSet
    • id-Gost28147-89-CryptoPro-A-ParamSet
    • id-Gost28147-89-CryptoPro-B-ParamSet
    • id-Gost28147-89-CryptoPro-C-ParamSet
    • id-Gost28147-89-CryptoPro-D-ParamSet
    • id-tc26-gost-28147-param-Z
    • также поддерживается S-box из ГОСТ Р34.11-94 из CryptoPro

(далее…)

Читать далее

CAN FD: состояние на 2016 год

Посмотрим, что же нам может предложить индустрия за столь недолгий срок существования в столь консервативных отраслях такого молодого явления как CAN FD…

Стандарты

Следующие стандарты были обновлены для учёта изменений, внесенных CAN FD:

  1. ISO 11898-1:2015 Road vehicles — CAN — Part 1: Data link layer and physical signalling
  2. ISO 11898-2:2016 Road vehicles — CAN — Part 2: High-speed medium access unit
  3. ISO 16845-1:2016 Road vehicles — CAN conformance test plan — Part 1: Data link layer and physical signalling

Контроллеры

Мифический MCP2517FD

Самый многообещающий продукт от Microchip, pin-to-pin преемник не побоюсь этого слова — легендарного standalone-решения МСР2515, результат коллаборации Kvaser и Synective Labs так похоже и не достиг потребительского прилавка так страждующих его применить инженеров. Увы и ах!…

(далее…)

Читать далее

Работа из под линукса с UART-портом

Настройка окружения

Выясняем какие USB-to-COM преобразователи доступны в системе:

Настройка прав доступа из под обычного пользователя:

либо пользуемся механизмом udev, для чего нам понадобится положить по пути /etc/udev/rules.d файл такого содержания (с расширением *.rules):

— в примере прописаны  VID&PID микросхем-преобразователей FT232R и СР2102. После сохранения файла необходимо добавить пользователя в группу plugdev (если он еще не добавлен):

И перезачитать содержимое правил в директории /etc/udev/rules.d:

(далее…)

Читать далее

Об автомобильном линуксе

Вкратце

Тема баянистая, уже который год Linux Foundation пилит-пилит никак не допилит автомобильный дистрибутив линукс с гордым названием Automotive Grade Linux. Текущая инкарнация идеи вобрала в себя наработки аж трёх проектов: Tizen, GENIVI и Yocto. Для написания приложений используется HTML5 и Qt.

Разработку саппортят (от глагола — «портят»?) порядка 90 автовендоров, таких как: Ford, Honda, Jaguar, Land Rover, Mazda, Mitsubishi, Nissan, Subaru, Suzuki и Toyota. А результаты проекта намереваются использовать такие компании как:  Toyota, Mazda, Aisin AW, Continental, DENSO, HARMAN, Panasonic, Qualcomm, Renesas и прочие.

(далее…)

Читать далее

[opensource]: генератор распиновки СБИС для оформления даташитов и документации

Постановка задачи

Использование концепции единого источника, минимизация человеческого фактора при одновременной правке табличной информации об изменении/перемещении/исправлении_ошибок в списке внешних ножек СБИС и его графической репрезентации. Притом хорошо бы на выходе получать векторную картинку.

Решение

Исходными данными является (нативная для сборщика документации) таблица в формате asciidoc, которая sed‘ом и grep‘ом переводится в классический CSV (comma separated value), после чего средствами PHP переводим его в JSON, и уже JSON скармливаем скрипту рисования SVG (а если надо — и PNG).

PS: Перевод в JSON — опциональный, просто потому что формат удобный, быть может в будущем в каком-нибудь скрипте прийдётся работать со списком пинов, например, автосоздание либы с символьным обозначением для Altium/PCAD/KiKAD/Eagle.

Возможности

  • Поддержка следующего типа полей из оригинального asciidoc-описания:
    • Номер пина
    • Имя пина
    • Тип пина
    • Стандарт ввода-вывода
    • Описание пина
  • Возможность для любого из полей назначить свой цвет пина (DecidePinColour.php), на данный момент поддерживаются:
    • GND — земля
    • VDD — питание
    • VDDA — питание аналоговых цепей
    • CMOS — цифровые ножки общего назначения
    • LVDS — дифференциальные пары
    • JTAG — отладочные цепи
    • XTAL — тактирующие цепи
    • ANALOG — аналоговые выводы
  • Возможность задания произвольного прямоугольного корпуса — с произвольным соотношением пинов по ортогональным сторонам
  • Возможность опционального задания имени СБИС
  • Возможность задания типа и начертания шрифта для имени СБИС, номера пина, имени пина

(далее…)

Читать далее