|
Что лучше под Altera VHDL vs AHDL |
|
|
|
Aug 24 2004, 16:15
|

Эсквайр
    
Группа: Почетный участник
Сообщений: 1 013
Регистрация: 19-06-04
Из: • ℮lectronﭑχ •
Пользователь №: 62

|
Лучше всего ПРЯМЫЕ РУКИ. Я серьезно, выяснено на личном опыте.
Знаю людей, пишущих на AHDL, Verilog, VHDL (сам) и рисующих в графике. Конечный результат в итоге зависит от опыта проектировщика как с точки зрения схемотехники, так и с точки зрения правильного применения конструкций языка. При использовании языков высокого уровня (VHDL, Verilog) следует придерживаться рекомендациям Altera для получения синтезабельных схем (описано в мануале по Quartus, "Design Guidelines / Coding Styles"). Существенно сильного различия при использовании разных языков не вижу: грамотно описанная схема дает примерно одинаковые результаты синтеза (особенно хорошо просматривается при синтезе "кирпичиков": триггеров, счетчиков, регистров - а из них в основном все цифровые синхронные схемы и состоят).
Хотя у Altera HDL есть один существенный недостаток: годится только под ПЛИС Altera, что ограничивает потенциальную ценность проектировщика с точки зрения работодателя :angry:
--------------------
Кто ищет, тот всегда найдет
|
|
|
|
|
Aug 27 2004, 05:47
|
Местный
  
Группа: Свой
Сообщений: 459
Регистрация: 15-07-04
Из: g.Penza
Пользователь №: 326

|
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 ?
|
|
|
|
|
Aug 27 2004, 09:19
|
Частый гость
 
Группа: Свой
Сообщений: 168
Регистрация: 6-07-04
Пользователь №: 266

|
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...
|
|
|
|
|
Aug 27 2004, 10:14
|
Местный
  
Группа: Свой
Сообщений: 459
Регистрация: 15-07-04
Из: g.Penza
Пользователь №: 326

|
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.
|
|
|
|
|
Sep 2 2004, 14:00
|
Группа: Свой
Сообщений: 14
Регистрация: 23-07-04
Пользователь №: 360

|
Начинал со схематики, потом постепенно начал уходить на VHDL и Verilog. За счет этого съэкономил кучу времени при разработке контроллера LCD. Потом встала задача сделать мультиплексор для ИКМ и столкнулся с весьма ограниченной реализацией компилятора VHDL в MAX, перешел в Qvartus, но и там были ограниченния по работе с векторами. Пришлось уйти в AHDL там все получилось. Так, что если работать в средах разработки от Alter-ы, то в случае работы с массивами, матрицами удобнее использовать AHDL, программа получается компактной и читаемой.
|
|
|
|
|
Feb 4 2005, 10:58
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 2-02-05
Пользователь №: 2 385

|
Цитата(Digi @ Aug 24 2004, 18:02) Что лучше под Altera VHDL или AHDL ? И чем ? AHDL намного проще и удобнее, если работать только с Alterой, то VHDL и осваивать бы не стал. Кстати схемный ввод там по началу тоже транслируется в AHDL.
|
|
|
|
|
Feb 4 2005, 18:27
|
Участник

Группа: Свой
Сообщений: 46
Регистрация: 7-08-04
Пользователь №: 464

|
Цитата Лучше всего ПРЯМЫЕ РУКИ. Я серьезно, выяснено на личном опыте. А еще свежая голова. А так - Altera все больше тянется к Verilog и VHDL - примеры на сайте все больше на них (или в графике - нагляднее для начинающих).
|
|
|
|
|
Feb 18 2005, 10:38
|
Участник

Группа: Свой
Сообщений: 29
Регистрация: 19-01-05
Пользователь №: 2 052

|
Цитата(alt @ Sep 2 2004, 21:00) Начинал со схематики, потом постепенно начал уходить на VHDL и Verilog. За счет этого съэкономил кучу времени при разработке контроллера LCD. ... Начинал с Abel3/4 - текстоый ввод, затем Max+. Использование простого и компактного языка делает разработку быстрой и легко модифицируемой. +Проверка первичная простая - путём перепрочтения коротких программ !  )) Тч VHDL лет восемь (непрерывно работая с AHDL) рассматриваю только как голубую познавательную мечту, реально не написав ни строчки. Плюс больше молюсь ресурсам/стоимости плис и качеству компиляции ( разводка сильно сказывается при увеличении частоты и количестве ячеек ). А язык готов использовать любой...
|
|
|
|
|
Feb 18 2005, 11:08
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 8-09-04
Из: Таганрог
Пользователь №: 617

|
Полностью согласен на счет "ПРЯМЫХ РУК". Разберитесь сначала чего Вы хотите достичь - познать VHDL, создать за короткое время реально боль менее оптимальный проект, еще что-то? От ответа на этот вопрос зависит правильность сделанного выбора. Позволю лишь заметить из личного опыта - если хочется сделать оптимально по объему схему в кристале лучше использовать родные Altera Megafunctions - наиболее простой и доступный способ, лучше чем у них уложить в кристал базовый узел врят-ли удастя (тут понятно, почему схематик forever). Я начинал стандартно - схематик, AHDL, VHDL(очень недолго), Verilog. Схематиком пользуюсь как и многие для создания верхнего уровня проекта, imho наиболее просто, нагяладно и удобно. Да для AHDL в есть галочка - использовать LPM для AHDL опреаторов, реально неплохо работает.
|
|
|
|
|
Feb 18 2005, 19:15
|
Участник

Группа: Свой
Сообщений: 46
Регистрация: 7-08-04
Пользователь №: 464

|
Цитата Схематиком пользуюсь как и многие для создания верхнего уровня проекта, imho наиболее просто, нагяладно и удобно. Полностью поддерживаю. Цитата если хочется сделать оптимально по объему схему в кристале лучше использовать родные Altera Megafunctions - наиболее простой и доступный способ, лучше чем у них уложить в кристал базовый узел врят-ли удастя LPM-ки можно использовать из любого языка(AHDL, VHDL, Verilog), правда из VHDL вызывать их несколько более геморройно (IMHO). Кстати, LPM мегафункции пока еще описаны на AHDL, а вот новые Мегакорки от Altera - уже на VHDL (раньше были на AHDL) - тенденция однако.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|