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

О философии HDL-дизайнера

Наткнулся в переписке с коллегами на сжатую справку о своей работе с ПЛИС. Мне это понравилось. Выношу на обсуждение.

 

Укоренилось мнение, что создание дизайна на ПЛИС осуществляют программисты и сам процесс его создания есть программирование. Это факт, что это делают программисты, но это миф, что это программирование. Это создание цифровой архитектуры.

 

1. Рекомендую при участии в конференциях по отношению к ПЛИС не употреблять слова "програмное обеспечение". Для этого говорят - HDL-дизайн.

2. Прошу усвоить, что результат работы HDL-дизайнера есть архитектура, уже её надо будет программировать. Программистами.

3. Самым сложным и затратным(до 80% времени) в работе HDL-дизайнера является этап верификации, поскольку он состоит из прохождения 3х этапов:

a) Создание и применение Тест-бенчей при написании фрагментов дизайна;

б) Создание и применение Набора Тест-бенчей для перекрестных проверок поведения модулей в сборке всего дизайна. Тут важна вариационность тестов, чтобы выявить конфликты в общей работе дизайна;

г) Создание дополнительных дизайнов при выявлении ошибок и сбора информации о поведении "на железе" в комбинации с SignalTab(или ChipScope). Тут неизбежно сотрудничество непосредственно с программистом, который будет пользователем этой архитектуры на ПЛИС, либо имитирует её внешний мир(по заранее определенной методике);

Игнорирование этих особенностей загоняют проблемы в глубь и ставят под угрозу сроки создания систем в целом. Не выявленные проблемы все равно заставят их пройти сполна.

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


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

Мне это напоминает использование «крайний» вместо «последний». Такое буквоедство не импонирует.

Между тем, у создания HDL-архитектуры и программирования на ЯВУ много общего в стратегиях, подходах, ошибках и т.д.

И один, и другой работает на высоком уровне абстракции. И последние тенденции говорят о плавном срастании HDL и SW областей проектирования.

Все остальное нюансы на уровне терминологии.

Но за мысли спасибо.

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


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

Укоренилось мнение, что создание дизайна на ПЛИС осуществляют программисты и сам процесс его создания есть программирование. Это факт, что это делают программисты, но это миф, что это программирование. Это создание цифровой архитектуры.

А среди кого укоренилось такое мнение ?

 

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


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

:rolleyes: У менагеров....

Вот если вышестоящее руководство так думает - тогда проблема. А манагеры пусть думают что хотят. Лишь бы не мешали :maniac:

Изменено пользователем Flip-fl0p

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


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

Вот если вышестоящее руководство так думает - тогда проблема. А манагеры пусть думают что хотят. Лишь бы не мешали :maniac:

В моем случае это проблема. Тут у меня только 2 человека(включая меня) компетентных. Начальство не из их числа... Везде в документации фигурирует ПО на FPGA. Мне стыдно перед приезжими, что более продвинуты в вопросе.

 

Мешают. И ставят в упрек как по срокам, так и по надежности(сделали серьезный дизайн за 6 месяцев. Хотя должно быть год.

 

И теперь за контроллеры! Следующий "забег"(с языком на плече) возможен через год....

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


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

Расшифруйте аббревиатуру FPGA.

Программируемые пользователем вентильные матрицы.

 

Встречный вопрос,- что такое Verilog или VHDL?

Утрирую дополнительно ситуацию,- микросхема контоллера, только что прошедшая корпусирование у производителя и не имеющая пока целевую заливку имеет ПО? Вот и ПЛИС, с залитой конфигурацией, пока только архитектура. Её предстоит использовать.

 

Говорят мне,- "А там есть алгоритмы?" Да, конечно, но это проблемно-ориентированная система, как периферия у процессорного ядра. Она есть, но все там используется!

http://www.lcard.ru/lexicon/fpga

--К программному или аппаратному обеспечению следует относить саму прошивку FPGA (или CPLD) и проект этой прошивки в какой-либо среде программирования?

 

Подобный вопрос может возникнуть, например, при согласовании технического задания. Рассматривая уровни программных и аппаратных средств обобщённой пользовательской системы, мы видим, что прошивки FPGA (или CPLD) фактически находятся между сущностями HARD и SOFT. Это означает (исходя из сказанного выше), что тот уровень прошивки, в котором реализована "жёсткая логика" с параллельной топологией взаимосвязей ячеек FPGA и учётом физических задержек распространения сигнала (наподобие электрической схемы), очевидно является аппаратным уровнем (HARD). А тот уровень прошивки, в котором рассматривается программа процессора, реализованного в FPGA, очевидно является программным уровнем системы. Подразумевается, что логика работы рассматриваемого процессора должна быть основана на последовательно исполняемом программном коде, который может быть изменён (перепрограммирован) без модификации физического уровня проекта.

 

В то же время, проекты FPGA или CPLD (в той или иной среде программирования), не входят в рассматриваемую обобщённую пользовательскую систему, а является технологическим средством проектирования (со своими программными и аппаратными уровнями).

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


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

В моем случае это проблема.

Много копий сломано в подобных спорах.

ПЛИС -- программируемая интегральная схема. Кто-то её программирует. В общем, я бы на вашем месте не заморачивался ВООБЩЕ.

Важен результат, а не то, как он называется.

Во всем мире это называется кодом. HDL код. То есть последовательность упорядоченных множеств слов и символов, принадлежащих некоторому конечному алфавиту. Это и есть программное обеспечение. Для этого был придуман язык описания аппаратуры, чтобы уйти от схематичной архитектуры к её языковому представлению. Языковое представление однозначным образом программирует цифровое устройство на определенное поведение, выполнение каких-то функций.

Предлагаю тему закрыть во избежании холивара. А ведь он будет. :biggrin:

 

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


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

Программируемые пользователем вентильные матрицы.

 

Встречный вопрос,- что такое Verilog или VHDL?

Не совсем так. Тут перевод более правильный "Программируемые на лету вентильные матрицы"

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


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

Я тоже считаю что "писать для ПЛИС" это НЕ программирование. Но последнее время задумываюсь - да ведь это ж самое настоящее обыкновенное программирование, с отладкой, с юнит-тестами, системами сборки, системами контроля версий, с релизами, с модулями, с отладкой через принтинг - вот прямо как программу отлаживаю принтингом, так и работу схемы отлаживаю принтингом.

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


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

А если в симулинке (матлабе) накидать блоков, соединить их стрелочками, а потом одной кнопкой: скодогенерить и сразу же скомпилировать прошивку, которая сразу же отправится в микроконтроллер.

Можно сказать, что человек программист и занимается при этом программированием?

 

А далее вопрос абстракции. Если пишете (создаете) HDL-код, то физический уровень для вас -- это уровень вентилей, логических ячеек, блоков памяти, архитектуры самой микросхемы, изменить которую нельзя. А уровень, на котором вы создаете свой код -- это software, из которого получается firmware, которое программирует hardware.

В современных многопроцессорных системах с операционной системой, GPU и прочим, линейное программирование тоже весьма условно линейное. Надо многое синхронизировать.

Изменено пользователем x736C

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


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

Программируемый в полевых условиях массив вентилей - так будет еще правильнее.

В "Искусстве схемотехники" упоминается ОУ с задаваемым током потребления, они называют, "программируемый". А так, да, пустобрехство это все.

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


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

Я тоже считаю что "писать для ПЛИС" это НЕ программирование. Но последнее время задумываюсь - да ведь это ж самое настоящее обыкновенное программирование, с отладкой, с юнит-тестами, системами сборки, системами контроля версий, с релизами, с модулями, с отладкой через принтинг - вот прямо как программу отлаживаю принтингом, так и работу схемы отлаживаю принтингом.

 

Вот такое восприятие и дает основание управляющим без тени сомнения давать задание программисту контроллеров заниматься ПЛИС. Хотя это иная Вселенная... Программист? Вперед!...

Хотя человеку, который идет из ПЛИС на контроллеры, это возможно, а вот наоборот - проблемно. Потому как подходы иные. Параллельное (на тысячи процессов) или последовательное программирование(один программный счетчик и стек для контекстов(или по числу задач)). Человеком, с прошлым схемотехника, семантика HDL воспринимается вполне естественно.

 

Да и сам процесс написания кода выглядит как пожелание(синтезируемое и не синтезируемое(!) подмножество). В процессе усложнения дизайна уже проверенный на железе код вдруг начинает чудить.... Такое для контроллеров - экзотика. А в ПЛИС - спошь и рядом. Почему каждый раз проверку проходит ВЕСЬ дизайн. А расположение ножек, его смена - может тоже вызвать проблемы. Хотя дизайн уже закончен и отлажен...

 

Схемотехника в N-слоях ПЛИС (как разводка в 2х слоях PCAD)... Вижу аналогию!

 

А далее вопрос абстракции. Если пишете (создаете) HDL-код, то физический уровень для вас -- это уровень вентилей, логических ячеек, блоков памяти, архитектуры самой микросхемы, изменить которую нельзя. А уровень, на котором вы создаете свой код -- это software, из которого получается firmware, которое программирует hardware.

 

Работу с ПЛИС часто воспринимаю как программирование контроллера на ассемблере... Не тот уровень абстракции...

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


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

Вот такое восприятие и дает основание управляющим без тени сомнения давать задание программисту контроллеров заниматься ПЛИС. Хотя это иная Вселенная... Программист? Вперед!...
С таким подходом можно сравнить программистов JAVA и PHP. Если начальство дурноватое, то это совсем другая проблема. Нужно либо уметь доносить до начальства нужные мысли, либо его менять.

 

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


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...