Программируемая логика - это не так уж и сложно. Разберемся вместе.
Ответить

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

Чт окт 08, 2015 11:04:40

В ПЛИС я новичок, посему вопрос:
Понадобилось мне оганизовать пару 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) Несинхронные по умолчанию работы триггеров.

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

Пт окт 09, 2015 05:58:06

Если знаешь, что тебе нужно, то нарисовать не вопрос.
А в логике счётчика проблема:
Код:
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;

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

Пт окт 09, 2015 12:01:19

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

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

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

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

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

PS IF (enacount_1 ) THEN - что значат скобки в данном случае?

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

Пт окт 09, 2015 12:10:29

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