Два счетчика с одним последовательным выходом EPM3064

Программируемая логика - это не так уж и сложно. Разберемся вместе.
Ответить
pchela5
Родился
Сообщения: 3
Зарегистрирован: Вс янв 23, 2011 21:02:01

Два счетчика с одним последовательным выходом EPM3064

Сообщение pchela5 »

В ПЛИС я новичок, посему вопрос:
Понадобилось мне оганизовать пару 11-ти разрядных счетчиков с одним последовательным выходом.
После поисков нашел на электрониксе исходный пример и немного его модернизировал.
Собственно, симулятор отработал вроде как все верно, но проверить в железе пока не могу и вопросы остались.
Являются ли счетчики синхронными?
В исходнике enacount в строке IF был в кавычках - что это означает - инверсия сигнала или нет?
Корректно ли описана данная схема на ADHL?:

SUBDESIGN countshift
(
clk : INPUT; --вход клока для счета и для сдвига
enashft, enacount_1, enacount_2: INPUT; --разрешения сдвига и счета
ds : OUTPUT;
)
VARIABLE
count[21..0] : DFF;
BEGIN
count[].clk = clk;

IF enashft THEN
count[21..1].d = count[20..0].q;
count0.d = GND;
ELSE

IF enacount_1 THEN
count[10..1].d = count[9..0].q + 1;
ELSE
count[10..0].d = count[10..0].q;
END IF;

IF enacount_2 THEN
count[21..12].d = count[20..11].q + 1;
ELSE
count[21..11].d = count[21..11].q;
END IF;

END IF;

ds = count21.q;

END;

Заранее всем спасибо. PS Когда я рисую счетчики с помощью редактора, они: 1) занимают меньше места, 2) Несинхронные по умолчанию работы триггеров.
Реклама
Аватара пользователя
GARMIN
Держит паяльник хвостом
Сообщения: 954
Зарегистрирован: Вс дек 02, 2012 16:58:33
Откуда: от туда
Контактная информация:

Re: Два счетчика с одним последовательным выходом EPM3064

Сообщение GARMIN »

Если знаешь, что тебе нужно, то нарисовать не вопрос.
А в логике счётчика проблема:

Код: Выделить всё

IF enacount_1 THEN
count[10..1].d = count[9..0].q + 1;
ELSE
count[10..0].d = count[10..0].q;
END IF;
Почему при сложении игнорируешь старший и младший разряды?
Почему складываешь не одинаковые разряды?
Правильно так:

Код: Выделить всё

IF enacount_1 THEN
count[10..0].d = count[10..0].q + 1;
ELSE
count[10..0].d = count[10..0].q;
END IF;
Реклама
pchela5
Родился
Сообщения: 3
Зарегистрирован: Вс янв 23, 2011 21:02:01

Re: Два счетчика с одним последовательным выходом EPM3064

Сообщение pchela5 »

Да, действительно, в сложении накосячил - в исходнике один был счетчик без указания разрядов и поэтому ошибся. Спасибо за подсказку.

А по поводу нарисовать - во-первых, схема громоздкая, а во-вторых - чтобы ее сделать синхронной - упаришься рисовать.

Поэтому и спросил - является ли данное описание синхронным счетчиком?

По поводу программатора - третий день бьюсь с бластером на параллельном порту - и с 244 буфером и без него, с подтяжкой резисторов и без - безрезультатно. Порт мамы - 5-ти вольтовый. Питание бластера с 244 буфером - от альтеры на 3,3 вольта.
Подозрений осталось три: - конфликт драйвера бластера с драйвером программатора виллем - что маловероятно - попробую на другом компе запустить, - фальшивые китайские альтеры - есть у меня post карта - сниму на время оттуда ПЛИС, и третья причина - Луна не в той фазе.

У всех ли работает байтбластер с махплюсом на хрюше с третьим сервис паком?

PS IF (enacount_1 ) THEN - что значат скобки в данном случае?
Аватара пользователя
GARMIN
Держит паяльник хвостом
Сообщения: 954
Зарегистрирован: Вс дек 02, 2012 16:58:33
Откуда: от туда
Контактная информация:

Re: Два счетчика с одним последовательным выходом EPM3064

Сообщение GARMIN »

У меня по крайней мере работал, без микросхем, на трёх проводках. Сейчас клон USB BLASTER.
Реклама
Эиком - электронные компоненты и радиодетали
Ответить

Вернуться в «ПЛИС»