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

Похоже SystemC начинает понемногу теснить зубров (VHDL,Verilog)!

Может кто нибудь из гуру поработавших со всема 3-мя "языками" скажет свое веское слово? Есть у системС будущее в плане разработки синтезируемых систем или зубры не сдадутся! Я просто новичок в этой области, начал разбираться с VHDL и SystemC? Модельку микропроцессора начал планировать, а тут СистемС как черт из табакерки! Стоит с ним возиться если в перспективе модель предполагается привести к синтезируемому виду? Или лучше на старом добром VHDL?

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


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

тут уже была тема по поводу SystemC , правда она загнулась.

Лично мое мнение SystemC займет свою нишу и будет ПОТИХОНЬКУ теснить verilog и vhdl. На данный момент все плюсы языка (если такие имеются) сводит на нет один факт-отсутсвие эффективного синтезатора. Единственный синтезатор-Синопсисивский SystemC компайлер (вроде сейчас встраивается в DC). К сожалению нет достаточного времени для глубокого изучения языка. Хотелось бы конечно попробовать помоделировать процессор+софт+память+логика на уровне транзакций. После этого можно будет сделать соответсвующие выводы.

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


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

тут уже была тема по поводу SystemC , правда она загнулась.

Лично мое мнение SystemC займет свою нишу и будет ПОТИХОНЬКУ теснить verilog и vhdl. На данный момент все плюсы языка (если такие имеются) сводит на нет один факт-отсутсвие эффективного синтезатора.  Единственный синтезатор-Синопсисивский SystemC компайлер (вроде сейчас встраивается в DC). К сожалению нет достаточного времени для глубокого изучения языка. Хотелось бы конечно попробовать помоделировать процессор+софт+память+логика на уровне транзакций. После этого можно будет сделать соответсвующие выводы.

 

 

Господа! Не надо скрещивать коня и трепетную лань! Тот, кто хотя бы раз в жизни отлаживал и оптимизировал проект, сопоставимый по сложности с RISC-процессором, никогда не согласится с выводом, что алгоритмическая модель может также запросто быть синтезирована в netlist, обладая теми же параметрами по производительности, площади, и т.п. SystemC - это библиотека C++ классов, позволяющая АЛГОРИТМИЧЕСКИ моделировать оборудование, строить поведенческую модель кристалла, и т.п. Если уж говорить о языках, теснящих VHDL/Verilog, то здесь на первом месте - SystemVerilog. По стандарту Accelera, он перекрывает как RTL-дизайн, так и высокоуровневую верификацию и, что проистекает из предыдущего, системное моделирование. Обращайте внимание на этот язык, если хотите идти в ногу со временем. SystemC - тоже применяется, но уж никак не для RTL-синтеза. Поверьте, знаю о чем говорю.

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


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

Полностью поддерживаю данное мнение, единственное что плохо в System Verilog - пока не полная поддержка инструментами.

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


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

А как же понимать An Introduction to System Level Modeling in SystemC 2.0 в котором заявляют что "SystemC 1.0 provides a set of modeling constructs that are similar to those used for RTL and behavioral modeling within an HDL such as Verilog or VHDL"? Тут реч не только о поведенческом моделировании. Если можно описывать RTL то почему невозможен синтез?

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


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

А где можно подробнее прочитать о System Verilog? И какие есть инструменты для работы с ним ? И что говорят о нем такие монстры как Synopsys, Mentor и др.? А то ведь без солидной комерческой поддержки красивый проект так и останется красивым проектом.

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


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

А где можно подробнее прочитать о System Verilog?  И какие есть инструменты для работы с ним ? И что говорят о нем такие монстры как Synopsys, Mentor и др.? А то ведь без солидной комерческой поддержки красивый проект так и останется красивым проектом.

 

Synopsys VCS 7.1 его поддерживает (одна беда, продукция этой уважаемой компании сплошь и рядом UNIX-based, плюс драконовская система лицензирования). ModelSim 6.0 - тоже поддерживает SystemVerilog. В ответе господина AOSP была одна неточность, плавно переходящая в точное замечание по поводу того, что стандарт-то прямо-таки золотой, а вот subset языка, поддерживаемый каждым конкретным инструментом - не полный. У всех без исключения имевшихся в моем распоряжении САПРов один огромный недостаток - они напрочь не поддерживают ООП в SystemVerilog, там самым срезая огромный функциональный пласт, полезный при разработке верификационных сред. До тех пор, пока разработчики САПР не реализуют 100% стандарта Accelera на этот язык в своих системах, он мало отличается от Verilog 2001 (и, следовательно, VHDL по функциональности). Печально!

 

По SV можно скачать LRM (Language Reference Manual) v3.1а с сайта www.accelera.org, если не ошибаюсь. Книги в природе существуют ("SystemVerilog for Design"

by Stuart Sutherland, Simon Davidmann, and Peter Flake. Copyright 2003,

Springer, Norwell, MA, USA, ISBN: 0-4020-7530-8), но их у меня нет. Разрозненные материалы есть в интернете. У меня лежат несколько статей. В принципе, могу залить на FTP.

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


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

А как же понимать An Introduction to System Level Modeling in SystemC 2.0 в котором заявляют что "SystemC 1.0 provides a set of modeling constructs that are similar to those used for RTL and behavioral modeling within an HDL such as Verilog or VHDL"? Тут реч не только о поведенческом моделировании. Если можно описывать RTL то почему невозможен синтез?

 

 

Ответ содержится в Вашем вопросе многократно. Modeling constructs. Вдумайтесь в смысл этих слов. Любой язык HDL - это прежде всего язык моделирования оборудования, а не синтеза RTL. Множество конструкций этих языков не синтезируемы в принципе. C++(как и SystemC) - прекрасно справится с моделированием, но он изначально не cycle-accurate, не имеет "синтезируемого подмножества" и аппаратных аналогов. Яркий пример. Вам нужно разместить в Вашем проекте память. Любой производитель FPGA/ASIC скажет Вам в документации, что для моделирования Вы можете использовать HDL-модель какого-нибудь FIFO, а вот для синтеза - пожалуйста вставьте готовое ядро, поскольку поведенчески описанная память грамтно в архитектуре кристалла не может быть создана по объетивным причинам. На этом уровне Вы не имеете представления об организации железа. Не являюсь спецом в SystemC настолько, чтобы свободно охаивать или поддерживать его, но думаю, что на HDL задача решается быстрее, проще и эффективнее. Если не прав - готов принять критику... :)

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


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

Ответ содержится в Вашем вопросе многократно. Modeling constructs.

C++(как и SystemC) - прекрасно справится с моделированием, но он изначально не cycle-accurate, не имеет "синтезируемого подмножества" и аппаратных аналогов.

Я хотел обратить внимание на "SIMILAR to those used for RTL and behavioral modeling within an HDL such as Verilog or VHDL". :D

Я читал что конципция дельта циклов в сиС аналогична VHDL. Мне казалось этого достаточно чтобы cycle-accurate описать модель? :blink:

Не вижу в чем состоит проблема выделения синтезируемого подмножества?

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


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

Ответ содержится в Вашем вопросе многократно. Modeling constructs.

C++(как и SystemC) - прекрасно справится с моделированием, но он изначально не cycle-accurate, не имеет "синтезируемого подмножества" и аппаратных аналогов.

Я хотел обратить внимание на "SIMILAR to those used for RTL and behavioral modeling within an HDL such as Verilog or VHDL". :D

Я читал что конципция дельта циклов в сиС аналогична VHDL. Мне казалось этого достаточно чтобы cycle-accurate описать модель? :blink:

Не вижу в чем состоит проблема выделения синтезируемого подмножества?

 

С++ и аппаратный дизайн - пока трудносовместимые вещи. Сама по себе SystemC - это библиотека классов, но не язык. С++ в комплексе с SystemC, SCV или TestBuilder от Cadence - все ж таки средство моделирования. Я никоим образом не настаиваю на выводе, что их в приниципе нельзя применить к синтезу netlist'а. "Может быть вы и правы. Может быть все и получится... (H. Ripley, "Aliens")... :)

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


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

С++ и аппаратный дизайн - пока трудносовместимые вещи.

А в чем собственно заключается проблема совмещения С++ и аппаратного дизайна, языка и процесса разработки? С++ как язык позволяет описывать сколь угодно сложные конструкции.

Когда я начинал разбираться с VHDL мне показалось что даже как-то не хватает объектного подхода. А С++ не обязывает использовать ОО но предоставляет все средства для этого.

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


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

Сама по себе SystemC - это библиотека классов, но не язык.

Если говорить о языках, любая библиотека - суть метаязык. И как я слышал, например, в моделсиме системС технически рассматривается как язык. Или я не прав?

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


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

Полагаю, что дискуссия плавно перетекает в извечный спор между hardware и software designers. Не далее как полчаса назад подходит ко мне коллега и говорит: "Проектирую ACTEL, имею в распоряжении 128 триггеров, пишу самый жестко оптимизированный RTL VHDL-код, а после синтеза проект занимает 129 триггеров. Если б не извращался с оптимизацией - давно бы вогнал его в кристалл, а так - придется повозиться..." К сведению, человек уже 15 лет проектирует FPGA Xilinx, Actel. Работал на проектах МАРС, ФОБОС... Для NASA и Европейского Космического Агентства. Не новичок, короче. А вот теперь скажите мне, пожалуйста, как, описывая проект на SystemC, С++, чем угодно, кроме HDL, выторговать у синтезатора тот самый один триггер, зная, что написанный код уже близок к оптимизированному netlist'у. Хоть убейте - не верю, что это возможно! Я остаюсь при своем мнении. Хотя и уважаю противоположную точку зрения.

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


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

А вот теперь скажите мне, пожалуйста, как, описывая проект на SystemC, С++, чем угодно, кроме HDL, выторговать у синтезатора тот самый один триггер...

Никоим образом не хочу вас обидеть или перевести дискуссию в русло "кто круче прогер или схемник?" :a14:

Хочу лишь заметить что вы смешиваете понятия «язык» и «средство разработки»(здесь синтезатор). Отсутствие гибких средств разработки для столь молодого языка еще ничего не значит. И изначально вопрос был о перспективах системС как HDL по вашему мнению.

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


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

Стянул я с accelera описание SystemVerilog (спасибо oleg_rudakov, ссылка - http://www.eda.org/sv/SystemVerilog_3.1_final.pdf). Начал читать. Первое впечатление - попытка расширить Verilog до уровня VHDL (и даже переплюнуть) в плане моделирования сложных систем.

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


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

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

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

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

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

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

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

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

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

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