|
|
  |
Altera - начальное состояние, Все ли триггеры инициализируются прошивкой? |
|
|
|
Mar 13 2014, 04:20
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 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. Не двух, а "как повезет", от одного до двух. Если мало, можно добавить в последовательность.
|
|
|
|
|
Mar 17 2014, 06:41
|
Частый гость
 
Группа: Свой
Сообщений: 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
|
|
|
|
|
Mar 17 2014, 06:57
|
Частый гость
 
Группа: Свой
Сообщений: 134
Регистрация: 9-11-12
Из: г. Брянск
Пользователь №: 74 311

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

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

|
Цитата(DmitryR @ Mar 6 2014, 14:58)  Я привык считать, что вне зависимости от настроек компилятора (то есть даже в случае, когда установлена опция "PowerUp do not care") все триггеры ПЛИС после инициализации всегда находятся в детерминированном состоянии. Вы точно уверены что именно в этой ПЛИС тригеры 0 после включения и стабилизации частоты? Вроде надо спец опцию компилятора для этого включать.... и не все семейства такую опцию имеют....
|
|
|
|
|
Mar 17 2014, 08:53
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(ilkz @ Mar 17 2014, 10:46)  когда при вставшем в единицу LOCKED частота у PLL еще тактов 10-15 могла немного, совсем чуть-чуть, гулять. Может это были глюки Это не глюки, это принцип работы детектора захвата. Он выдает 1, когда фаза находится в зоне захвата какое-то определенное время, а зона захвата не такая уж и узкая, и плюс переходной процесс фильтра. Короче, так и должно быть.
|
|
|
|
|
Mar 17 2014, 09:58
|
Частый гость
 
Группа: Свой
Сообщений: 134
Регистрация: 9-11-12
Из: г. Брянск
Пользователь №: 74 311

|
Прикладываю скриншот из моделсима для Gate Level Simulation. Как видно, нестабилен только самый первый такт после утановки сигнала nRESET (locked PLL). Дальше тактовая частота уже не гуляет. Совсем.
Эскизы прикрепленных изображений
|
|
|
|
|
Mar 17 2014, 10:46
|
Местный
  
Группа: Участник
Сообщений: 230
Регистрация: 29-08-09
Пользователь №: 52 094

|
Цитата(SM @ Mar 17 2014, 13:46)  Встроенный моделятор квартуса это совсем другое дело, по сравнению со всякими там HDL-симуляторами.... Можно пруф? Что именно симулятор Квартуса такого симулирует отличающегося от других HDL-симуляторов? Там какой-то секретный HDL используется?  Мне почему то казалось, что один и тот же HDL-код должен одинаково вести себя во всех симуляторах, которые написаны с применением стандарта. А если не ведёт, то надо пинать ногой писателя этого симулятора. Скорее уже, в самой модели PLL-и может быть какой-нить параметр, который отвечает за упрощённое моделирование процесса в целях ускорения симуляции. Мне подобное встречалось, к примеру, в моделях DDR-памяти (уменьшение фактической глубины памяти на несколько порядков) и, если не изменяет память, в моделях примитивов Xilinx-а.
Сообщение отредактировал o_khavin - Mar 17 2014, 10:47
|
|
|
|
|
Mar 17 2014, 12: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.
|
|
|
|
|
Mar 17 2014, 12:38
|
Местный
  
Группа: Участник
Сообщений: 230
Регистрация: 29-08-09
Пользователь №: 52 094

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