Всем привет!
Имеется платка со Spartan 6 (XC6SLX9), в 144 ногом корпусе.
В ней есть прошивка полностью рабочая. На ПЛИС идет клок 50 МГц, внутри он поднимается до 100 МГц.
Понадобилось добавить управление внешним ключом, который подключен к 143 ноге. Просто один из сигналов что шел внутри плис с инверсией вывели на ружу на эту ногу, и понеслось....
если пишем на эту ногу 1, 0, инверсию внутренего сигнала, ПЛИС перестает работать. Не загорается диодик подтверждения LOCKED PLL. Более того появляется сообщение о какой-то комбинаторной логике на сигнале получаемом делением основного клока.
в куске кода
Код
output port143;
assign port143 = ~reset;
if (reset)
CLK<=1'b0;
else
begin
if(clk_dev < DEVIDER)
clk_dev <= clk_dev + 1;
else
begin
clk_dev <=0;
CLK<=~CLK;
end
end
вот на этот CLK жалуется синтезатор.
При этом в пустом проекте на эту ногу можно вывести частоту и она будет шевелится
Также если вывести желаемый нам сигнал управления ключом на другую ногу, то опять же все работает.
Если выводит на 143 ногу уровни, они задаются, но плис все равно мертвая....
Пробовали не включать ПЛЛ, подали внешний клок, и результат тот же
143 нога по совместительству еще и VREF 0 банка, но в нем используется уровни по умолчанию, другие сигналы на других ногах VREFE этого банка есть и работают.
Вообщем либо я сделал что-то очень глупое, либо это какая - то магия. И главное что я не представляю что можно еще проверить, что покрутить, как диагностировать в чем косяк... Не резать же из-за такой глупости дорожку, и не паяться же на другие ноги соплей...