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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Altera - начальное состояние, Все ли триггеры инициализируются прошивкой?
ViKo
сообщение Mar 13 2014, 04:20
Сообщение #16


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

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



У меня сделано так.
Код
module Reset_m (
  input    bit        res_ext,    //!< External reset (knob, port)
  input    bit        no_lock,    //!< PLL no locked reset
  input    bit        res_cmd,    //!< MCU command reset
  input    bit        clks,        //!< Slow Clock
output    bit        res_int        //!< Internal wide device reset
);
  bit            rest;        //!< Reset start
  assign rest = res_ext || no_lock || res_cmd;
  
  bit        [1:0]    ress;        //!< Reset sequence
  always_ff @(posedge rest, posedge clks) begin
    if (rest) ress <= '1;
    else ress <= {ress[0], 1'b0};
  end
  assign res_int = ress[1];

endmodule : Reset_m

После того, как PLL захватила, формируется сброс в течение двух тактов.
upd. Не двух, а "как повезет", от одного до двух. Если мало, можно добавить в последовательность.
Go to the top of the page
 
+Quote Post
dima32rus
сообщение Mar 17 2014, 06:41
Сообщение #17


Частый гость
**

Группа: Свой
Сообщений: 134
Регистрация: 9-11-12
Из: г. Брянск
Пользователь №: 74 311



А почему бы сигнал locked с PLL не использовать для асинхронного сброса? Всегда так делаю, проблемы не возникает. Все всегда работает:

Код
reg [04:00] cnt;

always @(posedge CLK or negedge nRESET)
    begin
        if (!nRESET)
            begin                                    
                cnt <= 0;                
            end
        else
            begin    
                cnt <= cnt + 1'b1;                                
            end    
    end


Сигнал nRESET идет прямо с выхода locked PLL

Сообщение отредактировал dima32rus - Mar 17 2014, 06:48
Go to the top of the page
 
+Quote Post
ilkz
сообщение Mar 17 2014, 06:46
Сообщение #18


Частый гость
**

Группа: Участник
Сообщений: 135
Регистрация: 9-09-11
Пользователь №: 67 084



На временном пост-фиттерном моделировании (встренным моделятором) в квартусе 9.2SP2 и ниже видел такое странное дело, когда при вставшем в единицу LOCKED частота у PLL еще тактов 10-15 могла немного, совсем чуть-чуть, гулять. Может это были глюки симулятора или отображения сигналов, но глазом при различных масштабах зума времянки это было заметно. Поэтому при сбросе от LOCKED лучше делать небольшой счетчик, который либо отложит сброс схемы ненадолго, либо подольше подержит схему в сбросе.
Go to the top of the page
 
+Quote Post
o_khavin
сообщение Mar 17 2014, 06:46
Сообщение #19


Местный
***

Группа: Участник
Сообщений: 230
Регистрация: 29-08-09
Пользователь №: 52 094



Цитата(dima32rus @ Mar 17 2014, 10:41) *
Всегда так делаю, проблемы не возникает. Все всегда работает:

Значит у Вас ещё впереди много неизведанного. biggrin.gif
Go to the top of the page
 
+Quote Post
dima32rus
сообщение Mar 17 2014, 06:57
Сообщение #20


Частый гость
**

Группа: Свой
Сообщений: 134
Регистрация: 9-11-12
Из: г. Брянск
Пользователь №: 74 311



Цитата(ilkz @ Mar 17 2014, 10:46) *
На временном пост-фиттерном моделировании (встренным моделятором) в квартусе 9.2SP2 и ниже видел такое странное дело, когда при вставшем в единицу LOCKED частота у PLL еще тактов 10-15 могла немного, совсем чуть-чуть, гулять. Может это были глюки симулятора или отображения сигналов, но глазом при различных масштабах зума времянки это было заметно. Поэтому при сбросе от LOCKED лучше делать небольшой счетчик, который либо отложит сброс схемы ненадолго, либо подольше подержит схему в сбросе.


Моделирую в ModelSim, там все нормально. Скорее всего, глюк кокого-то из этих симуляторов. Но у меня ни в одном проекте еще не было проблем с начальным сбросом схемы. Тьфу-тьфу-тьфу rolleyes.gif
Go to the top of the page
 
+Quote Post
Torpeda
сообщение Mar 17 2014, 08:08
Сообщение #21


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 23-02-12
Пользователь №: 70 424



Цитата(DmitryR @ Mar 6 2014, 14:58) *
Я привык считать, что вне зависимости от настроек компилятора (то есть даже в случае, когда установлена опция "PowerUp do not care") все триггеры ПЛИС после инициализации всегда находятся в детерминированном состоянии.

Вы точно уверены что именно в этой ПЛИС тригеры 0 после включения и стабилизации частоты?
Вроде надо спец опцию компилятора для этого включать.... и не все семейства такую опцию имеют....
Go to the top of the page
 
+Quote Post
SM
сообщение Mar 17 2014, 08:53
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(ilkz @ Mar 17 2014, 10:46) *
когда при вставшем в единицу LOCKED частота у PLL еще тактов 10-15 могла немного, совсем чуть-чуть, гулять. Может это были глюки


Это не глюки, это принцип работы детектора захвата. Он выдает 1, когда фаза находится в зоне захвата какое-то определенное время, а зона захвата не такая уж и узкая, и плюс переходной процесс фильтра. Короче, так и должно быть.
Go to the top of the page
 
+Quote Post
ilkz
сообщение Mar 17 2014, 09:37
Сообщение #23


Частый гость
**

Группа: Участник
Сообщений: 135
Регистрация: 9-09-11
Пользователь №: 67 084



Понятно, значит дело в полосе захвата клока pll-кой. Тогда, все логично, так и должно быть )

Но тогда почему такого поведения нет в моделсиме, как писал dima32rus? Кстати, у меня в моделсиме такое поведение тоже не наблюдается (правда, в моделсиме я провожу только функциональное моделирование).
Go to the top of the page
 
+Quote Post
SM
сообщение Mar 17 2014, 09:46
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Встроенный моделятор квартуса это совсем другое дело, по сравнению со всякими там HDL-симуляторами....
Go to the top of the page
 
+Quote Post
dima32rus
сообщение Mar 17 2014, 09:58
Сообщение #25


Частый гость
**

Группа: Свой
Сообщений: 134
Регистрация: 9-11-12
Из: г. Брянск
Пользователь №: 74 311



Прикладываю скриншот из моделсима для Gate Level Simulation. Как видно, нестабилен только самый первый такт после утановки сигнала nRESET (locked PLL). Дальше тактовая частота уже не гуляет. Совсем.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
o_khavin
сообщение Mar 17 2014, 10:46
Сообщение #26


Местный
***

Группа: Участник
Сообщений: 230
Регистрация: 29-08-09
Пользователь №: 52 094



Цитата(SM @ Mar 17 2014, 13:46) *
Встроенный моделятор квартуса это совсем другое дело, по сравнению со всякими там HDL-симуляторами....

Можно пруф? Что именно симулятор Квартуса такого симулирует отличающегося от других HDL-симуляторов? Там какой-то секретный HDL используется? biggrin.gif Мне почему то казалось, что один и тот же HDL-код должен одинаково вести себя во всех симуляторах, которые написаны с применением стандарта. А если не ведёт, то надо пинать ногой писателя этого симулятора.
Скорее уже, в самой модели PLL-и может быть какой-нить параметр, который отвечает за упрощённое моделирование процесса в целях ускорения симуляции. Мне подобное встречалось, к примеру, в моделях DDR-памяти (уменьшение фактической глубины памяти на несколько порядков) и, если не изменяет память, в моделях примитивов Xilinx-а.

Сообщение отредактировал o_khavin - Mar 17 2014, 10:47
Go to the top of the page
 
+Quote Post
alexadmin
сообщение Mar 17 2014, 10:56
Сообщение #27


Знающий
****

Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



Цитата(o_khavin @ Mar 17 2014, 14:46) *
Скорее уже, в самой модели PLL-и может быть какой-нить параметр, который отвечает за упрощённое моделирование процесса в целях ускорения симуляции.


И в альтеровской ПЛЛ такое вроде есть, но я бы в любом случае не полагался на результаты моделирования PLL. Ибо симуляционнаяL вряд ли будет полностью идентичной тому, что реализовано в кремнии. Это все-таки не цифровая логика с задержками.
Go to the top of the page
 
+Quote Post
SM
сообщение Mar 17 2014, 12:28
Сообщение #28


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(o_khavin @ Mar 17 2014, 14:46) *
Там какой-то секретный HDL используется?


Там вообще HDL никакой не используется. Там, грубо говоря, моделируется схема, получившаяся после разводки ПЛИС. Отсюда и его ограничения, что нельзя подключать тестбенчи, а надо задавать входные воздействия буквально руками, и отсюда же точность времянок и симуляции поведения железа куда лучше, чем vo+sdo+моделятор.

P.S. хотя, для описания их внутренних блоков, наверное, действительно, какой-то секретный HDL используется. Но мы этого никогда не узнаем, оно все там в бинарном виде совершенно не дешифрируемом.

P.P.S. По точности симуляции симуляция квартуса vs симуляция HDL - примерно как FastSPICE симуляция ASIC vs HDL.
Go to the top of the page
 
+Quote Post
o_khavin
сообщение Mar 17 2014, 12:38
Сообщение #29


Местный
***

Группа: Участник
Сообщений: 230
Регистрация: 29-08-09
Пользователь №: 52 094



Цитата(SM @ Mar 17 2014, 16:28) *
Там вообще HDL никакой не используется. Там, грубо говоря, моделируется схема, получившаяся после разводки ПЛИС.

Пруф в студию.
Go to the top of the page
 
+Quote Post
SM
сообщение Mar 17 2014, 12:44
Сообщение #30


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(o_khavin @ Mar 17 2014, 16:38) *
Пруф в студию.

Вам надо, сами и ищите. Мне сейчас некогда бесполезной и в реальности никому не нужной работой заниматься. Сорри.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 8th July 2025 - 14:29
Рейтинг@Mail.ru


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