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

 
 
> Не работает кусок логики, Вроде элементарно, но не работает..туплю...
Саша 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



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

 


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


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