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

 
 
> Не работает кусок логики, Вроде элементарно, но не работает..туплю...
Саша Z
сообщение May 11 2009, 15:34
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Простой кусочек кода проэкта не работает, сижу пол дня над ним, туплю, не понимаю почему молчит.

Код
out_swithing: process(nRST, CLK, OUT_SW, PATTERN)    
    begin
        if rising_edge(CLK) then
        
            if nRST = RST_pol then
                
                OUT_SW_sig <= OUT_SW;
                
                PATTERN_sig <= PATTERN;
                
            else
                OUT_SW_sig <= OUT_SW_sig;
                
                PATTERN_sig <= PATTERN_sig;
            end if;
            
        end if;
end process;


смысл кода в том что-бы синхронно читать вход OUT_SW в внутренний сигнал OUT_SW_sig только во время активизации глобального сброса (nRST). Когда-же сброс не активизирован - сигнал удерживает последнее значение. Это нужно для конфигурации системы.

OUT_SW - определен в entity как input, std_logic;
OUT_SW_sig - определен как сигнал в architecture
OUT_SW_sig - выводится на выход для debugа

Второй вход/сигнал не проверял еще.

В функциональной симуляции работает нормально, в тайминговой и в железе - не работает, т.е. OUT_SW_sig заткнут постоянно в '0';
Когда в процессе debugа ставлю постоянное значение на выход OUT_SW_sig (например '1') - нормально выводится на выход в железе.
Когда вешаю на OUT_SW_sig сам вход OUT_SW и им играюсь (он на dip-switchе) - тоже нормально работает в железе.

А вот в коде - никак.

Чего делаю левого ?

Спасибо..

P.S. FPGA - Lattice ECP2 (LFE2-50E)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SM
сообщение May 11 2009, 15:40
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(Саша Z @ May 11 2009, 19:34) *
P.S. FPGA - Lattice

Скорее всего на каком-то этапе кто-то (как синплифи, так и исплевер, оба умеют) сунули сигнал резета на GSR. Уберите его оттуда, пустите по обычным сигнальным путям, и жизнь станет хороша. Код тут не причем. GSR железно резетит все ваши регистры, пока он активен, и этот код просто физически не работает. Тайминг-симуляция GSR тоже поддерживает, поэтому в ней тоже не работает.
Go to the top of the page
 
+Quote Post
Саша Z
сообщение May 11 2009, 15:50
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Цитата(SM @ May 11 2009, 18:40) *
Скорее всего на каком-то этапе кто-то (как синплифи, так и исплевер, оба умеют) сунули сигнал резета на GSR. Уберите его оттуда, пустите по обычным сигнальным путям, и жизнь станет хороша. Код тут не причем. GSR железно резетит все ваши регистры, пока он активен, и этот код просто физически не работает. Тайминг-симуляция GSR тоже поддерживает, поэтому в ней тоже не работает.


Вуаля...
Очень похоже на сей случай. Я GSR специально использую и на него завожу вход nRST.
По моему есть атрибуты "убирания" GSRа с конкретных регистров, забыл их....
Нужно будет заатрибутить OUT_SW_sig (и второй сигнал), тогда надеюсь проблема решиться....

Не подскажете-ли сии атрибуты (синтакс) ? Буду премного благодарен....
Go to the top of the page
 
+Quote Post
SM
сообщение May 11 2009, 16:39
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(Саша Z @ May 11 2009, 19:50) *
Не подскажете-ли сии атрибуты (синтакс) ? Буду премного благодарен....

Не, не подскажу. Я от Вас об этой возможности впервые слышу, тоже было бы интересно. Я просто везде где могу GSR отключаю в таких проектах, где не надо все ресетить. И, докучи, завожу его на жесткую 1, чтобы всякие там синтезаторы самодеятельностью не занимались.

Почитал я тут, полистал... http://www.latticesemi.com/dynamic/view_do...cument_id=31408 Как я понял, надо вынести этот блок в отдельный модуль, и при его подключении указать:
Код
module_name mod_inst( signal list) /* synthesis GSR=DISABLED */;


Только расскажите, получилось ли smile.gif
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd August 2025 - 10:53
Рейтинг@Mail.ru


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