Цитата(Sergey_Bekrenyov @ Oct 17 2013, 18:41)

1. Попробуйте вместо always @(posedge CLK) использовать CLK как разрешение счета
always @(posedge main_clk)
if(reset)
..
else if(CLK)
..
2. Попробуйте Ваш выход на ножку подтактировать main_clk
выход на ножку тактировать пробовал, теже... только в профиль
CLK я не использую в конструкциях типа always внутри проекта, он используется в клок форвардинге через выходной DDR.
Цитата(Flood @ Oct 17 2013, 19:08)

Так нельзя! Это лишь означает, что ограничений на этот порт нет и его можно развести на любую ножку.
Посмотрите pad report, там будет видно, куда плейсер пихнул этот пин. Возможно, как раз на ваш магический P143. А может, ваши проблемы с этим и не связаны. НО в любом случае, оставлять порт без LOC нельзя.
Интересно, и какая же частота ожидается на CLK?
Пока этот абсолютно не корректный асинхронный код не исправлен, двигаться дальше нельзя.
Забыл я про эту ножку, какой - то из ответов навел меня на мысль о ней. Есть вариант что 143 пин это последний оставшийся не занятый пин, и когда я его подключаю ресету не находится места. А можно как то LOC на землю сделать? понятно что можно внутри проекта ее занулить, но вот в констраине нет такого инструмента? (это я для общего развития)
Насчет куска кода - он выдран из контекста, но не приведя полного кода я так понял меня будут клевать
Код
reg CLK = 1;
reg INV_CLK = 0;
reg [3:0] Devider = 0;
localparam DIV_CONST = 2;
always @(posedge main_clk)
begin
if(reset == 1'b1)
begin
CLK <= 1'b1;
INV_CLK <= 1'b0;
Divider <= 0;
end
else
begin
if(Divider < DIV_CONST)
Divider <= Divider + 1;
else
begin
CLK <= ~CLK;
INV_CLK <= ~INV_CLK;
Divider <= 0;
end
end
end
я еще и ошибку в написании делителя исправил

круто да? теперь то точно заработает как надо...
ну я надеюсь понятно что ресет это сигнал,
Далее CLK и INV_CLK идут как клок и инверсный клок на выходной DDR, в качестве данных на который поданы 1 и 0, и в результате на ножке получается клоковый сигнал. Эта схема клок форвардинга предложенная xilinx, позволяет не задействовав глобальных клоковых буферов выводить наружу клок. Причем прелесть схемы такова что может работать не только posedge main_clk
а по обоим фронтам
always @(posedge main_clk or negedge main_clk) и получать делитель клока не только на четные значения, но и на нечетные.
так вот что еще интересно в этой ситуации варнинга на CLK нет, есть только на INV_CLK. Я допускаю что синтезатор рюхнул что один сигнал инверсия другого, потому сигнал в варнинге остался один. Но все равно странно, почему вывод наружу ресета, сделал этот сигнал непойми чем...
П.С. кусок кода я не копировал из проекта, написал просто еще раз, так что заметив опечатки не начинайте кричать что нашли из-за чего все не работает....