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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> altera sdc, set_max_delay
Putnik
сообщение Aug 4 2014, 08:19
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 214
Регистрация: 4-09-07
Из: Зеленоград
Пользователь №: 30 272



есть структура проекта -
top
module_1
..
module_n


CODE
module module_n (
input a, b,
output c
);

assign c = a + b;

endmodule


для подмодуля n-го уровня module_n хочу задать констрейн set_max_delay от входов до выхода

set_max_delay -from [get_ports {top|module_1:module_1|...|module_n:module_n|a}] -to [get_ports {top|module_1:module_1|...|module_n:module_n|c}] 10ns


констрейн игнорится потому что квартус не может соотнести входы/выходы a и с с портами

- можно ли get_ports использовать для внутренних модулей?
- нету у altera что то типа current_design?


--------------------
за Навального!
Go to the top of the page
 
+Quote Post
Maverick
сообщение Aug 4 2014, 08:31
Сообщение #2


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(Putnik @ Aug 4 2014, 11:19) *
есть структура проекта -
top

не понял, в чем вопрос?
в общем, по констрейнам здесь
обратите внимание на текст на 65 странице - это по поводу set_max_delay


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Putnik
сообщение Aug 4 2014, 08:35
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 214
Регистрация: 4-09-07
Из: Зеленоград
Пользователь №: 30 272



Цитата(Maverick @ Aug 4 2014, 12:31) *
не понял, в чем вопрос?


случайно отправил недописанную тему laughing.gif


--------------------
за Навального!
Go to the top of the page
 
+Quote Post
Maverick
сообщение Aug 4 2014, 08:48
Сообщение #4


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(Putnik @ Aug 4 2014, 11:35) *
случайно отправил недописанную тему laughing.gif

можно вопрос, а зачем Вы используете констрейн set_max_delay???


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Putnik
сообщение Aug 4 2014, 09:29
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 214
Регистрация: 4-09-07
Из: Зеленоград
Пользователь №: 30 272



Цитата(Maverick @ Aug 4 2014, 12:48) *
можно вопрос, а зачем Вы используете констрейн set_max_delay???


хочу чтобы задержка по указанному пути была меньше мною указанной


--------------------
за Навального!
Go to the top of the page
 
+Quote Post
Maverick
сообщение Aug 4 2014, 10:46
Сообщение #6


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(Putnik @ Aug 4 2014, 12:29) *
хочу чтобы задержка по указанному пути была меньше мною указанной

так Вы ж сами можете контролировать задержку разбивая большую комбинационную схему на маленькие подсхемы и ставя регистры вначале и в конце этих подсхем (pipeline)...
Таким образом, повышается быстродействие схемы...
Я не понимаю, как квартус может уменьшить задержку, если на этом пути стоит большая комбинационная схема?

Мое мнение, у Вас для данного клокового домена в котором находится Ваша схема должен выполняться констрейн, типа
Цитата
create_clock -period 100MHz -name clk [ get_ports clk ]


Выполняется? Таймквест, что говорит?

Или я чего-то не понимаю?


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Putnik
сообщение Aug 4 2014, 11:08
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 214
Регистрация: 4-09-07
Из: Зеленоград
Пользователь №: 30 272



Цитата(Maverick @ Aug 4 2014, 14:46) *
так Вы ж сами можете контролировать задержку разбивая большую комбинационную схему на маленькие подсхемы и ставя регистры вначале и в конце этих подсхем (pipeline)...
Таким образом, повышается быстродействие схемы...
Я не понимаю, как квартус может уменьшить задержку, если стоит большая комбинационная схема?

Мое мнение, у Вас для данного клокового домена в котором находится Ваша схема должен выполняться констрейн, типа


Выполняется? Таймквест, что говорит?

Или я чего-то не понимаю?


к сожалению я не могу менять схему, не мой блок, и вся логика которую я обозначил как c = a + b, должна выполняться за один такт.

при синтезе в synopsys для асика set_max_delay помогал добиться уменьшения задержки, соответственно раз у альтеры есть такой же констрейн, он, наверно, также работает


--------------------
за Навального!
Go to the top of the page
 
+Quote Post
Maverick
сообщение Aug 4 2014, 11:12
Сообщение #8


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(Putnik @ Aug 4 2014, 14:08) *
к сожалению я не могу менять схему, не мой блок, и вся логика которую я обозначил как c = a + b, должна выполняться за один такт.

при синтезе в synopsys для асика set_max_delay помогал добиться уменьшения задержки, соответственно раз у альтеры есть такой же констрейн, он, наверно, также работает

может там нужен multicycle constraints, т.е. если схема работает не на каждом такте клоковой частоты
Так все таки что говорит Таймквест? (предыдущее мое сообщение)


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Putnik
сообщение Aug 4 2014, 11:51
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 214
Регистрация: 4-09-07
Из: Зеленоград
Пользователь №: 30 272



Цитата(Maverick @ Aug 4 2014, 15:12) *
может там нужен multicycle constraints, т.е. если схема работает не на каждом такте клоковой частоты
Так все таки что говорит Таймквест?

на каждом такте работает

таймквест говорит про отрицательные слаки в этом месте



--------------------
за Навального!
Go to the top of the page
 
+Quote Post
Maverick
сообщение Aug 4 2014, 12:01
Сообщение #10


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(Putnik @ Aug 4 2014, 14:51) *
на каждом такте работает
таймквест говорит про отрицательные слаки в этом месте

тогда
Цитата(Putnik @ Aug 4 2014, 14:08) *
к сожалению я не могу менять схему, не мой блок, и вся логика которую я обозначил как c = a + b, должна выполняться за один такт.

скорее всего придется оптимизировать схему или менять логику работы....
PS на мой взгляд это будет правильней...


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Putnik
сообщение Aug 4 2014, 12:12
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 214
Регистрация: 4-09-07
Из: Зеленоград
Пользователь №: 30 272



Цитата(Maverick @ Aug 4 2014, 16:01) *
тогда

скорее всего придется оптимизировать схему или менять логику работы....
PS на мой взгляд это будет правильней...


вы думаете оптимизировать квартус по set_max_delay ничего не будет, или будет но несильно?

пока что хочется хотя бы чтоб констрейн перестал игнориться:
Ignored set_max_delay .....: Argument <from> is an empty collection
Argument <to> is an empty collection

Ignored filter at ....: top|module_1:module_1|...|module_n:module_n|a could not be matched with a port


--------------------
за Навального!
Go to the top of the page
 
+Quote Post
Maverick
сообщение Aug 4 2014, 13:31
Сообщение #12


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(Putnik @ Aug 4 2014, 15:12) *
вы думаете оптимизировать квартус по set_max_delay ничего не будет, или будет но несильно?

пока что хочется хотя бы чтоб констрейн перестал игнориться:
Ignored set_max_delay .....: Argument <from> is an empty collection
Argument <to> is an empty collection

Ignored filter at ....: top|module_1:module_1|...|module_n:module_n|a could not be matched with a port

посмотрите плиз ссылку в сообщении 2


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
des00
сообщение Aug 4 2014, 14:50
Сообщение #13


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Putnik @ Aug 4 2014, 19:12) *
вы думаете оптимизировать квартус по set_max_delay ничего не будет, или будет но несильно?

пока что хочется хотя бы чтоб констрейн перестал игнориться:

Код
8. The Quartus II TimeQuest Timing Analyzer -> Timing Exceptions ->
You can apply the set_max_delay  command exception to an output port that does not use a set_output_delay  constraint. In this case, the setup summary and hold summary report the slack for these paths. Be cause there is no clock associated with the output port, no clock is reported for these paths and the Clock column is empty. In this case, you cannot report timing for these paths.

Цитата
- можно ли get_ports использовать для внутренних модулей?

нет
Цитата
при синтезе в synopsys для асика set_max_delay помогал добиться уменьшения задержки, соответственно раз у альтеры есть такой же констрейн, он, наверно, также работает

Уважаемый Maverick вам уже советовал внимательно изучить мануал по таймквесту. Рекомендую вам отложить толкание в темноте и внести в это ясность. Т.к. FPGA sdc != ASIC sdc

Цитата(Putnik @ Aug 4 2014, 18:51) *
таймквест говорит про отрицательные слаки в этом месте

в FPGA слаки валяться на синхронных путях, set_XXX_delay тут вообще не причем. Если тактовую прописали то sdc это не вытянуть, оптимизация окружения + настройки сборки


--------------------
Go to the top of the page
 
+Quote Post
Maverick
сообщение Aug 4 2014, 20:42
Сообщение #14


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Putnik если хотите можете выложить описание на форум

Цитата
к сожалению я не могу менять схему, не мой блок, и вся логика которую я обозначил как c = a + b, должна выполняться за один такт.


возможно здесь Вам подскажут на "узкие" места и посоветуют как их устранить...


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Putnik
сообщение Aug 5 2014, 12:50
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 214
Регистрация: 4-09-07
Из: Зеленоград
Пользователь №: 30 272



Maverick и des00 спасибо большое за помощь!!!

Цитата(Maverick @ Aug 5 2014, 00:42) *
Putnik если хотите можете выложить описание на форум

возможно здесь Вам подскажут на "узкие" места и посоветуют как их устранить...


дизайн не имею возможности выложить, к сожалению,
да в общем в нем узкие места и так понятны - схема больно асинхронная, а там где не асинхронная - куча логики которая, по замыслу автора, должна за такт выполняться



--------------------
за Навального!
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st June 2025 - 06:11
Рейтинг@Mail.ru


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