реклама на сайте
подробности

 
 
> Altera (Cyclone II) signal integrity как то удивительно, подключил signal tap асинхронным клоком
yes
сообщение Oct 20 2010, 11:23
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



и вижу, кучи "битых" отсчетов

то есть в основном тактовом домене, который занимает 90% чипа (самый старший циклон 2) сигнал заведомо константа, например resetn (1)
при оцифровки этого сигнала асинхронным signaltap-ом вижу достаточно много отсчетов в 0 (ну то есть иголки)

это как понимать?

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

плата фирменная альтеровская, предполагаю, что питание там правильное,
может это все таки сигналтап глючит?
все-таки я могу тот же сброс сделать асинхронным, тогда иголки будут оказывать влияние на функциональность


Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ViKo
сообщение Oct 25 2010, 08:57
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Хотелось бы докопаться до истины в данном вопросе.
Можно было бы поотключать поочереди сигналы, объединяемые по AND и посмотреть на результирующий сигнал сброса.
Go to the top of the page
 
+Quote Post
yes
сообщение Oct 25 2010, 10:26
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



да не гуляет _синхронный_ сброс - все в нем хорошо, то есть микропроцессор от этого сброса не сбрасывается, а продолжает работать
экспериментировать дальше пока времени нет,
вот описание сброса (типа по Гейслеру), то есть для системы используется 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;

такая конструкция не имеет проблем (разве что до появления сброса схема находится в неопределенном состоянии - но так как внутри ПЛИСины трехстабильных шин и конфликта драйверов нет, то если немножко до появления клока постоит враскоряку то ничего страшного)
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Oct 27 2010, 10:27
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(yes @ Oct 25 2010, 14:26) *
кстати не вижу никакой проблемы использовать LOCK для синхр. сброса
Вы может и не видите, зато видит Xilinx. Попробуйте в Coregen при конфигурировании PLL например не вывести LOCK - он вам сразу скажет, что это опасно, так как пока PLL не установила режим - все тактируемые ей триггеры должны быть сброшены.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 23:13
Рейтинг@Mail.ru


Страница сгенерированна за 0.01465 секунд с 7
ELECTRONIX ©2004-2016