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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Физический смысл частоты в ПЛИС
Torpeda
сообщение Nov 10 2014, 10:39
Сообщение #16


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 23-02-12
Пользователь №: 70 424



Цитата(SM @ Nov 10 2014, 12:09) *
Вообще, set_min_delay проверяется вместе с холдами, а set_max_delay - с сетапами. Поэтому, они не должны (а по моему опыту и не могут) игнорироваться - они проверяются и оптимизируются на разных этапах.

set_min_delay\set_max_delay с сетап\холдами не связан.
Это отдельный констрейн.
если оба сразу заданы на одну цепь, то тулзе труно их выполнить, изза расброса задержек буферов итд...
Вот и игнорит иногда... просто говорит что не выполнено...
Go to the top of the page
 
+Quote Post
SM
сообщение Nov 10 2014, 11:20
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(Torpeda @ Nov 10 2014, 13:39) *
set_min_delay\set_max_delay с сетап\холдами не связан.
Это отдельный констрейн.


Да, отдельный. НО!!! С холдами связан! Синтезатор на него вообще плюет с высокой колокольни (если его не пнуть специально, но, в общем случае, это обычно не делают, оставляя холды и min_delay на роутер), а вот разводчик занимается оптимизацией на тему min_delay именно во время этапа коррекции холдов, а в остальном процессе игнорирует. По крайней мере, так работают Synopsys DC в связке с IC Compiler или Astro. Да и FPGA-тулы работают точно так же. Да и анализируется он всегда вместе с холдами, на fast корнере.
Go to the top of the page
 
+Quote Post
SM
сообщение Nov 10 2014, 17:11
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(Torpeda @ Nov 10 2014, 18:00) *
ВЫВОД:
set_min_delay - игнорируется sad.gif


Вывод почти неверный. Он не игнорируется роутером, когда ему дать команду коррекции холдов (а это процесс отдельный, делается после разводки, когда слаки по сетапам и max_delay уже положительные)! Вот тогда он поправит и холды, и ошибки по min_delay (при этом, если вилка слишком жесткая, может испортить max_delay, этот процесс его не проверяет). А на почти всех других этапах таки да, игнорируется, но я об этом сразу сказал.

Почему "почти" - потому, что Synopsys DC делает вот так (цитата из dcug):
If fix_hold is not specified on any clocks, the minimum delay cost is not considered during compilation. If fix_hold or min_delay is specified, the minimum delay cost is a secondary optimization cost.

То есть, как бы это не было странным, но если не указан синтезатору set_fix_hold хотя бы одному клоку, то и все set_min_delay будут проигнорированы.
Go to the top of the page
 
+Quote Post
Torpeda
сообщение Nov 10 2014, 17:18
Сообщение #19


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 23-02-12
Пользователь №: 70 424



Я таки ошибся свыводами....

При
set_max_delay 10.0 -from in1 -to Q
set_min_delay 5.0 -from in1 -to Q

мы имеем:
Код
#  Command:           report_timing -early -from in1 -to Q -view worst > res
###############################################################
Path 1: VIOLATED Path Delay Check
Endpoint:   Q   (v)
Beginpoint: in1 (v) triggered by  leading edge of '@'
Analysis View: worst
- External Delay                0.000
+ Path Delay                    5.000
= Required Time                 5.000
  Arrival Time                  2.153
  Slack Time                   -2.847
     Clock Rise Edge                      0.000
     + Input Delay                        0.000
     + Drive Adjustment                   0.128
     = Beginpoint Arrival Time            0.128
     +--------------------------------------------------------------------------------------------------------+
     |        Pin|  Cell   |    Net  |    Arc     |  Delay  |  Load   |  Slew   | Fanout | Arrival | Required |
     |           |         |         |            |         |         |         |        |  Time   |   Time   |
     |-----------+---------+---------+------------+---------+---------+---------+--------+---------+----------|
     | in1 ->    |         | in1     | in1 v      |         |   0.019 |   0.204 |      1 |   0.128 |    2.975 |
     | i_24/Q    | AO211X4 | Q       | A v -> Q v |   2.014 |   1.007 |   1.843 |      1 |   2.142 |    4.989 |
     | Q ->      |         |         | Q v        |   0.011 |   1.007 |   1.843 |        |   2.153 |    5.000 |
     +--------------------------------------------------------------------------------------------------------+

Код
#  Command:           report_timing -late -from in1 -to Q -view worst > res
###############################################################
Path 1: MET Path Delay Check
Endpoint:   Q   (^)
Beginpoint: in1 (^) triggered by  leading edge of '@'
Analysis View: worst
- External Delay                0.000
+ Path Delay                   10.000
= Required Time                10.000
- Arrival Time                  2.396
= Slack Time                    7.604
     Clock Rise Edge                      0.000
     + Input Delay                        0.000
     + Drive Adjustment                   0.170
     = Beginpoint Arrival Time            0.170
     +-----------------------------------------------------------------------------------------------------+
     |       Pin|  Cell   |    Net|    Arc     |  Delay  |  Load   |  Slew   | Fanout | Arrival | Required |
     |          |         |       |            |         |         |         |        |  Time   |   Time   |
     |----------+---------+-------+------------+---------+---------+---------+--------+---------+----------|
     | in1 ->   |         | in1   | in1 ^      |         |   0.025 |   0.299 |      1 |   0.170 |    7.774 |
     | i_24/Q   | AO211X4 | Q     | A ^ -> Q ^ |   2.215 |   1.007 |   2.340 |      1 |   2.385 |    9.989 |
     | Q ->     |         |       | Q ^        |   0.011 |   1.007 |   2.340 |        |   2.396 |   10.000 |
     +-----------------------------------------------------------------------------------------------------+


Роутер видит все минимальные задержки и репортит.

---------------------------------
Задаём только set_min_delay 5.0 -from in1 -to Q

Код
path   1:

Pin      Type     Fanout  Load  Slew Delay Arrival  
                           (fF)  (ps)  (ps)   (ps)    
------------------------------------------------------
in1      in port        1   35.6  397  +229     229 R
i_25/A                                   +1     229  
i_25/Q   AO211X4        1 1016.8 2357 +2259    2489 R
Q        out port                       +15    2504 R
------------------------------------------------------
Timing slack :  UNCONSTRAINED
Start-point  : in1
End-point    : Q

МАХ задержка UNCONSTRAINED

Теперь роутер:

Видит МІN
Код
#  Command:           report_timing -early -from in1 -to Q -view worst > res
###############################################################
Path 1: VIOLATED Path Delay Check
Endpoint:   Q   (v)
Beginpoint: in1 (v) triggered by  leading edge of '@'
Analysis View: worst
- External Delay                0.000
+ Path Delay                    5.000
= Required Time                 5.000
  Arrival Time                  2.093
  Slack Time                   -2.907
     Clock Rise Edge                      0.000
     + Input Delay                        0.000
     + Drive Adjustment                   0.092
     = Beginpoint Arrival Time            0.092
     +------------------------------------------------------------------------------------------------------+
     |        Pin|  Cell   |    Net|    Arc     |  Delay  |  Load   |  Slew   | Fanout | Arrival | Required |
     |           |         |       |            |         |         |         |        |  Time   |   Time   |
     |-----------+---------+-------+------------+---------+---------+---------+--------+---------+----------|
     | in1 ->    |         | in1   | in1 v      |         |   0.013 |   0.161 |      1 |   0.092 |    2.998 |
     | i_25/Q    | AO211X4 | Q     | A v -> Q v |   2.002 |   1.000 |   1.824 |      1 |   2.093 |    5.000 |
     | Q ->      |         |       | Q v        |   0.000 |   1.000 |   1.824 |        |   2.093 |    5.000 |
     +------------------------------------------------------------------------------------------------------+

и МАХ (как unconstrained):
Код
#  Command:           report_timing -late -from in1 -to Q -view worst > res
###############################################################
No constrained timing paths with given description found.
Paths may be unconstrained (try '-unconstrained' option) or may not exist.


Надо учится репорты получать sm.gif
Задав таки только set_min_delay или set_min_delay\set_max_delay без задания клоков - мы получим что хотели
Go to the top of the page
 
+Quote Post
SM
сообщение Nov 10 2014, 17:25
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(Torpeda @ Nov 10 2014, 20:18) *
интересно.... в случае простой комбинаторики холда нету...как нет и клоков...


Да вообще, на этапе синтеза нет никакого смысла ни в fix_hold, и в min_delay, так как эти проблемы решаются именно роутером, специальным проходом с удлинением разводки и вставлением буферов.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 02:39
Рейтинг@Mail.ru


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