реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> как отключить оптимизацию в Quartus ?, при компиляции убирает нужное
Sobol'
сообщение Dec 15 2017, 12:49
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 51
Регистрация: 31-07-14
Пользователь №: 82 421



Всем привет!
Задача - получить задержку сигнала. ПЛИС - altera EPM3064. Среда - QUARTUS II 13.0.
Мне бы хотелось просто поставить некоторое количество инверторов между входом и выходом, но при синтезе оптимизатор их убирает.
Пробовал директиву /*synthesis keep*/, не помогло.

Подскажите пожалуйста, как поступить.
Go to the top of the page
 
+Quote Post
Realking
сообщение Dec 15 2017, 13:05
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 496
Регистрация: 4-10-04
Из: Нижний Новгород
Пользователь №: 771



Цитата(Sobol' @ Dec 15 2017, 15:49) *
Всем привет!
Задача - получить задержку сигнала. ПЛИС - altera EPM3064. Среда - QUARTUS II 13.0.
Мне бы хотелось просто поставить некоторое количество инверторов между входом и выходом, но при синтезе оптимизатор их убирает.
Пробовал директиву /*synthesis keep*/, не помогло.

Подскажите пожалуйста, как поступить.


/*noprune*/

но вообще лучше так задержку не делать))
ну или lcell вставлять


--------------------
Человек - это существо, которое охотнее всего рассуждает о том, в чем меньше всего разбирается.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 15 2017, 13:55
Сообщение #3


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 464
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



lcell не убирает
Go to the top of the page
 
+Quote Post
Sobol'
сообщение Dec 15 2017, 14:50
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 51
Регистрация: 31-07-14
Пользователь №: 82 421



с lcell разобрался, спасибо.
Однако все-таки интересно, как отключить оптимизацию в конкретном куске модуля.
/*noprune*/ не помогло, явно что-то делаю не так:
Код
module temp_altera (
input clk_in,

output clk_out_delay
    );

/*synthesis noprune*/
wire [3:0] line = { line [2:0], ~clk_in};

/*synthesis noprune*/
assign clk_out_delay = line[3];

endmodule



Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 15 2017, 15:00
Сообщение #5


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 464
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



wire keep_wire /* synthesis keep */;
Go to the top of the page
 
+Quote Post
Sobol'
сообщение Dec 16 2017, 10:54
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 51
Регистрация: 31-07-14
Пользователь №: 82 421



Цитата(ViKo @ Dec 15 2017, 15:00) *
wire keep_wire /* synthesis keep */;


Спасибо, добрый человек! У меня получилось:

Код
module temp_altera (
input clk_in,

output clk_out_delay
    );

wire keep_wire_1 /* synthesis keep */;
assign keep_wire_1 =  !clk_in;
wire keep_wire_2 /* synthesis keep */;
assign keep_wire_2 =  !keep_wire_1;
wire keep_wire_3 /* synthesis keep */;
assign keep_wire_3 =  !keep_wire_2;

assign clk_out_delay = keep_wire_3;

endmodule




Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 16 2017, 10:56
Сообщение #7


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 464
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



keep_wire - это просто имя, может быть любым, понятное дело. Привел пример с сайта Altera.
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Dec 16 2017, 10:57
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 082
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(Sobol' @ Dec 16 2017, 13:54) *
Спасибо, добрый человек! У меня получилось:

Вы цепочку инверторов поставили в ознакомительных целях? Просто интересно, что ожидается от такой схемы, изначальная идея, так сказать.
1. Вы привели схему после синтеза, расположение элементов может меняться от компиляции к компиляции, если их не прибить гвоздями и, соответственно, временной путь прохождения сигнала будет меняться.
2. Временной путь зависит от трех параметров - температура, напряжение, технологический разброс. Задержка сигнала будет плавать от этих условий.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 16 2017, 11:37
Сообщение #9


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 464
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(bogaev_roman @ Dec 16 2017, 13:57) *
Задержка сигнала будет плавать от этих условий.

Насколько будет плавать, вы не подскажете? Топикстартер тоже мог бы показать по отчетам TimeQuest.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Dec 16 2017, 11:58
Сообщение #10


Гуру
******

Группа: Модераторы
Сообщений: 3 954
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(bogaev_roman @ Dec 16 2017, 13:57) *
Просто интересно, что ожидается от такой схемы, изначальная идея, так сказать.

Ну так это "задержка".
Но не сигнала, а головной боли. Или каких-либо сбоев. Причем это как мина, которую подбрасывали в угольный тендер. Ясно, что паровоз от этой мины рванет. Но точно сказать где нельзя....
Так здесь у ТС имеется CPLD. Она маленькая, плохой проект со сбоями в ней сделать трудно, т.к. проверяющий сможет заметить. Ну так хоть так. Авось удастся подложить мину. Я такого одного застал, правда он быстро уволился. Так вот он под каждую плату корректировал число ячеек. Правда там плат было немного, но все же... А его начальник в этом ничего не понимал и считал, что это "типа круто"... sm.gif


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 16 2017, 12:06
Сообщение #11


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 464
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Ах! rolleyes.gif А lcell для чего предлагаются?
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Dec 16 2017, 12:10
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 082
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(ViKo @ Dec 16 2017, 14:37) *
Насколько будет плавать, вы не подскажете? Топикстартер тоже мог бы показать по отчетам TimeQuest.

Сильно будет зависеть от расположения пинов. Если обычная сигнальная линия по горизонтали, пересекая блоки дсп и память, то несколько нс (я для аррии 5 смотрел как-то). Точнее - только отчет TimeQuest для крайних углов анализа - по самой быстрой и медленной модели.
bb-offtopic.gif Периодически сталкивался с реализациями генераторов высокой частоты на инверторах (точнее lcell) на ПЛИС - в комнатных условиях на одном модуле все хорошо, ради прикола ставил мощный обдув и разработчик начинал впадать в ступор, не понимая что происходит.
Цитата
Так здесь у ТС имеется CPLD. Она маленькая, плохой проект со сбоями в ней сделать трудно, т.к. проверяющий сможет заметить.

Я как обычно слона не заметил, извиняюсь. Может с CPLD и прокатит.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 16 2017, 12:39
Сообщение #13


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 464
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(bogaev_roman @ Dec 16 2017, 15:10) *
Сильно будет зависеть от расположения пинов. Если обычная сигнальная линия по горизонтали, пересекая блоки дсп и память, то несколько нс (я для аррии 5 смотрел как-то). Точнее - только отчет TimeQuest для крайних углов анализа - по самой быстрой и медленной модели.

Так то общая задержка от ноги к ноге. А каков был разброс от условий?
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Dec 16 2017, 12:42
Сообщение #14


Профессионал
*****

Группа: Свой
Сообщений: 1 082
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(ViKo @ Dec 16 2017, 15:39) *
Так то общая задержка от ноги к ноге. А каков был разброс от условий?

Это разброс, общая задержка до 10нс.
ЗЫ. Сейчас провел анализ быстрый. К сожалению нет возможности прикрепить файлы. Можете проверить сами. Чип 5AGXFB5K4F40I5, протянул вход на выход по диагонали (пины AL33-G6). На самой медленной модели суммарная задержка 14.249нс, на самой быстрой 13.339нс. Т.е. разброс почти в нс, при этом сигнал идет один в один, т. е. нет дополнительных слоев логики. Ну и код:

Код
assign out=inp

ЗЗЫ. Одна компиляция, только подставляется другая временная модель, приведенные задержки были SLOW, самая быстрая модель MIN_fast -40C для 1100mV дает задержку 8.025 biggrin.gif
Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 16 2017, 13:16
Сообщение #15


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 464
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(bogaev_roman @ Dec 16 2017, 15:42) *
Это разброс, общая задержка до 10нс.

Понятно. И это зависело только от условий? Раскладка цепей всегда была одной и той же?
И еще - lcell-ов у вас там не было? А разброс был. Так отчего тогда такая нелюбовь к lcell, если и без них все гуляет?

Цитата(bogaev_roman @ Dec 16 2017, 15:42) *
Т.е. разброс почти в нс, при этом сигнал идет один в один, т. е. нет дополнительных слоев логики.

Там другая "логика" есть, нам недоступная. Переключатели с рядов на колонны, драйверы входов-выходов...

Что хочу сказать. Конечно, там, где можно обойтись синхронной работой, то так и нужно. А где нельзя - там придется втыкать задержки. Да, нужно внимательно симулировать, изучать, как оно будет работать. Но выбора нет.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th July 2018 - 23:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01097 секунд с 7
ELECTRONIX ©2004-2016