Jump to content

    

Портирование кода C/C++ на HDL

Recommended Posts

warrior-2001
... там же есть и библиографический список диссертации.

 

Если не затруднит - скиньте сюда по возможности. Будет интересно просмотреть полный список литературы.

Share this post


Link to post
Share on other sites

des00
Занимался этим вопросом в магистратуре.

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

 

Share this post


Link to post
Share on other sites

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

Вряд ли. Я не вру:) Обычно.

Может быть писал, что по ТЗ такой надо сделать. Хотя нет, все сообщения свои просмотрел, не писал такого. Полтора года назад я интересовался перспективными направлениями написания магистерской диссертации.

 

Библиографический список немного позже выложу, копии с собой нет, а дома буду к началу июля.

Share this post


Link to post
Share on other sites

xvr

Ближе всего к C->HDL приблизился BlueSpecVerilog в его части описания State Machine

 

(Раздел С8 в стандарте BSV, если не ошибаюсь)

 

Share this post


Link to post
Share on other sites

avers

C to HDL это конечно замечательная идея, но плохо реализуемая. Вот SystemC to HDL эта трансляция более жизнеспособна, но опять же код на C приходится писать определенным способом, что за частую очень не выгодно.

Подобные трансляции могут быть выгодны когда у вас проект на плис и очень-очень сжатые сроки, в этом случае данный прием оправдан.

Share this post


Link to post
Share on other sites

dxp
Вот SystemC to HDL эта трансляция более жизнеспособна, но опять же код на C приходится писать определенным способом, что за частую очень не выгодно.

Профит в том, что описание на SystemC компилируется сразу в нативно исполняемый файл (для симуляции), и скорость работы такой реализации значительно выше, чем это получается на виртуальных машинах Verilog/VHDL симуляторов. Ну, и второе (а может и первое) - SystemC - это всё-таки настоящий С++ со всеми его классами, шаблонами, могучими библиотеками, и писать код на нём поприятнее, чем даже на SystemVerilog'е, где, например, классы являются несинтезируемыми. И для добавления какой-нибудь фичи достаточно написать соответствующий код, а не ждать, когда Комитет включит желаемую фичу в Стандарт и производители инструментария сделают поддержку этого в своих САПРах.

 

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

Share this post


Link to post
Share on other sites

avers
Профит в том, что описание на SystemC компилируется сразу в нативно исполняемый файл (для симуляции), и скорость работы такой реализации значительно выше, чем это получается на виртуальных машинах Verilog/VHDL симуляторов. Ну, и второе (а может и первое) - SystemC - это всё-таки настоящий С++ со всеми его классами, шаблонами, могучими библиотеками, и писать код на нём поприятнее, чем даже на SystemVerilog'е, где, например, классы являются несинтезируемыми. И для добавления какой-нибудь фичи достаточно написать соответствующий код, а не ждать, когда Комитет включит желаемую фичу в Стандарт и производители инструментария сделают поддержку этого в своих САПРах.

 

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

 

Я Вам честно скажу, все основные производители софта Cadence, Synopsys, Mentor не прекращали развивать SystemC, даже более того у каждого из них есть свой транслятор С языка в RTL.

Это наиболее динамично развивающееся направление на данный момент! Посмотрите как изменился за последние пару лет C to Silicon Compiler, небольшие проекты на FPGA на нем можно спокойно сделать, не прибегая к Verilog'у, да он скомпилирует код не так оптимально, как могло бы быть, площадь занятая в FPGA будет больше на 10-25% больше, но сроки исполнения проекта уменьшатся в разы!

Edited by avers

Share this post


Link to post
Share on other sites

dxp
Я Вам честно скажу, все основные производители софта Cadence, Synopsys, Mentor не прекращали развивать SystemC, даже более того у каждого из них есть свой транслятор С языка в RTL.

Это наиболее динамично развивающееся направление на данный момент! Посмотрите как изменился за последние пару лет C to Silicon Compiler, небольшие проекты на FPGA на нем можно спокойно сделать, не прибегая к Verilog'у, да он скомпилирует код не так оптимально, как могло бы быть, площадь занятая в FPGA будет больше на 10-25% больше, но сроки исполнения проекта уменьшатся в разы!

Речь шла не о С->HDL, а конкретно о SystemC. Был у Synopsys синтезатор CoCentric, где он сейчас? То, что есть какие-то частные инструменты С->HDL, это положения не меняет - частное решение, оно частным и остаётся. Ни совместимости, ни переносимости. SystemC же - это реальный широкораспространённый С++, с его возможностями не сравнится ни один С-HDL'ный язык ни по поддержке разнообразнейшими библиотеками (для написания тестбенчей всё идёт в ход), ни по количеству литературы, ни по числу квалифицированных специалистов, ни по качеству (и количеству) компиляторов. Все эти С-языки - они точно так же генерят промежуточный код для выполнения его на виртуальной машине симулятора, поэтому симулятор нужен - производители симуляторов ничего против не имеют.

 

А вот с SystemC в плане синтеза всё не очень хорошо. Поэтому для моделирования-то он годится, а вот что дальше делать - вопрос. Справедливости ради надо отметить, что в Mentor Catapult, вроде бы, некоторое время назад вернули поддержку SystemC, но на каком она там уровне, не знаю. В любом случае SC в плане синтеза сейчас в зачаточном состоянии.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.