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

Наткнулся на эту тему. Прочитал. Нифига не понял. :)

 

Я сам абсолютный новичок во всех этих делах, но поставлена передо мной задача, описанная тут http://electronix.ru/forum/index.php?showtopic=30180

 

Объясните, пожалуйста, используется ли сейчас написание на C для FPGA? Если нет, то почему? Стоит ли мне на данный момент вообще заморачиваться с изучением этой области? Тут в теме был ряд ссылок на различные версии компиляторов C->FPGA. Как я понял, они все транслируют написанный код в HDL, а уже этот HDL потом вставляется в квартус и так далее. Так? Как они вообще работают и как с ними взаимодействовать? Какие лучше? Как вообще выглядит процесс разработки? Вообщем, очень хотелось бы получить небольшой ликбез на эту тему.

 

Я плотненько полазал по сайту ImpulseC, там все так красиво описано, что аж слюнки текут. А как оно в реальности обстоит?

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

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


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

На западе как я смотрю вовсю больше пользуют VHDL чем Verilog к примеру, хотя иногда поподаются требования знать его. По моему все дело в том что написано куча готовых проектов, в которые вложены деньги и переходить на новые языки с работающих кодов никто не хочет. Вот это все и отмирает по тихоньку....

 

На западе в принципе и то и то в ходу. Есть тенденция писать ASICи на Verilogе, особенно в Штатах и им подобных моделях хай-тека (например Израиль и Дальний Восток), ну а если учесть что часто (но не всегда) FPGA это идет как переходный процесс к ASIC (т.е. делается принципиальная имплементация на FPGAе, отрабатываются проблемные логические вещи, алгоритмы и т.д. и потом делается ASIC), но удобства ради предпочитают Verilog и для FPGAев. Т.е. если вы напереваетесь например войты в рынок труда в данной области в Штатах, Израиле, Дальнем Востоке (Тайвань, Япония и т.д.) - знание и опыт Verilogа вам помогут больше чем VHDLя (хотя и последний далеко не помеха...)

 

Европа-же по моему больше стоит на VHDLе.

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


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

Т.е. если вы напереваетесь например войты в рынок труда в данной области в Штатах, Израиле, Дальнем Востоке (Тайвань, Япония и т.д.) - знание и опыт Verilogа вам помогут больше чем VHDLя (хотя и последний далеко не помеха...)

Европа-же по моему больше стоит на VHDLе.

полностью согласен. а теперь сравните объёмы разработок США и Европы. Европа это вообще задворки в плане введения в строй передовой технологии (за небольшим исключением)

по поводу СистемЦ: при синтезе это всё тот же структурный подход - ничего из ряда научной фантастики в данной области (синтез поведения) нет - просто ещё один синтаксис (у Ц++ он достаточно гибкий для расширения поэтому его и выбрали за основу новой технологии SC - а в принципе можно написать синтезатор хоть с Паскаля или с Бейсика /так же как вы в принципе можете компилировать Верилог и ВХДЛ в исполняемый код для процессоров регулярной архотектуры - если это кому-нибудь когда-нибудь будет нужно/ - главное то что координатьно ничего не меняется : синтез - структурный, а не поведеньческий! /хотя есть свои наработки у продвинутых фирм и поведеньческого синтеза - но это больше их ноу-хау в технологии синтеза чем характеристика какого-либо языка/)

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


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

полностью согласен. а теперь сравните объёмы разработок США и Европы. Европа это вообще задворки в плане введения в строй передовой технологии (за небольшим исключением)

 

Да, так и есть. И учитывая это - трудно понять академии - в универах на последнем году обучения предлагаются предметы програмируемой логики - но везде в основном учат азы VHDL (универы Израиля и те американские о которых я в курсе). Может из-за того что VHDL более строг и систематичен...

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


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

А на мои вопросы кто-нибудь ответит? :)

наверное просто все светилы Катапульт Си отдыхают - советую дождаться их, но если не втерпёж - могу и я на уровне сплетен поделиться :)

Тут в теме был ряд ссылок на различные версии компиляторов C->FPGA. Как я понял, они все транслируют написанный код в HDL, а уже этот HDL потом вставляется в квартус и так далее. Так?

был на конференции на одной - там был доклад по какому-то из подобных инструментов - они действительно производили трансляцию с Си на ВХДЛ - зачем верхний уровень на Си? - чтобы можно было моделировать взаимодействие программной и аппаратной части (это в принципе решается и средствами СистемСи и Верилога - и в какой-то степени и ВХДЛ для двух последних методами импорта Сишных функций в общую модель симулятора - в первом случае - естественно напрямую /Си++ всё-таки/)

в принципе задачи синтеза поведеньческих конструкций до некоторой степени решаемы (можно например синтезировать do-while или цикл for так чтобы он был действительно циклом во времени а не в пространстве) поэтому поведение Си синтезировать до некоторой степени можно

однако програмистским языкам как правило не хватает синтаксических средств для представления структуры устройства (ведь функционирование устройства - это множество параллельных процессов - а следовательно и представления о взаимодействие процессов во времени, но самая большая сложность для поведеньческого синтеза -это неоднозначность абстрактных операций над данными и множества их возможных реализаций - простой пример - умножение вам как выполнять? конвейером за n тактов или мартичным умножителем за 1 такт(но более длинный в рамках той же технологии) - и так далее - а система вещь детерминированная - там хотя бы одна неоднозначность и формальные методы уже не работают. (можно на эту тему долго рассуждать - здесь не буду - далеко зайти можно )

Объясните, пожалуйста, используется ли сейчас написание на C для FPGA? Если нет, то почему? Стоит ли мне на данный момент вообще заморачиваться с изучением этой области?

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

ну вот всё что знал рассказал ;)

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


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

Да, так и есть. И учитывая это - трудно понять академии - в универах на последнем году обучения предлагаются предметы програмируемой логики - но везде в основном учат азы VHDL (универы Израиля и те американские о которых я в курсе). Может из-за того что VHDL более строг и систематичен...

 

Мой уневер (UMCP в 2003-2004 гг.) офицально только преподавал Verilog как HDL которым следует пользоватся. Тем не мение, отдельные препод. могли включать VHDL в программу по желанию, но это не было детальное образование, а так, на скорую руку, только что бы что-то постигнуть... Но зато все фирмы выполняющаи госзаказы работают с VHDL, правительство США не признает Verilog не для гражданских, и не на военных заказов. Собственно, VHDL был создан для пользовоня DoD контракторов.

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


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

Мой уневер (UMCP в 2003-2004 гг.) офицально только преподавал Verilog как HDL которым следует пользоватся. Тем не мение, отдельные препод. могли включать VHDL в программу по желанию, но это не было детальное образование, а так, на скорую руку, только что бы что-то постигнуть... Но зато все фирмы выполняющаи госзаказы работают с VHDL, правительство США не признает Verilog не для гражданских, и не на военных заказов. Собственно, VHDL был создан для пользовоня DoD контракторов.

 

Это интересно, не знал. У нас почти везде где проэктируются ASICи - идет Verilog. Наши конторы очень часто и много пересекаются с американскими (много так-же R&D центров американских контор), и везде там Verilog где сталкивались. Хотя не знаком со Штатовксой военкой лично, вполен вероятно они действительно обязаны работать на VHDLe. В плане ASICом я сталкивался только с областью consumer (чипы на рынок мультимедии - digital cameras, DVDs, DVD recorders, и т.д.)

В израильских техн. вузах я пока не встречал курсов HDLя на Verilogе, все что видел - VHDL, но тоже уровень самый базисный. Тоже самое слышал об нескольких Штатовских, думал что это тенденция.

Хотя странно, ежели официальная линиая правительства (в Штатах) на военку/гос-заказы - VHDL, почему-же в универах тогда дают Verilog ? Или одно другого не касается ?

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


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

Это интересно, не знал. У нас почти везде где проэктируются ASICи - идет Verilog. Наши конторы очень часто и много пересекаются с американскими (много так-же R&D центров американских контор), и везде там Verilog где сталкивались. Хотя не знаком со Штатовксой военкой лично, вполен вероятно они действительно обязаны работать на VHDLe. В плане ASICом я сталкивался только с областью consumer (чипы на рынок мультимедии - digital cameras, DVDs, DVD recorders, и т.д.)

В израильских техн. вузах я пока не встречал курсов HDLя на Verilogе, все что видел - VHDL, но тоже уровень самый базисный. Тоже самое слышал об нескольких Штатовских, думал что это тенденция.

Хотя странно, ежели официальная линиая правительства (в Штатах) на военку/гос-заказы - VHDL, почему-же в универах тогда дают Verilog ? Или одно другого не касается ?

Потому что гос-заказы в США - это очень мало, основной объем разработок - коммерческий. Официальным языком программирования для военки США долго была Ada - ну и что, практически никто его не знает.

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


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

Потому что гос-заказы в США - это очень мало, основной объем разработок - коммерческий. Официальным языком программирования для военки США долго была Ada - ну и что, практически никто его не знает.

 

Понял, спасибо, было интерсно узнать.

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


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

Это в общем-то напоминает ситуацию с процессорами лет на 15 раньше. Тогда, в эпоху 286 машин

...

[skiped]

...

Я думаю, что по мере роста ресурсов в FPGA все большая и большая часть проектов будет разрабатываться на SystemC и лишь высокоскоростные блоки будут все также писаться на поведенческом VHDL или Verilog. Такая практика повсеместно используется в разработке програмного обеспечения и дает наилучшее сочетание цена/производительность получаемых решений.

я бы не стал проводить подобных аналогий между десктоп-направлением и встраиваемыми применениями (а уж в проекции на FPGA - высокопроизводительными встраиваемыми системами)

 

в процессорах плата за пользовани ЯВУ - увеличенное время выполнения алгоритма

в ПЛИС - повышенное потребление (докучи к необходимости применения более емкого и дорогого кристалла)

 

в ASIC-проектировании ситуция еще более интересная (в случае рассмотрения возможного использования SC): надо найти компромисс между площадью (т.е. стоимостью) конечного кристалла и временем разработки + опять же существуют свои сферы устройств с критичным энергопотреблением.

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


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

Потому что гос-заказы в США - это очень мало, основной объем разработок - коммерческий. Официальным языком программирования для военки США долго была Ada - ну и что, практически никто его не знает.

 

Я знаю :biggrin: . Первая работа послала на курс Ada-95, у нас все софт что выше network и link layer (в т.ч. все чего косается пользователь) должно было быть на Ada. И не какая нибудь супер-секретноя работа, а заурядня гражданская контора... Просто кому-то хотелось иметь Mil-Spec, и почему-то не нравилось C/C++. Я от туда смотался после 2 лет, но слышал от знакомых что теперь все переписывают на Java :cranky: .

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


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

я бы не стал проводить подобных аналогий между десктоп-направлением и встраиваемыми применениями (а уж в проекции на FPGA - высокопроизводительными встраиваемыми системами) в процессорах плата за пользовани ЯВУ - увеличенное время выполнения алгоритмав ПЛИС - повышенное потребление (докучи к необходимости применения более емкого и дорогого кристалла)в ASIC-проектировании ситуция еще более интересная (в случае рассмотрения возможного использования SC): надо найти компромисс между площадью (т.е. стоимостью) конечного кристалла и временем разработки + опять же существуют свои сферы устройств с критичным энергопотреблением.
Угу, так потому я и сказал о дальнейшем развитии технологий FPGA до той степени, когда 10-20 тысяч макроячеек - типа современных альтеровский ALUT'ов будут раздаваться в качестве бонуса к основному объему самой FPGA :) Согласен, это время наступит очень не скоро, но оно обязательно придет. Все ведь дело в соотношении стоимости чипа ко времени программиста его проектирующего :)

 

C точки зрения временного или пространственного разворота цикла - так это тоже не проблема. Компилятор будущего :) сам примет решение как его развернуть и сгенерит код, который будет давать абсолютно четкий детерминированный результат согласно спецификации языка. Для примера, Intel C++ компилятор версии 6.0 при компиляции исходников для P4 Northwood заменял некоторые операции умножения несколькими операциями сложения - чем не пример пространственного vs временного разворота цикла?

 

 

Еще. По роду занятий пришлось немного пооптимизировать на Ассемблере для старших x86 - презанимательнейшее занятие. Как оказалось, каждая команда имеет свое время обновления результатов, их можно спаривать - тогда они выполняются одновременно, если попытаться использовать результат выполнения команды слишком рано, то процессор останавливается и ждет готовности операндов команды, а может запустить другие независимые команды из очереди. Короче, компилятор постоянно решает задачи планирования, подобные временной vs пространственный разворот. И весьма успешно.

 

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

 

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

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


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

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

ага - и на марсе скоро будут яблони цвести. конечно когда-нибудь всё у всех будет. да и в принципе языки программирования отомрут - компиляторы будут непосредственно читать гениальные мысли разработчика прям из мозга - по электромагнитным показаниям его активность ;)

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


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

ага - и на марсе скоро будут яблони цвести. конечно когда-нибудь всё у всех будет. да и в принципе языки программирования отомрут - компиляторы будут непосредственно читать гениальные мысли разработчика прям из мозга - по электромагнитным показаниям его активность ;)

+1

Вот помечтали о следующем веке...

 

Думаю, ресурсами одной компании сделать нормальный синтезатор с языка С задача как минимум 5-10 лет.

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


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

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

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

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

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

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

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

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

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

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