-
newold86
-
Автор темы
-
Не в сети
-
Осваиваюсь на форуме
-
-
Сообщений: 29
-
Спасибо получено: 1
-
-
|
Столкнулся с очередной проблемой и задумался - как будут реализовываться "в железе" счетчики, описанные на языках программирования (VHDL, Verilog и т.д.) ?
Допустим, есть простейший код (вообще без всяких наворотов), описывающий несколькоразрядный двоичный счетчик. Определено ли где-то однозначно, что получится после компиляции - синхронный или асинхронный счетчик ?
Если такой определенности нет, то как получить гарантированно синхронный счетчик ? В интернете посмотрел - пока нашел только, как сделать синхронный счетчик на JK-триггерах. Однако это просто повторение существующей схемы средствами языка, а меня больше интересует, как правильно описать именно поведение синхронного счетчика. Будет здорово, если кто-то сможет пояснить, особенно на примере VHDL.
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
newold86
-
Автор темы
-
Не в сети
-
Осваиваюсь на форуме
-
-
Сообщений: 29
-
Спасибо получено: 1
-
-
|
Надо же - много чего есть на этом сайте, даже объяснение про синхронные схемы -
marsohod.org/11-blog/85-veriloglesson5
:)
Тогда уточняющий вопрос - если описан процесс-счетчик, у которого в списке чувствительности указан фронт тактирующего сигнала, то такой счетчик всегда будет синхронным ? В смысле, у него результат будет всегда обновляться на всех разрядных выходах, без последовательной задержки ? Если да, то как тогда описать асинхронный счетчик ??? Просто синхронные счетчики с увеличением разрядности вроде начинают требовать много ресурсов...
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
umarsohod
-
-
Не в сети
-
Администрация форума
-
-
Сообщений: 816
-
Спасибо получено: 168
-
-
|
newold86 пишет: Надо же - много чего есть на этом сайте, даже объяснение про синхронные схемы -
marsohod.org/11-blog/85-veriloglesson5
:)
Тогда уточняющий вопрос - если описан процесс-счетчик, у которого в списке чувствительности указан фронт тактирующего сигнала, то такой счетчик всегда будет синхронным ? В смысле, у него результат будет всегда обновляться на всех разрядных выходах, без последовательной задержки ? Если да, то как тогда описать асинхронный счетчик ??? Просто синхронные счетчики с увеличением разрядности вроде начинают требовать много ресурсов...
Если счетчик бинарный, то "количество ресурсов" = "количество разрядов".
А про асинхронные счетчики забудьте.
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
newold86
-
Автор темы
-
Не в сети
-
Осваиваюсь на форуме
-
-
Сообщений: 29
-
Спасибо получено: 1
-
-
|
Все таки, если напишу следующее:
ARCHITECTURE Behavioral OF my_counter4 IS
SIGNAL count : STD_LOGIC_VECTOR (5 DOWNTO 0);
BEGIN
process (reset, clock) begin
if (reset = '1') then
count <= "000000";
elsif clock'event and clock = '0' then
if count < "100111" then
count <= count + 1 ;
else
count <= "000000";
end if;
end if;
end process;
q <= count;
END Behavioral;
это будет синхронный счетчик (с одновременным обновлением всех 6 разрядов) ?
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
bfgroup
-
-
Не в сети
-
Осваиваюсь на форуме
-
-
Сообщений: 21
-
Спасибо получено: 11
-
-
|
Определено ли где-то однозначно, что получится после компиляции - синхронный или асинхронный счетчик ?
однозначно определено в стандарте на синтезируемую часть языка IEEE Std 1076, гуглите.
это будет синхронный счетчик (с одновременным обновлением всех 6 разрядов) ?
да, это будет синхронный счётчик.
А про асинхронные счетчики забудьте.
Присоединяюсь. В плисах они Вам не понадобятся.
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
Время создания страницы: 0.551 секунд