Перейти к содержанию
    

Закольцованная цепочка инверторов

Добрый день всем!

 

Как сделать цепочку инверторов (этак 31), закольцованную, чтобы квартус не не выкинул 30 из них в процессе оптимизации? Нужен этакий генератор.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день всем!

 

Как сделать цепочку инверторов (этак 31), закольцованную, чтобы квартус не не выкинул 30 из них в процессе оптимизации? Нужен этакий генератор.

У квартуса от такого безобразия крыша поедет. Оно конечно можно, как-то на очень низком уровне LCELLам указать, но скорее всего вы что-то делаете не так. Правильнее взять внешний клок, и или его использовать или внешний клок на PLL, и уже с него получить нужную частоту.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У квартуса от такого безобразия крыша поедет. Оно конечно можно, как-то на очень низком уровне LCELLам указать, но скорее всего вы что-то делаете не так. Правильнее взять внешний клок, и или его использовать или внешний клок на PLL, и уже с него получить нужную частоту.

Да все правильно, просто решение нестандартное. Из 3-х таких генераторов делается true-random генератор исключительно в ПЛИС, что и нужно.

У квартуса кстати крыша не едет, он ставит 1 инвертор вместо 31 и все. В technology map viewer смотрел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да все правильно, просто решение нестандартное. Из 3-х таких генераторов делается true-random генератор исключительно в ПЛИС, что и нужно.

У квартуса кстати крыша не едет, он ставит 1 инвертор вместо 31 и все. В technology map viewer смотрел.

Крыша у него должна поехать не от этого, а от того что эта схема должна генерить клок, а не переключаться от клока.

 

Может тут найдете чего-то

http://www.alteraforum.com/forum/showthrea...2133&page=2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вывести выводы инверторов на реальные пины плисы и на плате их соединить последовательно!

Для 31 инвертора потребуется 60 пина всего...

Но ето так :-)

Ради шутки юмара ))))

Изменено пользователем uragan90

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вывести выводы инверторов на реальные пины плисы и на плате их соединить последовательно!

Для 31 инвертора потребуется 60 пина всего...

Но ето так :-)

Ради шутки юмара ))))

 

Ради не шутки, можно на плате развести линию задержки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да все правильно, просто решение нестандартное. Из 3-х таких генераторов делается true-random генератор исключительно в ПЛИС, что и нужно.

У квартуса кстати крыша не едет, он ставит 1 инвертор вместо 31 и все. В technology map viewer смотрел.

В настройках установите запрет оптимизации. Правда не уверен, что для инверторов поможет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

 

Опишите нужное количество инверторов на примитивах Вашего FPGA (LCELL или LUT).

и будет вам генератор.

 

 

Удачи Rob.

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

 

Опишите нужное количество инверторов на примитивах Вашего FPGA (LCELL или LUT).

и будет вам генератор.

 

 

Удачи Rob.

Просто любопытство, а не покажите любой пример описания или схемы или не расскажите как это сделать по подробнее...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

 

В общем как-то так - кваки нет на компе, а Synplify "ворчит" на combinatorial loop но генерит похожую схему.

Для Altera даже из rtl version.

 

Успехов! Rob.

 

module Gen #(
    parameter N=15
)
(
    output G
);

wire [N-1:0] wi /* synthesis syn_keep=1 */;
assign G=wi[N-1];

genvar ii;
generate 
    for (ii=0;ii<N;ii++) begin:gen
        //rtl version
        assign wi[ii==(N-1) ? 0 : ii+1]=!wi[ii];
/*        
        //primitive version (example for Xilinx LUT)        
        LUT1 #(
            .INIT(2'b01) // 0->1, 1->0
        )
        LUT1_i (
            .O (wi[ii==(N-1) ? 0: ii+1] ), // LUT output
            .I0(wi[ii]                  )  // LUT input
        ); 
*/        
    end

endgenerate
endmodule

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем спасибо, сделал немного по-другому, но генератор генерит, частота около 120мгц на 31 инверторе

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем спасибо, сделал немного по-другому, но генератор генерит, частота около 120мгц на 31 инверторе

 

А если подуть на чип вентилятором хорошо (или наоборот феном)? Праздное любопытство, но интересно...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А если подуть на чип вентилятором хорошо (или наоборот феном)? Праздное любопытство, но интересно...

Вопрос интересный, сам хотел проверить. Руки дойдут - проверю, отпишусь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос интересный, сам хотел проверить. Руки дойдут - проверю, отпишусь.

Мне тоже интересно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем спасибо, сделал немного по-другому, но генератор генерит, частота около 120мгц на 31 инверторе

 

Может поделитесь кодом? :)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...