Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Обычный счетчик, а не работает!?! Почему?
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Гвоздик
Идет входной сигнал INPUT, по каждому его фронту обнуляю показания счетчика тактовых импульсов CLOCK. Не работает и все, пишет что значение PERIODSIG на хранится вне CLOCK. Почему так и как надо?

LIBRARY ieee ;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY METER IS
PORT ( INPUT, CLOCK: IN STD_LOGIC;
PERIOD : OUT STD_LOGIC_VECTOR (7 DOWNTO 0));
END METER ;

ARCHITECTURE BEHAVIOR OF METER IS
SIGNAL PERIODSIG : INTEGER RANGE 0 TO 255;
BEGIN

CLKPROC: PROCESS ( CLOCK, INPUT )
BEGIN
IF (INPUT'EVENT AND RISING_EDGE(INPUT)) THEN
PERIODSIG <= 0;
END IF;
IF (CLOCK'EVENT AND RISING_EDGE(CLOCK)) THEN
PERIODSIG <= PERIODSIG + 1;
END IF;
END PROCESS CLKPROC;

PERIOD <= CONV_STD_LOGIC_VECTOR(PERIODSIG,8);

END BEHAVIOR;
andrew_b
Каждый раз одно и то же. С завидной постоянностью люди наступают на одни и те же грабли.
Цитата(Гвоздик @ Jun 10 2005, 12:17)
Почему так и как надо?

Потому что вы описываете триггеры, которые переключаются по фронтам двух сигналов. В той FPGA, в какую вы хотите этот код запихнуть, триггеров с двумя тактовыми входами может не оказаться. Как надо --- используйте поиск по конференции. Обсуждалось, и неоднократно.
Serega Doc
INPUT - синхронный сброс?
DeadMoroz
Может так?:
-- если сброс асинхронный:
CLKPROC: PROCESS ( CLOCK, INPUT )
BEGIN
IF (INPUT='1') THEN
PERIODSIG <= 0;
ELSIF (CLOCK'EVENT AND RISING_EDGE(CLOCK)) THEN
PERIODSIG <= PERIODSIG + 1;
END IF;
END PROCESS CLKPROC;

-- если сброс синхронный:
CLKPROC: PROCESS ( CLOCK, INPUT )
BEGIN
IF (CLOCK'EVENT AND RISING_EDGE(CLOCK)) THEN
IF (INPUT='1') THEN
PERIODSIG <= 0;
ELSE
PERIODSIG <= PERIODSIG + 1;
END IF;
END PROCESS CLKPROC;
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.