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

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> TimeQuest, кто ж тебя выдумал?, поговорим на простом нестандартном примере
Shivers
сообщение Jan 11 2018, 05:30
Сообщение #31


Знающий
****

Группа: Свой
Сообщений: 633
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Виртуальный клок нужен чтобы достроить граф STA на интерфейсах: по входу он создает входную арку, а по выходу - выходную. При этом можно варьировать тип арки, к примеру - выбирать фронт (rise или fall), выбирать тип проверки для этой арки (setup или hold). Но поскольку арка должна иметь два конца (иначе путь будет unconstrained), то виртуальный клок должен быть синхронен принимающему клоку (по входу) и/или запускающему (по выходу). Виртуальных клоков можно создавать сколько угодно. Но и в схеме может быть много асинхронных клоков, и тогда надо следить - какой виртуальный клок синхронен какому внутреннему клоку. Соответственно, при создании виртуальных клоков потребуется задавать дополнительные фалзпасы.

Требование алтеры констрейнить интерфейсы виртуальным клоком выглядит странно. Если констрейнить синхронный вход не относительно собственного клока, а относительно виртуального, то действительно - тайминг будет отличаться на величину uncertainty и drive adjustment клокового пина (поскольку к виртуальному клоку эти твики не применяются). Но эту разницу в тайминге куда проще упрятать в величину задержки констрейнта, чем плодить виртуальные клоки. Обычно виртуальный клок используется, чтобы констрейнить асинхронные входы, чтобы они хоть как то контролировались тулом. Либо для каких то тонких моментов вроде DDR, где констрейнить интерфейс надо по обоим фронтам клока, и может оказаться проще задать два виртуальных клока со сдвигом фазы 50%, и написать констрейнт относительно переднего фронта каждого из них. Т.е. виртуальный клок - вещь специфическая, почти как кунгфу (применяется при необходимости). Но, альтере виднее, конечно. Возможно, у них тул так специфически работает, что необходимо заводить виртуальную копию каждому интерфейсному клоку.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jan 11 2018, 06:15
Сообщение #32


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 500
Регистрация: 15-07-06
Из: г.Донецк
Пользователь №: 18 832



Цитата(ViKo @ Jan 10 2018, 16:20) *
Вот, картинкой подкреплю. Соответствует рисункам 13 и 12 из Cookbook. Слева - для выхода, справа - для входа.

Здесь похожая арифметика. Смотрели?
Timing_Constraints
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jan 11 2018, 07:45
Сообщение #33


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

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



Цитата(_Anatoliy @ Jan 11 2018, 09:15) *
Здесь похожая арифметика. Смотрели?
Timing_Constraints

Да, смотрел, спасибо. Хороший документ.
И этот тоже покажем для коллекции.
http://www.alterawiki.com/wiki/TimeQuest_User_Guide
Жаль, на дописал его Райан Сковиль.

Цитата(Shivers @ Jan 11 2018, 08:30) *
Возможно, у них тул так специфически работает, что необходимо заводить виртуальную копию каждому интерфейсному клоку.

Это несложно. rolleyes.gif Все задержки снаружи ПЛИС описывать виртуальными тактами.
Я описываю задержки в АЦП и в дорожках на плате, подключенных к ПЛИС. И т.п. Все, как в учебниках.
Go to the top of the page
 
+Quote Post
dima32rus
сообщение Jan 11 2018, 09:45
Сообщение #34


Частый гость
**

Группа: Свой
Сообщений: 127
Регистрация: 9-11-12
Из: г. Брянск
Пользователь №: 74 311



Цитата(ViKo @ Jan 11 2018, 10:45) *
и в дорожках на плате, подключенных к ПЛИС

Не поделитесь методикой?
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jan 11 2018, 10:02
Сообщение #35


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

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



Цитата(dima32rus @ Jan 11 2018, 12:45) *
Не поделитесь методикой?

Все согласно сказанному выше. Проверил только что. Вот фрагменты из sdc файла.
Там некоторые данные и такты инверсные используются. Так LVDS развелись.
И еще длина дорожек (задержка) разные в разных цепях шины. Это уже разводчики постарались. Убил бы сейчас.
CODE
# Задержка распространения рассчитана на калькуляторе Saturn PCB
# Microstrip, W = 0.250 mm, H = 0.345 mm, FR-4 STD, 0.18 + 0.18 µm (Zo = 77 Ohm)
# было Tpd = 0.00563
# Saturn PCB V6.88, Conductor Impedance, Tpd (ns/mm)
# Microstrip, W = 0,25 mm, H = 0,34 mm, FR-4 STD, 0,18 um + 0,35 um (Zo = 75.5 Ohms)
set Tpd 0.00584

set ADC1clk_min [expr 53.453 * $Tpd]
set ADC1clk_max [expr 55.604 * $Tpd]
set ADC2clk_min [expr 50.640 * $Tpd]
set ADC2clk_max [expr 54.596 * $Tpd]

# Задержки преобразования в АЦП (1.9 valid,min | 2.8 pd,typ | 3.8 pd,max)
# Окно верных данных с АЦП
set ADCtco_min 3.8
set ADCtco_max [expr 1.9 + 4.0]

# Задержки данных из АЦП по плате
set ADC1dat_min [expr 15.893 * $Tpd]
set ADC1dat_max [expr 42.767 * $Tpd]
set ADC2dat_min [expr 15.325 * $Tpd]
set ADC2dat_max [expr 34.516 * $Tpd]

# Задержки тактов для ПЛИС
set PLDclk_min [expr 14.693 * $Tpd]
set PLDclk_max [expr 15.099 * $Tpd]

# Входные такты (сдвинуты на полпериода, потому что инверсные)
create_clock -name plc -period "250 MHz" -waveform {2.0 4.0} [get_ports {PLC_N}]

# Внешние виртуальные такты для тактирования сигналов с АЦП
create_clock -name clka -period "250 MHz"

# Канал 1
set_input_delay \
-clock clka -min \
[expr $ADC1clk_min + $ADCtco_min + $ADC1dat_min - $PLDclk_max] \
{S1D_N[*] S1D_P}
set_input_delay \
-clock clka -max \
[expr $ADC1clk_max + $ADCtco_max + $ADC1dat_max - $PLDclk_min] \
{S1D_N[*] S1D_P}

# Канал 2
set_input_delay \
-clock clka -min \
[expr $ADC2clk_min + $ADCtco_min + $ADC2dat_min - $PLDclk_max] \
{S2D_P[*] S2D_N[*]}
set_input_delay \
-clock clka -max \
[expr $ADC2clk_max + $ADCtco_max + $ADC2dat_max - $PLDclk_min] \
{S2D_P[*] S2D_N[*]}
Go to the top of the page
 
+Quote Post
dima32rus
сообщение Jan 11 2018, 10:45
Сообщение #36


Частый гость
**

Группа: Свой
Сообщений: 127
Регистрация: 9-11-12
Из: г. Брянск
Пользователь №: 74 311



Цитата(ViKo @ Jan 11 2018, 13:02) *
# Задержки данных из АЦП по плате
set ADC1dat_min [expr 15.893 * $Tpd]
set ADC1dat_max [expr 42.767 * $Tpd]

Простите за любопытство, а что есть эти магические цифры: 15.893, 42.767
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jan 11 2018, 10:52
Сообщение #37


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 500
Регистрация: 15-07-06
Из: г.Донецк
Пользователь №: 18 832



Цитата(dima32rus @ Jan 11 2018, 13:45) *
Простите за любопытство, а что есть эти магические цифры: 15.893, 42.767

Длина дорожки умноженная на удельную задержку Tpd (ns/mm)
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jan 11 2018, 10:54
Сообщение #38


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

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



Цитата(_Anatoliy @ Jan 11 2018, 13:52) *
Длина дорожки умноженная на удельную задержку Tpd (ns/mm)

Да. Так развели плату. Погонную задержку в Saturn PCB прикинул.
Go to the top of the page
 
+Quote Post
dima32rus
сообщение Jan 11 2018, 11:50
Сообщение #39


Частый гость
**

Группа: Свой
Сообщений: 127
Регистрация: 9-11-12
Из: г. Брянск
Пользователь №: 74 311



Цитата(_Anatoliy @ Jan 11 2018, 13:52) *
Длина дорожки умноженная на удельную задержку Tpd (ns/mm)

ADC1dat_min и ADC1dat_max - так это разные дорожки? Мне показалось, что одна и та же, просто рассчитывается мин. и макс. задержка. Если первая цифра - это длина, а Tpd - погонная задержка, тогда не понятно было, как длина одной и той же дорожки может быть разной... Названия сбили с толку.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jan 11 2018, 11:55
Сообщение #40


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

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



Цитата(dima32rus @ Jan 11 2018, 14:50) *
ADC1dat_min и ADC1dat_max - так это разные дорожки? Мне показалось, что одна и та же, просто рассчитывается мин. и макс. задержка. Если первая цифра - это длина, а Tpd - погонная задержка, тогда не понятно было, как длина одной и той же дорожки может быть разной... Названия сбили с толку.

Во-первых, это дифференциальные сигналы, длина дорожек + и - могут отличаться.
Во-вторых, с АЦП идет шина данных.
В данном случае описана самая короткая и самая длинная дорожки в шине.
Go to the top of the page
 
+Quote Post
dima32rus
сообщение Jan 11 2018, 12:02
Сообщение #41


Частый гость
**

Группа: Свой
Сообщений: 127
Регистрация: 9-11-12
Из: г. Брянск
Пользователь №: 74 311



Цитата(ViKo @ Jan 11 2018, 14:55) *
Во-первых, это дифференциальные сигналы, длина дорожек + и - могут отличаться.
Во-вторых, с АЦП идет шина данных.
В данном случае описана самая короткая и самая длинная дорожки в шине.

Да, теперь понятно, спасибо
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Jan 16 2018, 10:13
Сообщение #42


В поисках себя...
***

Группа: Свой
Сообщений: 481
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Вот наткнулся на интересную штуку по констрейнам: http://www.in2p3.fr/actions/formation/Nume...A_TimeQuest.pdf
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th January 2018 - 21:11
Рейтинг@Mail.ru


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