Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Что лучше под Altera VHDL vs AHDL
Форум разработчиков электроники ELECTRONIX.ru > > Опросы - ПЛИС
Digi
Что лучше под Altera VHDL или AHDL ? И чем ?
Esquire
Лучше всего ПРЯМЫЕ РУКИ. Я серьезно, выяснено на личном опыте.

Знаю людей, пишущих на AHDL, Verilog, VHDL (сам) и рисующих в графике. Конечный результат в итоге зависит от опыта проектировщика как с точки зрения схемотехники, так и с точки зрения правильного применения конструкций языка. При использовании языков высокого уровня (VHDL, Verilog) следует придерживаться рекомендациям Altera для получения синтезабельных схем (описано в мануале по Quartus, "Design Guidelines / Coding Styles"). Существенно сильного различия при использовании разных языков не вижу: грамотно описанная схема дает примерно одинаковые результаты синтеза (особенно хорошо просматривается при синтезе "кирпичиков": триггеров, счетчиков, регистров - а из них в основном все цифровые синхронные схемы и состоят).

Хотя у Altera HDL есть один существенный недостаток: годится только под ПЛИС Altera, что ограничивает потенциальную ценность проектировщика с точки зрения работодателя :angry:
LeonY
А что лучше под соленые огурчики Водка vs Сладкий Чай
grumbler
если ALTERA в серьёз и надолго - AHDL. Язык сочетает возможности языка высокого и низкого уровня. Цена- не переносимость проекта без существенной переработки. Особенно приятен AHDL для маленьких проектов на CPLD.
cms
Давно пишу на VHDL и также давно мечтаю снова вернуться на AHDL или дождаться SysytemC.

VHDL - громоздкий и неудобный язык. Если за плечами только схематик, то его неудобство может и не так бросается в глаза, но после C и AHDL кропаешь на VHDL непрерывно матерясь.

В VHDL нет блочных комментариев!
В VHDL нет include-файлов! В архитектуре верхнего блока приходиться тупо копировать все интерфейсы пользуемых компонентов.
В VHDL нет DEFINEов!
В VHDL чтобы описать dffe надо громоздить конструкцию вида

process(clk, rstn)
begin
if (rstn='0') then
d_out <='0';
elsif rising_edge(clk) then
if ena='1' then
d_out <= d_in;
end if;
end if;
end process;

Нет четкого деления на синтезируемое и не синтезируемое подмножество - в результате первые пол-года обучения непрерывно обламываешся с очевидными конструкциями... Короче, продолжать можно долго.

P.S. На счет ограниченности AHDL одной Альтерой - у Хilinx есть утилитка ahdl2vhdl, с помощью которой SM из конфы на telesys.ru умудряется на AHDL писать даже ASICи.
jeka
Дык можно же использовать препроцессор. И будет возможность и инклюды и определения и макросы и комментарии и все что душе угодно создавать. Например, M4. Он умеет все что хочешь, есть даже свой язык программирования препроцессора.
ASN
cms
Ну зра Вы так на VHDL.
1. - Блочные коментарии - вообще-то, IMHO, бяка. Они не нужны. В редакторе ActiveHDL есть волшебная комбинация Ctrl-K, которая закомментирует весь блок. Подобное есть и в других редакторах.
2. - Много сред поддерживает автоматическую генерацию component из рабочей библиотеки, не надо вручную их забивать ! Бр-р-р.
3. - Define в большинстве случаев, IMHO, заменяется type и constant в пакете.
4. - Не надо делать на VHDL dffe так. Проще создать компонент и instant его. А все сигналы сгруппировать в record и передовать его в список чувствительности процесса, очень удобно. В Verilog 2001 уже ввели нечто подобное (типа символа * в always).
А вот с тем, что не плохо бы обрезать жирок с длинных служебных слов, и описателей процедур я согласен. То что, можно выразить проще в VHDL излишне многословно.
Кстати, кто-нибудь работал с foreign или VHPI? Нужно ввести данные с одного из аппаратных интерфейсов (типа драйвера UARTа). Или кто подскажет линк на хороший учебник по PLI ?
cms
To jeka & ASN:

Господа, не путайте язык и доп. инструменты, которые приходится изобретать, чтобы выправить калечности этого языка. Все что Вы описали - это костыли, которые ВЫНУЖДЕННО приходится применять. Я говорил о деффектах ЯЗЫКА - и вы все их подтвердили, указав на то, что они действительно важны и показали, как люди извращаются, надстраивая недостающую функиональность.

Перефразируя jeka: хочешь нормально работать на VHDL - пиши свой макроязык, собирай инструмент для его компиляции и тогда наступит тебе счастье. Вывод: в первичном виде VHDL для жизни слабо пригоден. Что и требовалось доказать.

ASN:
1. Почему блочные коментарии - бяка? И что делать если я не пользую ActiveHDL?
2. Компоненты-то они генерят, но если я исправляю интерфейс компоненты, никто не станет мне переправлять автоматически её декларации по всем проектам. И вместо того, чтобы исправить один раз в инклюднике, я должен ползать по всем архитектурам, где она декларируется.
3. А вот нефига. Покажите-ка как type и constant можно сделать, например, такую вещь:

ENTITY e
PORT(
clk, rstn : in std_logic;
data : in std_logic_vector(..);
q : out std_logic_vector(..);

#ifdef DEBUG then

debug_out : out std_logic;

#end
);

4. Насчет dffe: мы с вами читали разные книжки. В моих книжках радостно сообщалось, что VHDL - высокоуровневый язык, там все так абстрактно и красиво, синтезатор все понимает и облегчает жизнь. А то что предлагаете вы - это тот же схематик или AHDL - берется библиотечный компонент и ставиться вручную. Где счастье?

И на последок - меня убивает нерегулярность и непонятность использования разделителей и синтаксических конструкций - в одном случае это ; в другом , в третьем - вообще ничего. Здесь end component, здесь end name...
ASN
cms
1.Вот ведь, что интересно, в ассемблере нет блочных комментариев, и ничего - используют люди. Да и в чистом С их тоже не было (года,IMHO, едак до 99). Это уж Вы, уважаемые, путаете язык и средство разработки. Блочные комментарии позволяют быстро отключить что-то на период отладки. В release они не нужны.
2. Если Вы меняете интерфейс, уж будьте добры, исправить всё ручками потому, что изменяете "условия контракта" с модулем, которые делает , возможно, вообще другой человек. И на это надо обратить внимание.
3. Для кода внутри ENTITY использую что-то вроде этого:
constant DEBUG : boolean:=TRUE;
signal a,b : std_logic;
...
DEB_GEN_XX:if DEBUG generate
a<=b;
end generate;
А для изменения интерфейса добавляю(удаляю) сигналы в record'е:
type In_ADC_type is record
Clk : std_logic;
Data: std_logic_vector(..);
end record;
type Out_ADC_type is record
Data: std_logic_vector(..);
end record;
entity is
port(
In_Sig: in In_ADC_type;
Out_Sig: out Our_ADC_Type);
end entity;
А там крути-верти что хочешь.
4. VHDL поддерживает разные стили. Этим он и силен. Хочешь пиши в поведенческом и полагайся на синтезатор, хочешь забивай детальную структуру. Я, например, так и делаю. Сначала всё в record, потом, если не влазаю - оптимизирую вручную через instant.
alt
Начинал со схематики, потом постепенно начал уходить на VHDL и Verilog.
За счет этого съэкономил кучу времени при разработке контроллера LCD.
Потом встала задача сделать мультиплексор для ИКМ и столкнулся с весьма ограниченной реализацией компилятора VHDL в MAX, перешел в Qvartus, но и там были ограниченния по работе с векторами.
Пришлось уйти в AHDL там все получилось.
Так, что если работать в средах разработки от Alter-ы, то в случае работы с массивами, матрицами удобнее использовать AHDL, программа получается компактной и читаемой.
berberber
Цитата(Digi @ Aug 24 2004, 18:02)
Что лучше под Altera VHDL или AHDL ? И чем ?
*


AHDL намного проще и удобнее, если работать только с Alterой, то VHDL и осваивать бы не стал. Кстати схемный ввод там по началу тоже транслируется в AHDL.
vovic
Цитата
Лучше всего ПРЯМЫЕ РУКИ. Я серьезно, выяснено на личном опыте.
a14.gif
А еще свежая голова. А так - Altera все больше тянется к Verilog и VHDL - примеры на сайте все больше на них (или в графике - нагляднее для начинающих).
rustelcom
Цитата(alt @ Sep 2 2004, 21:00)
Начинал со схематики, потом постепенно начал уходить на VHDL и Verilog.
За счет этого съэкономил кучу времени при разработке контроллера LCD.
...
*


Начинал с Abel3/4 - текстоый ввод, затем Max+. Использование простого и компактного языка делает разработку быстрой и легко модифицируемой. +Проверка первичная простая - путём перепрочтения коротких программ ! smile.gif)) Тч VHDL лет восемь (непрерывно работая с AHDL) рассматриваю только как голубую познавательную мечту, реально не написав ни строчки.
Плюс больше молюсь ресурсам/стоимости плис и качеству компиляции ( разводка сильно сказывается при увеличении частоты и количестве ячеек ). А язык готов использовать любой...
cdg
Полностью согласен на счет "ПРЯМЫХ РУК". Разберитесь сначала чего Вы хотите достичь - познать VHDL, создать за короткое время реально боль менее оптимальный проект, еще что-то? От ответа на этот вопрос зависит правильность сделанного выбора. Позволю лишь заметить из личного опыта - если хочется сделать оптимально по объему схему в кристале лучше использовать родные Altera Megafunctions - наиболее простой и доступный способ, лучше чем у них уложить в кристал базовый узел врят-ли удастя (тут понятно, почему схематик forever). Я начинал стандартно - схематик, AHDL, VHDL(очень недолго), Verilog. Схематиком пользуюсь как и многие для создания верхнего уровня проекта, imho наиболее просто, нагяладно и удобно. Да для AHDL в есть галочка - использовать LPM для AHDL опреаторов, реально неплохо работает.
vovic
Цитата
Схематиком пользуюсь как и многие для создания верхнего уровня проекта, imho наиболее просто, нагяладно и удобно.

Полностью поддерживаю.

Цитата
если хочется сделать оптимально по объему схему в кристале лучше использовать родные Altera Megafunctions - наиболее простой и доступный способ, лучше чем у них уложить в кристал базовый узел врят-ли удастя

LPM-ки можно использовать из любого языка(AHDL, VHDL, Verilog), правда из VHDL вызывать их несколько более геморройно (IMHO). Кстати, LPM мегафункции пока еще описаны на AHDL, а вот новые Мегакорки от Altera - уже на VHDL (раньше были на AHDL) - тенденция однако.
belena7
Glavnoe cel', sredstvo komu kakoe nravit'sya. Esli vi delaete real'niy proekt i stremites' k krasote i kompaktnosti koda(xotya eto lu4she vsegda), to vasha cel' vusual'noe udoletvorenie ot proekta. Esli vse je jelatel'no 4tobi device rabotal i bil prognoziruemim, ponimaemim i pod VASHEI vlast'yu, to smotret' na sredstva realizacii proekta nado kak na opisanie konkretnoi logi4eskoi circuit a ne kak na yazik kakogo to urovnya. VHDL mojet bit' samogo 4to ni na est' nizkogo podlogo urovnya esli vbl predstavlyaete 4ego snim delaet compilator. A LPM i CoreGen eto kone4no je 4rezvbl4aino polezno(LPM po mne tak gorazdo udobnee) Li4no mne tak kaatsya
GPP
Начинал со схематики, потом постепенно начал изучать VHDL
rv3dll(lex)
про прямые и кривые руки это правильно)))

ahdl язык платформо зависимый - изза этого на нем сложнее написать глупость

vhdl универсальный и не зная внутреннего устройства плис глупость написать можно в первой же строке
Kactus
Начинал с AHDL, в принципе остаюсь приверженцем его, однако один проект пришлось переделывать на VHDL, столкнулся с интересной вещью функционально одинаковые проекты (EP2C20... загружен процентов на 80..90), изначально написанный на AHDL, переведённый на VHDL после компиляции получился примерно на 10% меньше. Парадокс...
sergtsa
начинал в max plus (помоему )altera
до этого делал схемы на логике, потому и мыслил моделью тригера.
долго не хотел переходить на VHDL. соревновались по написанию компактного кода.
AHDL всегда выигрывал ;-)

но приходиться читать исходники altera, там почти все было на VHDL .

втянулся . теперь даже не помню как это на AHDL.
уже оперируешь другими моделями в голове.

теперь перехожу на Verilog.по той же причине. надо читать исходники альтеры.

пока не решил что лучше VHDL или Verilog.

а так писать удобней писать на языке который лучше знаешь.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.