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

 
 
> Quartus и VHDL, Как так-то...
hynter
сообщение Jul 6 2008, 09:46
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 29
Регистрация: 27-02-07
Пользователь №: 25 709



Здравствуйте. Помогите разобраться с логикой работы VHDL...Что-то вообще я её не понимаю...почитал...вроде всё логично, а начинаю делать - вообще никак...
Вот например:
На вход схемы приходит сигнал IRDYn, я его сразу же передаю на выход схемы RST:

RST<=IRDYn;

Сигнал выходит с задержкой на целый такт...Там, конечно, говориться про дельто-задержку...но не настолько же... Как мне сразу передать на выход данные?

Или вот ещё:

Создаю компонент, который будет сравнивать приходящий адрес (ADR1) и содержание BAR в конфигурационном пространстве для PCI:

ARCHITECTURE behavior OF ADR_CMP IS

begin
process(ADR1)
begin
if (ADR1 = BAR) then --Если адрес совпадает, то разрешаем доступ
ADREN<='1';
else
ADREN<='0'; ---Если нет - то нет...
end if;
end process;
end behavior;

В программе пишу:

SET_SIGNALS: process(ADREN)
begin
if (ADREN='1') then --Если разрешён доступ, то выставляем соответствующие сигналы
DEVSELn<='0';
TRDYn<='0';
DIREN_in<='1'; --Открытие буферных элементов для входнях сигналов
else
DEVSELn<='1';
TRDYn<='1';
DIREN_in<='0';
end if;
end process SET_SIGNALS;


Так вот, если в DIREN_in писать '1', то адрес не совпадает...но он же (DIREN_in) выставляется после того, как адрес определился...непонятно...

P.S. DIREN_in так же изменяет направление передачи данных с двунаправленой шины AD, по которой в фазе адреса приходит тот самый адрес, а в фазе данных должны уходить данные....Может поэтому глючит... wacko.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
hynter
сообщение Jul 18 2008, 09:01
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 29
Регистрация: 27-02-07
Пользователь №: 25 709



Со стэйт машинами я тут долго мудрил...вот нашёл в квартусе уже готовую часть нечто похожего на то, что мне нужно...покопался в коде и взял их оттуда..вот..

Вариант с OUT(1) - подошёл. Спасибо большое за подсказку! А вот там, где OUT(2)<=CNF_RD, при замене на '0' летит диаграмма вывода данных на AD1 при попадании на процедуру CONF_READ, хотя все управляющие сигналы DEVSELn, TRDYn, STOPn и PAR выставляются правильно...

И ещё при конфигурировании, то есть CNF_WR='1' засчёлкивается адрес, присвоенный моему устройству, в ADR. Он пишется правильно и храниться до конца работы. С этим адресом нужно сравнивать приходящий на AD1 код, что и делается в строчке:

RD_TX <= '0' when (FRAMEn='0' and AD1=ADR) else '1';

так вот, если писать так, то при сравнении AD1 и ADR, все сигналы становятся неопределёнными...а если задать адрес в переменную, то всё работает:

RD_TX <= '0' when (FRAMEn='0' and AD1=CNF(4)) else '1';

Сообщение отредактировал hynter - Jul 18 2008, 09:05
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- hynter   Quartus и VHDL   Jul 6 2008, 09:46
- - Maverick   Вы забываете про тактовую частоту и строку "i...   Jul 6 2008, 10:06
|- - rv3dll(lex)   Цитата(Maverick @ Jul 6 2008, 14:06) Вы з...   Jul 7 2008, 04:56
- - Kuzmi4   2 Maverick - касательно Кодif (ADREN='1...   Jul 7 2008, 09:53
- - hynter   Ага. Спасибо большое за разъяснение!! Очен...   Jul 8 2008, 07:39
- - Kuzmi4   2 hynter - а вы проведите эксперимент - сделайте п...   Jul 8 2008, 08:01
- - hynter   Подскажите, пожалуйста, а как сохранить в переменн...   Jul 11 2008, 09:16
- - Kuzmi4   2 hynter - ну для начала Кодsignal CMD : std_...   Jul 11 2008, 11:01
- - hynter   Обьясните, пожалуйста, как же всё-такие это работа...   Jul 13 2008, 09:22
|- - rv3dll(lex)   Цитата(hynter @ Jul 13 2008, 13:22) Обьяс...   Jul 14 2008, 04:37
- - Kuzmi4   2 hynter - отвыкайте от wait - какпо мне - не си...   Jul 14 2008, 11:02
- - hynter   Ага...понятно в чём косяк=) Оно так и должно задер...   Jul 16 2008, 14:06
- - Kuzmi4   2 hynter - ну что значит ЦитатаНИГДЕ НЕ ИСПОЛЬЗУЕ...   Jul 16 2008, 14:39
- - hynter   Цитата(Kuzmi4 @ Jul 16 2008, 18:39) Или п...   Jul 17 2008, 12:14
- - Kuzmi4   2 hynter - посмотримс на досуге .. А кому сдавать...   Jul 17 2008, 16:29
- - Kuzmi4   Посмотрел в обсчем я ваш код - стэйт машины там у ...   Jul 18 2008, 08:09
- - Kuzmi4   2 hynter - ступил малёхо, вы КодCNF_RD Заюзываете...   Jul 18 2008, 09:11
- - hynter   Я и не говорил, что CHF_RD не нужен! Как раз-т...   Jul 18 2008, 10:01
- - Kuzmi4   2 hynter - меня тут смущают огромное кол-во shared...   Jul 18 2008, 10:15
- - hynter   Хорошо!=) Спасибо большое за помощь! А RTL...   Jul 18 2008, 10:57
- - Kuzmi4   2 hynter - показываю: RTL - это сокращение от reg...   Jul 18 2008, 12:19
- - hynter   Понял почему такая фигня происходит! У меня ПЛ...   Jul 19 2008, 14:05
- - Kuzmi4   2 hynter - какая фигня ?   Jul 19 2008, 14:42
- - hynter   Как какая....всё та же: перестаёт работать, если у...   Jul 19 2008, 15:03
- - Kuzmi4   2 hynter - хм... есчё один прикол с цплд - там рас...   Jul 19 2008, 15:08
- - hynter   Цитата(hynter @ Jul 19 2008, 18:05) Понял...   Jul 19 2008, 16:37
- - Kuzmi4   2 hynter - мдя... в обсчем советую заюзать моделс...   Jul 19 2008, 18:10


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

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 22:28
Рейтинг@Mail.ru


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