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

 
 
> Как защититься от латчей?
-=Vitaly=-
сообщение Apr 27 2007, 09:26
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 468
Регистрация: 31-08-06
Из: Киев
Пользователь №: 19 991



Здравствуйте!!

Предположим меется много конструкций типа if -else if-else в блоке always(*) естественно внутри сигналы типа reg, и если не перебираются все варианты if -else if-else, то получится защелка.

Можно ли подобные конструкции (if -else if-else) или что-то похожее применять для переменных типа wire, чтобы быть застрахованным от появления латчей??

В качестве примера:

Код
always@(*)

        if(MAX_DATA>HiTreshold)  
            begin
                FR_EN_UPD<=1'b1;
                if(LDAC!=X_REG && LDAC<LDAC+SUPR )
                    LDAC_UPD<=LDAC+SUPR;
                else
                    LDAC_UPD<=X_REG;
                if(LDAC==X_REG && PRBS_REG!=2'b11)      
                    PRBS_INC_UPD<=1'b1;      
            end      
        //--------------------------------------------------------------------------------------    
        else if    (MAX_DATA<HiTreshold && MAX_DATA>LoTreshold5 && FR_EN_OLD!=1'b1)
            begin
            FR_EN_UPD<=1'b0;
            LDAC_UPD<=LDAC;    
            PRBS_INC_UPD<=1'b0;
            PRBS_DECR_UPD<=1'b0;
            end


СПС blush.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
CodeWarrior1241
сообщение Apr 30 2007, 00:57
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 496
Регистрация: 14-03-07
Из: In The District
Пользователь №: 26 165



Мне в универе твердили кое-что по этой теме, свазанное с привязанным к этому посту доком... Говорили что
Цитата
In general, case statements would translate to parallel muxes in hardware. Meanwhile, the use of if – else statements results in priority-based hardware, which can slow down the overall implementation of the design. Thus, only use if – else statement when priority-based hardware is required. Otherwise, use case statements to avoid possible inefficient implementation of the design. While unlikely to produce incorrect outputs, the slowdown caused by large priority-based implementations can cause problems for projects with strict clock frequency targets.

Я в принципе всегда этому следовал, и if-else структур у меня в проектах не так много. Резонно ли это, или совремменым tools все равно?
Прикрепленные файлы
Прикрепленный файл  Designing_For_Synthesis.pdf ( 37.14 килобайт ) Кол-во скачиваний: 280
 


--------------------
In Mozilla, you keep tabs on your browser. In the USSR, your browser keeps tabs on you.
Go to the top of the page
 
+Quote Post
CaPpuCcino
сообщение Apr 30 2007, 01:49
Сообщение #3


тоже уже Гуру
******

Группа: Свой
Сообщений: 2 047
Регистрация: 13-06-05
Из: Кёлн - Санкт-Петербург
Пользователь №: 5 973



Цитата(CodeWarrior1241 @ Apr 30 2007, 01:57) *
Мне в универе твердили кое-что по этой теме, свазанное с привязанным к этому посту доком... Говорили что
Я в принципе всегда этому следовал, и if-else структур у меня в проектах не так много. Резонно ли это, или совремменым tools все равно?

по этому поводу в новый стандарт(1800-2005) ввели ключевые слова unique[b/], [b]priority как модификаторы case , if-esle if чтобы определйть однозначно что делать синтезатору


--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
Go to the top of the page
 
+Quote Post



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

 


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


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