yes 7 20 октября, 2010 Опубликовано 20 октября, 2010 · Жалоба и вижу, кучи "битых" отсчетов то есть в основном тактовом домене, который занимает 90% чипа (самый старший циклон 2) сигнал заведомо константа, например resetn (1) при оцифровки этого сигнала асинхронным signaltap-ом вижу достаточно много отсчетов в 0 (ну то есть иголки) это как понимать? раньше до такого извращения не додумывался, а сейчас захотел померить задержки внешних сигналов - и побочный результат меня удивил плата фирменная альтеровская, предполагаю, что питание там правильное, может это все таки сигналтап глючит? все-таки я могу тот же сброс сделать асинхронным, тогда иголки будут оказывать влияние на функциональность Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryR 0 20 октября, 2010 Опубликовано 20 октября, 2010 · Жалоба Можно посмотреть например, как формируется resetn. Можно перевести reset на асинхронный и посмотреть, влияет ли это. Можно наконец перевести SignalTap на синхронный клок. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 7 20 октября, 2010 Опубликовано 20 октября, 2010 · Жалоба вообще-то меня не интересует как починить, так как синхронная часть дизайна замечательно работает просто мне интересно - наблюдаю ли я какой-то глюк сигналтапа (причину такого глюка придумать не могу) или же действительно внутри плисины на "проводах" творится черт знает что в неважные моменты времени, скорее всего непосредственно после такта и успокаивается [задолго] перед следующим тогда квартус такой умный (upd: может квартус не умный, а железно в ПЛИСине такие цепи безглючны, но они где-то же подключаются к интерконнекту) и допускает такое для синхронных сигналов, а асинхронные разводит более тщательно - бывают асинхронные блоки, но они же работают ??? ----------------- в даном случае reset выход комбинаторной схемы - выход триггера, выход lock pll и т.п. по AND Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 20 октября, 2010 Опубликовано 20 октября, 2010 · Жалоба выход lock pll и т.п. по AND так, может, в lock pll и дело? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 21 октября, 2010 Опубликовано 21 октября, 2010 · Жалоба или же действительно внутри плисины на "проводах" творится черт знает что в неважные моменты времени, скорее всего непосредственно после такта и успокаивается [задолго] перед следующим судя по тому, как я с бубном танцевал с сыклонами 3, там может быть всё что угодно %( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryR 0 21 октября, 2010 Опубликовано 21 октября, 2010 · Жалоба в даном случае reset выход комбинаторной схемы - выход триггера, выход lock pll и т.п. по AND Начнем с того, что такой ресет нельзя делать синхронным: у вас пропадет частота, но упавший lock не сбросит схему, потому что пропала частота, а сброс синхронный. То есть, reset надо делать асинхронным. А тут уже вам придется разобраться, почему он гуляет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 25 октября, 2010 Опубликовано 25 октября, 2010 · Жалоба Хотелось бы докопаться до истины в данном вопросе. Можно было бы поотключать поочереди сигналы, объединяемые по AND и посмотреть на результирующий сигнал сброса. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 7 25 октября, 2010 Опубликовано 25 октября, 2010 · Жалоба да не гуляет _синхронный_ сброс - все в нем хорошо, то есть микропроцессор от этого сброса не сбрасывается, а продолжает работать экспериментировать дальше пока времени нет, вот описание сброса (типа по Гейслеру), то есть для системы используется rstout (выход триггера) async : if syncrst = 0 generate reg1 : process (clk, arst) begin if rising_edge(clk) then r <= r(3 downto 0) & clklock; rstoutl <= r(4) and r(3) and r(2); end if; if (arst = '0') then r <= "00000"; rstoutl <= '0'; end if; end process; rstout <= (rstoutl and rst) when scanen = 1 else rstoutl; end generate; наблюдал rstout, при этом не только он но и другие сигналы имеют "иголки" - просто объяснить, что это не так мне было бы сложнее чем сброс, поэтому в качестве примера я привел сброс -------------------------- кстати не вижу никакой проблемы использовать LOCK для синхр. сброса - в любом случае тактовый сигнал появляется до того как поднимется LOCK, поэтому если сброс не заведен на управление PLL, то sync : if syncrst = 1 generate reg1 : process (clk) begin if rising_edge(clk) then r <= (r(3 downto 0) & clklock) and (rst & rst & rst & rst & rst); rstoutl <= r(4) and r(3) and r(2); end if; end process; rstout <= rstoutl and rst; end generate; такая конструкция не имеет проблем (разве что до появления сброса схема находится в неопределенном состоянии - но так как внутри ПЛИСины трехстабильных шин и конфликта драйверов нет, то если немножко до появления клока постоит враскоряку то ничего страшного) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryR 0 27 октября, 2010 Опубликовано 27 октября, 2010 · Жалоба кстати не вижу никакой проблемы использовать LOCK для синхр. сбросаВы может и не видите, зато видит Xilinx. Попробуйте в Coregen при конфигурировании PLL например не вывести LOCK - он вам сразу скажет, что это опасно, так как пока PLL не установила режим - все тактируемые ей триггеры должны быть сброшены. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться