Перейти к содержанию

Задержка На Заранее Неизвестное Колличество Периодов Тактовой


kt368

Рекомендуемые сообщения

Здравствуйте!

Нужно реализовать подсчёт длительности нахождения входного сигнала в '1' (в периодах тактовой частоты), а затем в этом же процессе реализовать задержку на такое же количество периодов тактовой частоты.

Пробовал сделать подсчёт сделать так:

if (CLK'event and CLK='0') then
   if RESET='1' then
    ..............
   else
    if CONVERT = '1' then
	    sample_length := sample_length +1;
    end if;
   end if;
end if;

А задержку так:

if (CLK'event and CLK='0') then
   if RESET='1' then
    ..............
   else
    if sample_length = 1 then
	    sample_length := 0;
	    state <= idle;
    else
	    sample_length := sample_length - 1;
    end if;
   end if;
end if;

Весь процесс выглядит так:

MAIN: process (CLK)
variable clk_count : clk_count_type := 0;
variable sample_length : natural := 0;
  begin
 if (CLK'event and CLK='0') then
  if RESET='1' then
   state <= idle;
   DATA_RDY <= '0';
   DATA_OUT <= "0000000000";
  else
   if CONVERT = '1' then
 state <= wiat_coorect_ADC_data;
 sample_length := sample_length +1;
   end if;
   case (state) is
 when idle =>
   DATA_RDY <= '0';
   DATA_OUT <= "0000000000";
 when wiat_coorect_ADC_data =>
  if clk_count < (adc_propagation - 2) then
   clk_count := clk_count+1;
  else
   clk_count := 0;
   state <= coorect_ADC_data;
  end if;
 when coorect_ADC_data =>
  DATA_RDY <= '1';
  DATA_OUT <= DATA_IN;
  if sample_length = 1 then
   sample_length := 0;
   state <= idle;
  else
   sample_length := sample_length - 1;
  end if;
   end case;
  end if;
 end if;
  end process;

Но при этом схема приобретает устрашающе большие размеры, и при симуляции на Post-Translate уровне работа схемы неудовлетворительная, хотя на Behavioral уровне всё было супер. Мне нужно чтоб счётчик тактов успевал обработать как короткие входные импульсы на входе CONVERT, так и длинные, до 10000000 тактов.

Как правильно сделать такую задержку?

Если нужно, могу выложить весь проект или нужные скриншоты.

Заранее спасибо.

Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Можно уточнить?

Есть входные данные (от АЦП?) и ещё одни бит RDY. После снятия ресета, пока RDY стоит в единице входные данные идут в линию задержки, на выход идёт 0. Как только RDY сбрасывается в 0, на выход начинают идти данные с линии задержки.

Это требуется реализовать?

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Такой вариант. Организуется несколько счетчиков, например считающих до сотни (длинные нельзя - большая задержка)

Далее делается детектор фронтов сигнала RDY- всего три триггера. При значении 001 - обнуляются все счетчики. Далее счет. При значении 110 конец счета. Тогда синтез будет не много занимать логики и в то же время сможет отрабатывать RDY длительностью от двух периодов тактовой частоты.

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...