|
|
  |
начальное значение триггеров после прошивки, altera |
|
|
|
Oct 5 2016, 07:47
|
Местный
  
Группа: Свой
Сообщений: 498
Регистрация: 4-10-04
Из: Нижний Новгород
Пользователь №: 771

|
Цитата(bogaev_roman @ Oct 5 2016, 10:40)  Добрый день, Уважаемые форумчане. Насколько я помню в fpga altera после загрузки прошивки по умолчанию все триггеры находятся в 0, тема даже обсуждалось. Проблема в том, что начальство просит меня тыкнуть пальцем в официальную документацию - может кто-нибудь кинет ссылку или название документа, где это может быть прописано? Память (RAM), насколько я помню, находится в неопределенном состоянии? Спасибо. http://quartushelp.altera.com/14.0/mergedP...p_dont_care.htmможет это их убедит
--------------------
Человек - это существо, которое охотнее всего рассуждает о том, в чем меньше всего разбирается.
|
|
|
|
|
Oct 5 2016, 08:47
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
Цитата(Realking @ Oct 5 2016, 11:47)  Я думаю подойдет и это, спасибо. Хотя по этой настройке вышел на явное указание: Цитата Registers in the device core always power up to a low (0) logic level on all Altera devices. However, there are ways to implement logic such that registers behave as if they were powering up to a high (1) logic level. И эта фраза в документе хандбука на квартус в главе Recommended HDL Coding Styles.
|
|
|
|
|
Oct 6 2016, 11:13
|
Частый гость
 
Группа: Участник
Сообщений: 156
Регистрация: 15-04-10
Пользователь №: 56 673

|
Цитата(Vascom @ Oct 5 2016, 12:08)  Но в целом на это лучше не надеяться и использовать явную установку в "0" или "1" по асинхронному сигналу reset. Тогда код будет одинаково работать на любой FPGA, ASIC и при симуляции. Вопрос упирается в экономию соединений. Нет reset, значит нет лишних лишних связей. Если начальная установка происходит один раз в конце конфигурации, то лучше reset не тянуть, а вместо этого, если позволяет ПЛИС, инициализировать триггеры средствами языка.
Сообщение отредактировал likeasm - Oct 6 2016, 14:58
|
|
|
|
|
Oct 7 2016, 22:39
|
Знающий
   
Группа: Свой
Сообщений: 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 ) );
Такие сигналы можно заводить на асинхронные входы сброса/установки триггеров, они синхронизированы с клоком.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|