dsp 0 26 октября, 2005 Опубликовано 26 октября, 2005 · Жалоба есть тактовая частота 50 мгц и асинхронно к ней приходящий срез сигнала по этому срезу надо сформировать положительный импульс длительностью 1 такт тактовой частоты и синхронный с этой тактовой частотой пробовал что описано здесь что-то не получается подскажите пожалуйста что можно сделать ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 26 октября, 2005 Опубликовано 26 октября, 2005 · Жалоба есть тактовая частота 50 мгц и асинхронно к ней приходящий срез сигнала по этому срезу надо сформировать положительный импульс длительностью 1 такт тактовой частоты и синхронный с этой тактовой частотой пробовал что описано здесь что-то не получается подскажите пожалуйста что можно сделать ? <{POST_SNAPBACK}> Без обид. 1. Сесть подумать, почему у всех работает а у вас нет. 2. Драйвера переставить. ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexandr 0 26 октября, 2005 Опубликовано 26 октября, 2005 · Жалоба process(clk) variable i: std_logic:='0'; begin if rising_edge(clk) then if ext_imp='1' then i:='0'; int_imp<='0'; else if i='0' then int_imp<='1'; i:='1'; else int_imp<='0'; end if; end if; end if; end process; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gate 0 26 октября, 2005 Опубликовано 26 октября, 2005 · Жалоба process(clk) variable i: std_logic:='0'; begin if rising_edge(clk) then if ext_imp='1' then i:='0'; int_imp<='0'; else if i='0' then int_imp<='1'; i:='1'; else int_imp<='0'; end if; end if; end if; end process; <{POST_SNAPBACK}> Код я не проверял, но на первый беглый взгляд он не подходит для практической имплементации - не учитывается и не исправляется возможная метастабильность. Обычно ставят последовательно 2 триггера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dsp 0 27 октября, 2005 Опубликовано 27 октября, 2005 · Жалоба я синтезирую Synplify 8.2 размещение Xilinx 7.1 Sp4 timing симуляция Activ-Hdl 6.3 Sp2 беру схему формирователя короткого импульса одну из описанных выше она корректно работает некоторое время а потом начинает глючить выходной сигнал одновременно 1 и 0 то же самое при размещении Altera 4.1 все работает нормально посему вопрос что за глюк и откуда ноги растут? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 27 октября, 2005 Опубликовано 27 октября, 2005 · Жалоба Я не знаком с языками HDL, но схемотехнически могу пояснить. Нужно использовать два триггера. Первым триггером входной асинхронный сигнал делается синхронным, а на втором триггере делается формирователь импульса по срезу или спаду (как вам хочется). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k0t 0 27 октября, 2005 Опубликовано 27 октября, 2005 · Жалоба Если просто два триггера, есть возможность пропустить фронт. Лучше делать так: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
LV26 0 1 ноября, 2005 Опубликовано 1 ноября, 2005 · Жалоба Если просто два триггера, есть возможность пропустить фронт. Лучше делать так: <{POST_SNAPBACK}> Если убрать средний тригер - получится схема из MAX+PLUS II Help. Непонятно как можно не пропустить фронт в Вашем варианте, особенно если между поступлением импульсов время будет меньше периода CLK? Мне кажется, что схема с 3 тригерами от этого не спасает. Единственное, что в 3-х тригерном варианте хорошо - так то, что вероятность попадания в метастабильное состояние намного меньше. Всего наилучшего. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k0t 0 2 ноября, 2005 Опубликовано 2 ноября, 2005 · Жалоба Если просто два триггера, есть возможность пропустить фронт. Лучше делать так: <{POST_SNAPBACK}> Если убрать средний тригер - получится схема из MAX+PLUS II Help. Гм? Действительно :) Но без среднего триггера хуже с точки зрения метастабильности (ИМХО). Непонятно как можно не пропустить фронт в Вашем варианте, особенно если между поступлением импульсов время будет меньше периода CLK? Если частота следования импульсов больше clk, то вообще не возможно поймать ВСЕ фронты... Да и зачем это может быть нужно? :) Эта схема гарантированно ловит 1 фронт, какова бы не была длительность (в разумных пределах, конечно) импульса. Мне кажется, что схема с 3 тригерами от этого не спасает. Единственное, что в 3-х тригерном варианте хорошо - так то, что вероятность попадания в метастабильное состояние намного меньше. Всего наилучшего. <{POST_SNAPBACK}> Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
pyadvychuk 0 2 ноября, 2005 Опубликовано 2 ноября, 2005 · Жалоба есть тактовая частота 50 мгц и асинхронно к ней приходящий срез сигнала по этому срезу надо сформировать положительный импульс длительностью 1 такт тактовой частоты и синхронный с этой тактовой частотой пробовал что описано здесь что-то не получается подскажите пожалуйста что можно сделать ? <{POST_SNAPBACK}> предлагаю разбить задачу на 2этапа 1 - перевод асинхронного входного сигнала в клок домен 2 - выделение заднего фронта синхронного сигнала 1- смотрите как делать во вложении.. что то типа signal inS_async, inS, inSdly : std_logic; process begin wait until (clk='1' and clk'event); inSdly <= inS_async; inS <= inSdly; end process; 2 - могу предложить типа Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
pyadvychuk 0 2 ноября, 2005 Опубликовано 2 ноября, 2005 · Жалоба есть тактовая частота 50 мгц и асинхронно к ней приходящий срез сигнала по этому срезу надо сформировать положительный импульс длительностью 1 такт тактовой частоты и синхронный с этой тактовой частотой пробовал что описано здесь что-то не получается подскажите пожалуйста что можно сделать ? <{POST_SNAPBACK}> предлагаю разбить задачу на 2этапа 1 - перевод асинхронного входного сигнала в клок домен 2 - выделение заднего фронта синхронного сигнала 1- смотрите как делать во вложении.. что то типа signal inS_async, inS, inSdly : std_logic; process begin wait until (clk='1' and clk'event); inSdly <= inS_async; inS <= inSdly; end process; 2 - могу предложить типа port (data,clk : in std_logic; pQ,mQ,dQ : out std_logic ); ----------------------------------- signal s : std_logic ; ----------------------------------- process begin wait until (clk='1' and clk'event); s <= not data after 5ns; end process ; pQ <= data and s ; mQ <= not(data or s); dQ <= not data xor s ; pQ - положительный фронт mQ - отрицательный фронт dQ - оба :) обьединяете два куска и получаете работоспособное решение вашей проблемы Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
pyadvychuk 0 2 ноября, 2005 Опубликовано 2 ноября, 2005 · Жалоба есть тактовая частота 50 мгц и асинхронно к ней приходящий срез сигнала по этому срезу надо сформировать положительный импульс длительностью 1 такт тактовой частоты и синхронный с этой тактовой частотой пробовал что описано здесь что-то не получается подскажите пожалуйста что можно сделать ? <{POST_SNAPBACK}> разбейте задачу на две: 1-приведение асинхронного сигнала в клок домен 2-выделение из синхронного сигнала заднего фронта 1'е решается сдвиговым регистром из 2-3х триггеров 2'e чем то типа entity front is port (data,clk : in std_logic; pQ,mQ,dQ : out std_logic); end; architecture arc of Front is signal s : std_logic ; begin process(clk) begin if clk='1' and clk'event then s <= not data after 5ns; end if ; end process ; pQ <= data and s ; mQ <= not(data or s); dQ <= not data xor s ; end; соедините два куска вместе и получите вполне работоспособное решение вашей проблемы Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
pyadvychuk 0 2 ноября, 2005 Опубликовано 2 ноября, 2005 · Жалоба во глюк то.. извиняюсь дико Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 16 3 ноября, 2005 Опубликовано 3 ноября, 2005 · Жалоба во глюк то.. извиняюсь дико <{POST_SNAPBACK}> Вы как аффтар можете удалить свои сообщения, нажав соотвецтвующую кнопку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
YUV 0 10 ноября, 2005 Опубликовано 10 ноября, 2005 · Жалоба Есть еще одна схемка... Надеюсь, не нужно объяснять как она работает? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться