Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Закольцованная цепочка инверторов
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
alexPec
Добрый день всем!

Как сделать цепочку инверторов (этак 31), закольцованную, чтобы квартус не не выкинул 30 из них в процессе оптимизации? Нужен этакий генератор.
Methane
Цитата(alexPec @ May 5 2013, 11:12) *
Добрый день всем!

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

У квартуса от такого безобразия крыша поедет. Оно конечно можно, как-то на очень низком уровне LCELLам указать, но скорее всего вы что-то делаете не так. Правильнее взять внешний клок, и или его использовать или внешний клок на PLL, и уже с него получить нужную частоту.
alexPec
Цитата(Methane @ May 5 2013, 12:17) *
У квартуса от такого безобразия крыша поедет. Оно конечно можно, как-то на очень низком уровне LCELLам указать, но скорее всего вы что-то делаете не так. Правильнее взять внешний клок, и или его использовать или внешний клок на PLL, и уже с него получить нужную частоту.

Да все правильно, просто решение нестандартное. Из 3-х таких генераторов делается true-random генератор исключительно в ПЛИС, что и нужно.
У квартуса кстати крыша не едет, он ставит 1 инвертор вместо 31 и все. В technology map viewer смотрел.
Methane
Цитата(alexPec @ May 5 2013, 11:54) *
Да все правильно, просто решение нестандартное. Из 3-х таких генераторов делается true-random генератор исключительно в ПЛИС, что и нужно.
У квартуса кстати крыша не едет, он ставит 1 инвертор вместо 31 и все. В technology map viewer смотрел.

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

Может тут найдете чего-то
http://www.alteraforum.com/forum/showthrea...2133&page=2
uragan90
Вывести выводы инверторов на реальные пины плисы и на плате их соединить последовательно!
Для 31 инвертора потребуется 60 пина всего...
Но ето так :-)
Ради шутки юмара ))))
Methane
Цитата(uragan90 @ May 5 2013, 16:47) *
Вывести выводы инверторов на реальные пины плисы и на плате их соединить последовательно!
Для 31 инвертора потребуется 60 пина всего...
Но ето так :-)
Ради шутки юмара ))))


Ради не шутки, можно на плате развести линию задержки.
wolfman
Цитата(alexPec @ May 5 2013, 19:24) *
Да все правильно, просто решение нестандартное. Из 3-х таких генераторов делается true-random генератор исключительно в ПЛИС, что и нужно.
У квартуса кстати крыша не едет, он ставит 1 инвертор вместо 31 и все. В technology map viewer смотрел.

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

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


Удачи Rob.


Maverick
Цитата(RobFPGA @ May 5 2013, 20:25) *
Приветствую!

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


Удачи Rob.

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

В общем как-то так - кваки нет на компе, а 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

alexPec
Всем спасибо, сделал немного по-другому, но генератор генерит, частота около 120мгц на 31 инверторе
alexadmin
Цитата(alexPec @ May 6 2013, 10:11) *
Всем спасибо, сделал немного по-другому, но генератор генерит, частота около 120мгц на 31 инверторе


А если подуть на чип вентилятором хорошо (или наоборот феном)? Праздное любопытство, но интересно...
alexPec
Цитата(alexadmin @ May 7 2013, 12:27) *
А если подуть на чип вентилятором хорошо (или наоборот феном)? Праздное любопытство, но интересно...

Вопрос интересный, сам хотел проверить. Руки дойдут - проверю, отпишусь.
Methane
Цитата(alexPec @ May 7 2013, 20:48) *
Вопрос интересный, сам хотел проверить. Руки дойдут - проверю, отпишусь.

Мне тоже интересно.
dde29
Цитата(alexPec @ May 6 2013, 09:11) *
Всем спасибо, сделал немного по-другому, но генератор генерит, частота около 120мгц на 31 инверторе


Может поделитесь кодом? sm.gif
KA_ru
QUOTE (alexPec @ May 6 2013, 10:11) *
Всем спасибо, сделал немного по-другому, но генератор генерит, частота около 120мгц на 31 инверторе



плыть будет процентов на 20%.
поставьте внешний триггер Шмитта на RC цепочке будет стабильней. sm.gif
alexPec
Цитата(KA_ru @ May 8 2013, 16:04) *
плыть будет процентов на 20%.
поставьте внешний триггер Шмитта на RC цепочке будет стабильней. sm.gif

Так оно мне и надо - случайная тепловая нестабильность и джиттер
alexadmin
Цитата(alexPec @ May 8 2013, 16:12) *
Так оно мне и надо - случайная тепловая нестабильность и джиттер


А потом окажется, что если ваш прибор поставить у окна где дует, то больше будет выпадать красное, а если у камина - черное (вспоминая старую книжку) laughing.gif
Methane
Цитата(alexadmin @ May 8 2013, 16:22) *
А потом окажется, что если ваш прибор поставить у окна где дует, то больше будет выпадать красное, а если у камина - черное (вспоминая старую книжку) laughing.gif

Так может так все и задумано? sm.gif
KA_ru
Если вас интересует температурные изменения лучше использовать термопару.
Если случайные процессы можно вспомнить старое угольное сопротивление.

sm.gif sm.gif
Дмитрий_Б
Раньше можно было запретить минимизацию - элементы не выкидывались. Сейчас, наверное, тоже можно.
alexPec
Цитата(KA_ru @ May 8 2013, 22:24) *
Если вас интересует температурные изменения лучше использовать термопару.
Если случайные процессы можно вспомнить старое угольное сопротивление.

sm.gif sm.gif


Так это усилители надо городить, а тут все внутри.

Цитата
А потом окажется, что если ваш прибор поставить у окна где дует, то больше будет выпадать красное, а если у камина - черное (вспоминая старую книжку)

Не окажется, схема "выбирает" из генераторов джиттер

Цитата
Раньше можно было запретить минимизацию - элементы не выкидывались. Сейчас, наверное, тоже можно.


Не нашел как. Тем более надо запретить оптимизировать только эту часть схемы - цепочку инверторов, остальное-то пусть оптимизирует
Methane
Цитата(alexPec @ May 9 2013, 00:24) *
Не нашел как. Тем более надо запретить оптимизировать только эту часть схемы - цепочку инверторов, остальное-то пусть оптимизирует

http://quartushelp.altera.com/11.1/mergedP...le_dir_keep.htm
И еще какая-то есть деректива. Я пользуюсь чтобы логическому анализатору было за что цепляться.
Tano
To alexPec
А эачем вам 31 инвертор, ведь можно и с меньшим количеством и тем же успехом.
alexPec
Цитата(Tano @ May 10 2013, 23:27) *
To alexPec
А эачем вам 31 инвертор, ведь можно и с меньшим количеством и тем же успехом.

Да в статье написано что надо >=31, еще больше-еще лучше. Наверно случайности ( в смысле джиттера) увеличиваются с ростом количества. Вообще наверно можно и на 3-х. Но частота будет выше, потребление больше. Оно надо? Не хай будет 31 - не так уж много логики.

2 Methane
За ссылку спасибо, полезная.
torik
Можно прописать директиву /* synthesis noprune */ для всех нужных wire.
cdg
Цитата(alexPec @ May 5 2013, 11:12) *
Добрый день всем!

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

lcell примитив Ваше все http://www.dsol.ru/stud/STESHENKO/glava3/327.htm можно и в коде использовать ,можно и в графике нарисовать, ква их не убирает.
maksimp
Цитата(cdg @ May 21 2013, 14:43) *
lcell примитив Ваше все можно и в коде использовать ,можно и в графике нарисовать, ква их не убирает.

Там есть опция "Ignore LCELL buffers", которую нужно отключить.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.