|
VHDL в QUARTUS для очень начинающего, VHDL в QUARTUS для очень начинающего |
|
|
|
Aug 18 2010, 03:25
|
Участник

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

|
Здравствуйте. Совсем отчаялся разобраться в этом языке. Сколько есть у меня книжек, все не дают достаточного понимания в программировании VHDL. Помогите пожалуйста разобраться на простых примерах. Например на AHDL можно составить элемент написав таблицу истинности, покажите как это сделать на VHDL. Желательно в quartus, чтобы не добавлять в мое незнание дополнительных переменных. Может у кого любимые книжки по этой теме, я буду только благодарен. Заранее спасибо.
Сообщение отредактировал _Ie0nid - Aug 18 2010, 03:26
|
|
|
|
|
Aug 18 2010, 03:58
|

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

|
Цитата(_Ie0nid @ Aug 18 2010, 06:25)  Здравствуйте. Совсем отчаялся разобраться в этом языке. Сколько есть у меня книжек, все не дают достаточного понимания в программировании VHDL. Помогите пожалуйста разобраться на простых примерах. Например на AHDL можно составить элемент написав таблицу истинности, покажите как это сделать на VHDL. Желательно в quartus, чтобы не добавлять в мое незнание дополнительных переменных. Может у кого любимые книжки по этой теме, я буду только благодарен. Заранее спасибо. Просто в гугле все ищется. http://en.wikipedia.org/wiki/VHDLСоздать элемент, написав таблицу истинности, можно через case, но какой-то подход не правильный. Обычно просто что надо описывается и все.
|
|
|
|
|
Aug 19 2010, 02:41
|
Участник

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

|
Здравствсуйте. Хорошо, давайте другой пример. 1. В прикрпеленном файле реализован пример простого D тригера из книжки, компилятор выдал ошибки можете сказать в чем дело? 2. На пальцах может кто ни будь объяснить что делает оператор EVENT? 3. В книжке описаны объявление типов. что означают std_logic и std_logic_vector Заранее благодарю.
|
|
|
|
|
Aug 19 2010, 04:51
|
Профессионал
    
Группа: Свой
Сообщений: 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.
|
|
|
|
|
Aug 19 2010, 05:48
|
Участник

Группа: Участник
Сообщений: 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"
|
|
|
|
|
Aug 19 2010, 06:19
|
Гуру
     
Группа: Свой
Сообщений: 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, там на примере графического примитива на обоих языках приведено текстовое описание
|
|
|
|
|
Aug 19 2010, 08:57
|
Участник

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

|
Извините, но скобки не совсем помогли, осталось две ошибки, кто знает в чем дело?
|
|
|
|
|
Aug 20 2010, 01:59
|
Участник

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

|
Цитата(sazh @ Aug 19 2010, 12:15)  Вы скопировали мою строчку, или только скобки поставили. Можно без скобок. исправив ошибку '` это разные символы УРА!!! ЗАРРАБОТАЛО!! Большое спасибо. А можете мне сказать, что эти кавычки вообще означают, почему там одна, а там две? в книжке этого нет.
|
|
|
|
|
Aug 20 2010, 08:20
|
Участник

Группа: Участник
Сообщений: 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
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|