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

