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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> 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
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

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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 01:51
Рейтинг@Mail.ru


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