Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Signal cannot be synthesized, bad synchronous description.
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
count_enable
Прошу извинить меня за такой простой вопрос, но я никогда в VHDL силён не был, а сейчас надо учиться заново после годичного перерыва.
Код ниже нормально работает в iSim но не синтезируется в ISE 14.2. Подозреваю проблема в одновременном сравнении переменных и их модификации.
Код
architecture Behavioral of neuron is
signal MembranePotential: integer range smallest_int to maximum_int :=0;
signal Refract_period: integer range 0 to refractory_len:=0;
signal Refract_en: std_logic;
signal SPIKEOUT: std_logic :='0';
begin
process( FASTCLK)
begin
    if falling_edge(RST) then
            SPIKEOUT<='0';    
            MembranePotential<=0;
    elsif falling_edge(SLOW_CLK) then                                -- degrading membrane potential            
        if MembranePotential>MembraneThreshold then                -- spike
            MembranePotential<=0;
            SPIKEOUT<='1';
            Refract_period<=refractory_len;
        elsif MembranePotential>0 then
            MembranePotential<=MembranePotential-MembraneDegradationRate;
        elsif SPIKEOUT='1' then                                    --refractory period degradation
            Refract_period<=Refract_period -1;
            SPIKEOUT<='0';
        end if;    
    elsif falling_edge(IN_SPIKE) then                            -- adding incoming spike
        if Refract_period=0 then
            MembranePotential<=MembranePotential+conv_integer(IN_WEIGHT);
        end if;        
    end if;    
end process;
OUTPUT<=SPIKEOUT;
end Behavioral;


Переписал "двуступенчато" с промежуточными сигналами, проблема осталась. В "Проектировании цифровых схем на VHDL" Суворовой ничего не говорится о таких ограничениях.
XVR
У вас в списке чувствительности процесса фигурирует FASTCLK, как бы намекая, что это будет клок. А в самом процессе фигурируют RST, SLOW_CLK и IN_SPIKE (причем все под if falling_edge), как бы говоря, что клоки совсем другие, причем их аж 3 штуки на одни и те же триггера. FPGA такого не умеет чисто физически sad.gif

crono
Вот эту ветку посмотрите.
Там много написано про списки чувствительности и синхронные и асинхронные процессы.
count_enable
Спасибо, уже понял что falling_edge как Горец, может быть только один. Тогда вопрос по асинхронному дизайну: если есть несколько драйверов сигналов, оперирующих на одной переменной, есть ли смысл пытаться сделать дизайн без глобального клока (так лучше для концепции), или не мучиться и сделать синхронно, с глобальным клоком? А то сначала я пытался разнести все драйвера в отдельные процессы, но как я понимаю два процесса не могут оперировать на одном сигнале.
crono
Что такое
Цитата(count_enable @ Mar 25 2013, 14:05) *
несколько драйверов сигналов, оперирующих на одной переменной

?
count_enable
Например MembranePotential меняется при falling_edge(IN_SPIKE) и при falling_edge(SLOW_CLK). Можно ли сделать два процесса с этим сигналом?
crono
Цитата(count_enable @ Mar 25 2013, 14:20) *
Например MembranePotential меняется при falling_edge(IN_SPIKE) и при falling_edge(SLOW_CLK). Можно ли сделать два процесса с этим сигналом?

Нельзя
Maverick
Цитата(count_enable @ Mar 25 2013, 13:20) *
Например MembranePotential меняется при falling_edge(IN_SPIKE) и при falling_edge(SLOW_CLK). Можно ли сделать два процесса с этим сигналом?

Вы можете сделать следующим образом: Схема работает на высокой тактовой частоте (Ваша основная частота в ПЛИС), сигналы которые поступают из вне привязываете/синхронизируете к своей тактовой частоте (детектируете передний/задний фронт сигнала) и дальше работаете с этими импульсами, которые уже синхронизированы... (см вложение)
PS Возможно совет не в тему, но я подозреваю, что проблема кроется именно тут...
count_enable
Вообще-то это не реальный девайс, а концепция быстрой нейросети с простыми элементами. Хотелось сделать чисто асинхронный дизайн, он бы красивый получился. Ну и в публикации скорость работы была бы выше.
Большое спасибо всем за ответы.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.