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

 
 
> Выработка внутреннего сигнала сброса, Как правильно?
MIX@
сообщение Feb 11 2009, 17:11
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 21-01-09
Пользователь №: 43 756



Доброго времени суток!

Что имею: Cyclone EP1C6T144C8.
Что нужно: после инициализации FPGA генерировать внутренний сигнал сброса для инициализации разработанных модулей (каждый модуль содержит вход асинхронного сброса).
Доступа к ногам ПЛИС я не имею, ибо всё это запаено в отладочной плате. Супервизора, генерирующего сигнал сброса тоже нету.

Посоветовали делать следующее:

Код
module internal_reset(clk,rst);
   input clk;
   output rst;
  
   reg [24:0] rst_cnt;
   wire rst = &rst_cnt;
   always @(posedge clk)
      if (!rst) rst_cnt <= rst_cnt + 1;
  
endmodule


Но синтезатор игнорирует последние 4 бита счётчика сброса, генерируя следующее:
Прикрепленное изображение


Два вопроса:
Как правильно генерировать резет в моём случае и что может быть причиной такой реакции синтезатора (в мануале приведён несуразный пример, не соответсвующий моему случаю)?

Заранее спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
EvgenyNik
сообщение Feb 11 2009, 17:46
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 597
Регистрация: 24-05-06
Из: г. Чебоксары
Пользователь №: 17 402



Я использую для этих целей сигнал Locked с выхода altpll, при условии, конечно, что на его входе стабильная частота и таких ресетов в течении работы не будет.


--------------------
Почему разработчики систем повышенной надёжности плохо справляются с простыми проектами? :)
Go to the top of the page
 
+Quote Post
sazh
сообщение Feb 11 2009, 18:26
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Цитата(MIX@ @ Feb 11 2009, 20:11) *
Два вопроса:
Как правильно генерировать резет в моём случае и что может быть причиной такой реакции синтезатора (в мануале приведён несуразный пример, не соответсвующий моему случаю)?


В мануале вполне приличный пример. Только гарантирован в среде Квартуса. И Ваш правильно квартусом синтезируется. Разве что на выходе триггер все таки просится.
Что касается внешних синтезаторов, то там и надо искать ответы.
reg [24:0] rst_cnt = 25'd0;
Он должен эту строчку понимать.
Go to the top of the page
 
+Quote Post
ClockworkOrange
сообщение Feb 12 2009, 11:00
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 337
Регистрация: 17-05-07
Пользователь №: 27 784



Цитата(MIX@ @ Feb 11 2009, 20:11) *
Посоветовали делать следующее:

Код
module internal_reset(clk,rst);
   input clk;
   output rst;
  
   reg [24:0] rst_cnt;
   wire rst = &rst_cnt;
   always @(posedge clk)
      if (!rst) rst_cnt <= rst_cnt + 1;
  
endmodule

очень мило...
только вот почему у вас такая слепая уверенность что по включении питания ваши триггеры в "0" встанут
(а иначе зачем вообще весь этот огород сресетом для основной схемы?!)


--------------------
Чтoбы yзнaть, кaкaя дopoгa впepeди, cпpocи тex, ктo пo нeй вoзвpaщaeтcя ©
Go to the top of the page
 
+Quote Post
sazh
сообщение Feb 12 2009, 11:09
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Цитата(ClockworkOrange @ Feb 12 2009, 14:00) *
только вот почему у вас такая слепая уверенность что по включении питания ваши триггеры в "0" встанут


Потому, что так написано.
Go to the top of the page
 
+Quote Post
EvgenyNik
сообщение Feb 12 2009, 11:46
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 597
Регистрация: 24-05-06
Из: г. Чебоксары
Пользователь №: 17 402



Цитата
только вот почему у вас такая слепая уверенность что по включении питания ваши триггеры в "0" встанут

С неопределённостью триггеров сталкивался только у CPLD, а именно у MAX7k от Altera (Xilinx просто не пользую), а у FPGA такого ни разу не наблюдал. Может, повезло... а может они конфигурируются сразу как надо... smile.gif


--------------------
Почему разработчики систем повышенной надёжности плохо справляются с простыми проектами? :)
Go to the top of the page
 
+Quote Post
alexadmin
сообщение Feb 12 2009, 15:24
Сообщение #7


Знающий
****

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



Цитата(Евгений Николаев @ Feb 12 2009, 14:46) *
С неопределённостью триггеров сталкивался только у CPLD, а именно у MAX7k от Altera (Xilinx просто не пользую), а у FPGA такого ни разу не наблюдал. Может, повезло... а может они конфигурируются сразу как надо... smile.gif


Реально я тоже не сталкивался, однако в синтезаторе квартуса есть вот такая опция:

Power-Up Don't care
Causes registers that do not have a Power-Up Level logic option setting to power up with a don't care logic level (X). A don't care setting allows the Compiler to change the power-up level of a register to minimize the area of the design.
Go to the top of the page
 
+Quote Post

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

 


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


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