_Ie0nid 0 18 августа, 2010 Опубликовано 18 августа, 2010 (изменено) · Жалоба Здравствуйте. Совсем отчаялся разобраться в этом языке. Сколько есть у меня книжек, все не дают достаточного понимания в программировании VHDL. Помогите пожалуйста разобраться на простых примерах. Например на AHDL можно составить элемент написав таблицу истинности, покажите как это сделать на VHDL. Желательно в quartus, чтобы не добавлять в мое незнание дополнительных переменных. Может у кого любимые книжки по этой теме, я буду только благодарен. Заранее спасибо. Изменено 18 августа, 2010 пользователем _Ie0nid Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Methane 0 18 августа, 2010 Опубликовано 18 августа, 2010 · Жалоба Здравствуйте. Совсем отчаялся разобраться в этом языке. Сколько есть у меня книжек, все не дают достаточного понимания в программировании VHDL. Помогите пожалуйста разобраться на простых примерах. Например на AHDL можно составить элемент написав таблицу истинности, покажите как это сделать на VHDL. Желательно в quartus, чтобы не добавлять в мое незнание дополнительных переменных. Может у кого любимые книжки по этой теме, я буду только благодарен. Заранее спасибо. Просто в гугле все ищется. http://en.wikipedia.org/wiki/VHDL Создать элемент, написав таблицу истинности, можно через case, но какой-то подход не правильный. Обычно просто что надо описывается и все. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 18 августа, 2010 Опубликовано 18 августа, 2010 · Жалоба Например на AHDL можно составить элемент написав таблицу истинности, покажите как это сделать на VHDL.Это можно сделать на Verilog'е - там есть специальная конструкция. Но делать этого не надо - не все (мягко говоря) синтезаторы эту конструкцию поддерживают :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ie0nid 0 19 августа, 2010 Опубликовано 19 августа, 2010 · Жалоба Здравствсуйте. Хорошо, давайте другой пример. 1. В прикрпеленном файле реализован пример простого D тригера из книжки, компилятор выдал ошибки можете сказать в чем дело? 2. На пальцах может кто ни будь объяснить что делает оператор EVENT? 3. В книжке описаны объявление типов. что означают std_logic и std_logic_vector Заранее благодарю. quartus_pict.bmp Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 19 августа, 2010 Опубликовано 19 августа, 2010 · Жалоба 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ie0nid 0 19 августа, 2010 Опубликовано 19 августа, 2010 · Жалоба //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" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
StewartLittle 41 19 августа, 2010 Опубликовано 19 августа, 2010 · Жалоба if CLK `event and CLK = `1` then - это условие нарастающего фронта сигнала (т.е. ожидаем изменения сигнала CLK, после которого этот сигнал принимает значение логической единицы). А по поводу ошибок - проверяйте синтаксис. Еще рекомендую почитать "The VHDL Cookbook" Питера Ашендена - эта книжка валяется где-то в закромах. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 3 19 августа, 2010 Опубликовано 19 августа, 2010 · Жалоба if CLK `event and CLK = `1` then if (clk'event and clk = '1') then А по поводу языка. После AHDL Вам verilog в помощь. VHDL - это язык преподавателей вузов. Они редко схемные решения описывают для реального железа. Скачайте с сайта xilinx документ xst.pdf, там на примере графического примитива на обоих языках приведено текстовое описание Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 19 августа, 2010 Опубликовано 19 августа, 2010 · Жалоба VHDL - это язык преподавателей вузов. Давайте уже не будем, а? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ie0nid 0 19 августа, 2010 Опубликовано 19 августа, 2010 · Жалоба Извините, но скобки не совсем помогли, осталось две ошибки, кто знает в чем дело? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 3 19 августа, 2010 Опубликовано 19 августа, 2010 · Жалоба Извините, но скобки не совсем помогли, осталось две ошибки, кто знает в чем дело? Вы скопировали мою строчку, или только скобки поставили. Можно без скобок. исправив ошибку '` это разные символы Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ie0nid 0 20 августа, 2010 Опубликовано 20 августа, 2010 · Жалоба Вы скопировали мою строчку, или только скобки поставили. Можно без скобок. исправив ошибку '` это разные символы УРА!!! ЗАРРАБОТАЛО!! Большое спасибо. А можете мне сказать, что эти кавычки вообще означают, почему там одна, а там две? в книжке этого нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 20 августа, 2010 Опубликовано 20 августа, 2010 · Жалоба там одна, а там две? Где? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
StewartLittle 41 20 августа, 2010 Опубликовано 20 августа, 2010 · Жалоба УРА!!! ЗАРРАБОТАЛО!! Большое спасибо. А можете мне сказать, что эти кавычки вообще означают, почему там одна, а там две? в книжке этого нет. В какой книжке? Апострофы используются для задания значения сигнала, а двойные кавычки - для задания значения вектора. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ie0nid 0 20 августа, 2010 Опубликовано 20 августа, 2010 (изменено) · Жалоба В какой книжке? Апострофы используются для задания значения сигнала, а двойные кавычки - для задания значения вектора. Извините за низкий интелект, теперь я окончательно запутался. 1. Вот это апостроф - `, или вот это тоже апостроф - '. 2. Вот такая запись if CLK ' event, почему нельзя записать типа CLK=event, или этот одиночный апостроф и имеет значения "=" в данном случае. 3. CLK = '1', почему значение сигнала, логическая еденица, взята в двойные апострофы, это такой синтаксис, все логические значения должны быть в апострофах. 4. Что такое значение вектора (если для меня это еще слишком рано, можете не отвечать). Заранее Благодарю. Изменено 20 августа, 2010 пользователем _Ie0nid Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться