реклама на сайте
подробности

 
 
> VHDL в QUARTUS для очень начинающего, VHDL в QUARTUS для очень начинающего
_Ie0nid
сообщение Aug 18 2010, 03:25
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 20-09-08
Пользователь №: 40 344



Здравствуйте. Совсем отчаялся разобраться в этом языке. Сколько есть у меня книжек, все не дают достаточного понимания в программировании VHDL. Помогите пожалуйста разобраться на простых примерах. Например на AHDL можно составить элемент написав таблицу истинности, покажите как это сделать на VHDL. Желательно в quartus, чтобы не добавлять в мое незнание дополнительных переменных.
Может у кого любимые книжки по этой теме, я буду только благодарен.
Заранее спасибо.

Сообщение отредактировал _Ie0nid - Aug 18 2010, 03:26
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 18)
Methane
сообщение Aug 18 2010, 03:58
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(_Ie0nid @ Aug 18 2010, 06:25) *
Здравствуйте. Совсем отчаялся разобраться в этом языке. Сколько есть у меня книжек, все не дают достаточного понимания в программировании VHDL. Помогите пожалуйста разобраться на простых примерах. Например на AHDL можно составить элемент написав таблицу истинности, покажите как это сделать на VHDL. Желательно в quartus, чтобы не добавлять в мое незнание дополнительных переменных.
Может у кого любимые книжки по этой теме, я буду только благодарен.
Заранее спасибо.

Просто в гугле все ищется.
http://en.wikipedia.org/wiki/VHDL
Создать элемент, написав таблицу истинности, можно через case, но какой-то подход не правильный. Обычно просто что надо описывается и все.
Go to the top of the page
 
+Quote Post
XVR
сообщение Aug 18 2010, 07:27
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата
Например на AHDL можно составить элемент написав таблицу истинности, покажите как это сделать на VHDL.
Это можно сделать на Verilog'е - там есть специальная конструкция. Но делать этого не надо - не все (мягко говоря) синтезаторы эту конструкцию поддерживают smile.gif
Go to the top of the page
 
+Quote Post
_Ie0nid
сообщение Aug 19 2010, 02:41
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 20-09-08
Пользователь №: 40 344



Здравствсуйте. Хорошо, давайте другой пример.
1. В прикрпеленном файле реализован пример простого D тригера из книжки, компилятор выдал ошибки можете сказать в чем дело?
2. На пальцах может кто ни будь объяснить что делает оператор EVENT?
3. В книжке описаны объявление типов. что означают std_logic и std_logic_vector
Заранее благодарю.
Прикрепленные файлы
Прикрепленный файл  quartus_pict.bmp ( 3.75 мегабайт ) Кол-во скачиваний: 30
 
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Aug 19 2010, 04:51
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(_Ie0nid @ Aug 19 2010, 06:41) *
1. В прикрпеленном файле
Имейте совесть и немного уважения к другим. Лично я не буду смотреть рисунок размером в 4 без малого мегабайта.

Цитата
2. На пальцах может кто ни будь объяснить что делает оператор EVENT?
'event --это не оператор, а атрибут сигнала. Он возвращает true, если с сигналом в данный момент времени произошло любое изменение. Например, сигнал перешёл из нулевого состояния в единичное.

Цитата
3. В книжке описаны объявление типов. что означают std_logic и std_logic_vector
Это основные типы стандартной библиотеки VHDL, описанные в пакете std_logic_1164. В той же книжке они должны быть описаны.
Вкратце, std_logic -- это перечислимый тип, имеющий 9 состояний. Позволяет описывать не только логические уровни '0' и '1', но и третье (высокоимпедансное) состояние 'Z', конфликт сигналов 'X', неинициализированный сигнал 'U' и др. std_logic_vector -- это массив элементов std_logic.
Go to the top of the page
 
+Quote Post
_Ie0nid
сообщение Aug 19 2010, 05:48
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 20-09-08
Пользователь №: 40 344



//Andrey_B
//Имейте совесть и немного уважения к другим. Лично я не буду смотреть рисунок размером в 4 без малого мегабайта.
Хорошо, давайте вот так:
library IEEE;
use IEEE.std_logic_1164.all;
entity element001 is
port(DATA,CLK: in std_logic;
Q:out std_logic);
end element001;
architecture element001_ARCH of element001 is
begin
process (CLK)
begin
if CLK `event and CLK = `1` then
Q<=DATA;
end if;
end process;
end element001_ARCH;

Error (10500): VHDL syntax error at element001.vhd(12) near text `
Error (10500): VHDL syntax error at element001.vhd(12) near text "`"; expecting "then"
Error (10500): VHDL syntax error at element001.vhd(14) near text "if"; expecting "process"
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Aug 19 2010, 06:09
Сообщение #7


Лентяй
******

Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843



if CLK `event and CLK = `1` then - это условие нарастающего фронта сигнала (т.е. ожидаем изменения сигнала CLK, после которого этот сигнал принимает значение логической единицы).
А по поводу ошибок - проверяйте синтаксис.
Еще рекомендую почитать "The VHDL Cookbook" Питера Ашендена - эта книжка валяется где-то в закромах.


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post
sazh
сообщение Aug 19 2010, 06:19
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Цитата(_Ie0nid @ Aug 19 2010, 08:48) *
if CLK `event and CLK = `1` then


Код
if (clk'event and clk = '1') then


А по поводу языка. После AHDL Вам verilog в помощь.
VHDL - это язык преподавателей вузов. Они редко схемные решения описывают для реального железа.
Скачайте с сайта xilinx документ xst.pdf, там на примере графического примитива на обоих языках приведено текстовое описание
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Aug 19 2010, 07:14
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(sazh @ Aug 19 2010, 10:19) *
VHDL - это язык преподавателей вузов.
Давайте уже не будем, а?
Go to the top of the page
 
+Quote Post
_Ie0nid
сообщение Aug 19 2010, 08:57
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 20-09-08
Пользователь №: 40 344



Извините, но скобки не совсем помогли, осталось две ошибки, кто знает в чем дело?
Go to the top of the page
 
+Quote Post
sazh
сообщение Aug 19 2010, 09:15
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Цитата(_Ie0nid @ Aug 19 2010, 11:57) *
Извините, но скобки не совсем помогли, осталось две ошибки, кто знает в чем дело?


Вы скопировали мою строчку, или только скобки поставили.
Можно без скобок. исправив ошибку
'` это разные символы
Go to the top of the page
 
+Quote Post
_Ie0nid
сообщение Aug 20 2010, 01:59
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 20-09-08
Пользователь №: 40 344



Цитата(sazh @ Aug 19 2010, 12:15) *
Вы скопировали мою строчку, или только скобки поставили.
Можно без скобок. исправив ошибку
'` это разные символы

УРА!!! ЗАРРАБОТАЛО!! Большое спасибо.
А можете мне сказать, что эти кавычки вообще означают, почему там одна, а там две? в книжке этого нет.
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Aug 20 2010, 04:50
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(_Ie0nid @ Aug 20 2010, 05:59) *
там одна, а там две?
Где?
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Aug 20 2010, 07:43
Сообщение #14


Лентяй
******

Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843



Цитата(_Ie0nid @ Aug 20 2010, 05:59) *
УРА!!! ЗАРРАБОТАЛО!! Большое спасибо.
А можете мне сказать, что эти кавычки вообще означают, почему там одна, а там две? в книжке этого нет.

В какой книжке?
Апострофы используются для задания значения сигнала, а двойные кавычки - для задания значения вектора.


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post
_Ie0nid
сообщение Aug 20 2010, 08:20
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 20-09-08
Пользователь №: 40 344



Цитата(Stewart Little @ Aug 20 2010, 10:43) *
В какой книжке?
Апострофы используются для задания значения сигнала, а двойные кавычки - для задания значения вектора.

Извините за низкий интелект, теперь я окончательно запутался.
1. Вот это апостроф - `, или вот это тоже апостроф - '.
2. Вот такая запись if CLK ' event, почему нельзя записать типа CLK=event, или этот одиночный апостроф и имеет значения "=" в данном случае.
3. CLK = '1', почему значение сигнала, логическая еденица, взята в двойные апострофы, это такой синтаксис, все логические значения должны быть в апострофах.
4. Что такое значение вектора (если для меня это еще слишком рано, можете не отвечать).
Заранее Благодарю.

Сообщение отредактировал _Ie0nid - Aug 20 2010, 08:20
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Aug 20 2010, 08:56
Сообщение #16


Лентяй
******

Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843



Цитата(_Ie0nid @ Aug 20 2010, 12:20) *
Извините за низкий интелект, теперь я окончательно запутался.
1. Вот это апостроф - `, или вот это тоже апостроф - '.
2. Вот такая запись if CLK ' event, почему нельзя записать типа CLK=event, или этот одиночный апостроф и имеет значения "=" в данном случае.
3. CLK = '1', почему значение сигнала, логическая еденица, взята в двойные апострофы, это такой синтаксис, все логические значения должны быть в апострофах.
4. Что такое значение вектора (если для меня это еще слишком рано, можете не отвечать).
Заранее Благодарю.

1. Апостроф - '
2. Потому, что event - это атрибу сигнала CLK, а не присваивание. CLK'event - это "единая сущность", означающая любые изменения сигнала CLK
3. Это не двойные апострофы. Значение одиночного сигнала заключается в апострофы, к примеру '1' , '0', 'Z' и т.д.
4. Векторы - это многоразрядные сигналы (ну или шины), их значения заключаются в двойные кавычки : "0000", "01011001" и т.д.
Короче, читайте литературу, и не морочьте голову. Языки описания аппаратуры "ковбойским наскоком" не изучаются.
Прикрепленные файлы
Прикрепленный файл  VHDL_Cookbook.pdf ( 298.43 килобайт ) Кол-во скачиваний: 39
 


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post
_Ie0nid
сообщение Aug 23 2010, 04:39
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 20-09-08
Пользователь №: 40 344



За книжку большое спаисибо. Хотя, надо признаться, у меня книжек такого плана уже целый килограмм.
Вопрос по теме. Есть пример в котором есть такая запись S = "01", ну и другие условия S = "10", и так далее. КТо сможет подсказать, как такой элемент должен выглядеть в квартусе. Это два вывода S1 и S2, или как то по другому. Заранее благодарю.
Go to the top of the page
 
+Quote Post
DSIoffe
сообщение Aug 23 2010, 10:32
Сообщение #18


Дима
*****

Группа: Свой
Сообщений: 1 683
Регистрация: 15-12-04
Из: Санкт-Петербург
Пользователь №: 1 486



Когда я переходил с AHDL на VHDL, мне очень помогла книга Дж.Ф.Уэйкерли "Проектирование цифровых устройств". Там про VHDL по сравнению со всем объёмом книги написано немного, но самое основное и очень понятно, можно сразу начинать работать. Здесь на форуме уже кто-то давал ссылку.


--------------------
© CОПЫРИГХТ: Дмитрий Иоффе, Советский Союз.
Приглашаю посмотреть: http://muradowa.spb.ru/ и http://www.drtata.narod.ru/index.html
Go to the top of the page
 
+Quote Post
Fynjisx
сообщение May 19 2011, 06:19
Сообщение #19


студент
****

Группа: Свой
Сообщений: 571
Регистрация: 3-07-08
Из: Russia
Пользователь №: 38 712



Цитата(_Ie0nid @ Aug 23 2010, 07:39) *
Хотя, надо признаться, у меня книжек такого плана уже целый килограмм.

Если книжек уйма и все равно не можете понять что такое VHDL, то это сигнал к тому, что пора менять парадигму изучения...
Вообще, лично для меня, если всё читать то можно с ума сойти...Поэтому дам совет- ключ, как постичь это язык... Для начала нужно ознакомиться с цифровой техникой вообще, понять из чего она состоит, из каких кирпичиков. Изучить и комбинационные и последовательностные компоненты(это логические элементы и элементы памяти - триггеры)... Короче если вы смотжете ответить на вопрос что такое счетчик, или дешифратор или сумматор и т.д и более того, как каждый элемент работает, вот только тогда можно двигаться дальше...А дальше это просто... Смотрните какому VHDL описанию соответствует, каждый цифровой элемент...В самом простом случае - запоминаете...И вот тогда что-то начнет проясняться в голове...Уж поверьте...


--------------------
С Уважением...
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 15:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.01514 секунд с 7
ELECTRONIX ©2004-2016