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

 
 
> начальное значение триггеров после прошивки, altera
bogaev_roman
сообщение Oct 5 2016, 07:40
Сообщение #1


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

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Добрый день, Уважаемые форумчане. Насколько я помню в fpga altera после загрузки прошивки по умолчанию все триггеры находятся в 0, тема даже обсуждалось. Проблема в том, что начальство просит меня тыкнуть пальцем в официальную документацию - может кто-нибудь кинет ссылку или название документа, где это может быть прописано? Память (RAM), насколько я помню, находится в неопределенном состоянии?
Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
yes
сообщение Oct 7 2016, 17:34
Сообщение #2


Гуру
******

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



а атрибуты, которыми указать, что триггер в 1 - есть? у ксайлинсов вроде так.
ну и еще по поводу сброса - в современных ПЛИС нету отдельных цепей сброса - то есть будут тратиться ресурсы (глобальный интерконект)
нужно ли это?

но это общее рассуждение, нужно смотреть конкретное семейство.

например Гейслер принципиально не делает сброса (только для очень редких регистров)) - утверждает, что сильно улучшает этим времянку среднестатистическую (для произвольной ПЛИС и вендора). это создавало определенные проблемы и я с ним достаточно долго спорил, потом плюнул и поправил свою копию его либы.

Go to the top of the page
 
+Quote Post
Tiro
сообщение Oct 7 2016, 22:39
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 781
Регистрация: 3-10-04
Из: Санкт-Петербург
Пользователь №: 768



Цитата(yes @ Oct 7 2016, 20:34) *
а атрибуты, которыми указать, что триггер в 1 - есть? у ксайлинсов вроде так.


Импульс сброса длительностью 1 такт

Код
//    Synchronization timers
//    Don't use asynchronous "dev_clrn" signal with external superviser

    reg    clear_event;
    initial clear_event = 1'b 1;

    always @( posedge clock ) clear_event <= 1'b 0;


Или еще вариант установки и способ применения.

CODE

// Synchronization timers
// Don't use asynchronous "dev_clrn" signal with external superviser

reg clear_event = 1'b 1;

always @( posedge clock ) clear_event <= 1'b 0;

// Autoreload timer ( 1 ms )

wire sample_1ms;

timer_n #( .NBITS ( 15 ), .NTICKS ( 24_999 ) )
u25 (
.clock ( clock ),
.clear ( 1'b 0 ),
.load ( sample_1ms | clear_event ),
.count ( 1'b 1 ),
.done ( sample_1ms )
);

// Global clear trigger and interval timer ( 100 ms )

wire clear_done;
reg clear;

always @( posedge clock, posedge clear_event )

if ( clear_event ) clear <= 1'b 1;
else if ( clear_done ) clear <= 1'b 0;

timer_n #( .NBITS ( 7 ), .NTICKS ( 100 ) )
u26 (
.clock ( clock ),
.clear ( 1'b 0 ),
.load ( clear_event ),
.count ( sample_1ms & !clear_done ),
.done ( clear_done )
);

// Module asynchronous clear trigger and interval timer ( 10 ms )

wire logic_clear_done;
reg logic_clear;

always @( posedge clock, posedge clear )

if ( clear ) logic_clear <= 1'b 1;
else if ( logic_clear_done ) logic_clear <= 1'b 0;

timer_n #( .NBITS ( 4 ), .NTICKS ( 10 ) )
u27 (
.clock ( clock ),
.clear ( 1'b 0 ),
.load ( clear ),
.count ( sample_1ms & !logic_clear_done ),
.done ( logic_clear_done )
);



Такие сигналы можно заводить на асинхронные входы сброса/установки триггеров, они синхронизированы с клоком.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 1st September 2025 - 02:51
Рейтинг@Mail.ru


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