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

 
 
9 страниц V  « < 6 7 8 9 >  
Reply to this topicStart new topic
> Прошу немного помощи по Synopsys DC
SM
сообщение Apr 28 2009, 20:57
Сообщение #106


Гуру
******

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



Цитата(Quater @ Apr 28 2009, 10:37) *
подскажите пожалуста как можно сказать DC чтобы соединил TE (Test Enable) вход на всех FF со ScanTest на 0. А то он исползует эти флопы для обычных целей и поэтому вся симулация валится.

Очень странно, с какого это перепугу он юзает эти FF для обычных целей... Попробуйте им поставить set_dont_use, чтобы DC забыл об этих ячейках. Но, вообще-то, он и не должен бы их ставить. Так что, присоединяясь к вопросу grigoryk - а что, в либе других FF нет?
Go to the top of the page
 
+Quote Post
starley
сообщение Apr 29 2009, 09:58
Сообщение #107


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

Группа: Свой
Сообщений: 195
Регистрация: 9-01-09
Из: Москва
Пользователь №: 43 085



Клок победить так и не удалось. dont_touch_network, set_ideal_network не влияют - DC все равно задержки в местах нестандартного использования клока расчитывает неправильно crying.gif
Пока решил объявлять этот клок на выходе ИО буфера, это, вроде, ничему не противоречит.
Назрел еще один вопрос. Может, кто-нибудь подсказать как правильно работать с защелками или ссылку на методу дать. В частности, часть памяти предполагается реализовать на регистровых файлах, а они - защелки. Интересует их сопряжение с обычными тригерами, задание кострейнов, особенности выполнения STA и т. п.
Go to the top of the page
 
+Quote Post
SM
сообщение Apr 29 2009, 10:37
Сообщение #108


Гуру
******

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



Цитата(starley @ Apr 29 2009, 13:58) *
Интересует их сопряжение с обычными тригерами, задание кострейнов, особенности выполнения STA и т. п.

Нет никаких особенностей. Если, например, триггер тактируется положительным фронтом, то защелка (с положительным разрешением), записывающая данные с его выхода, должна тактироваться гейтированным инверсным клоком, а триггер, записывающий в себя с выхода защелки, как правило, инверсным клоком (отрицательным фронтом). Все времянки обеспечит сам DC, он знает, что такое защелка и с чем ее едят.

Единственная особенность работы с защелками - их можно объявлять как transparent, если в данном месте важно время прохождения через открытую защелку, работающую как буфер, а не холды-сетапы защелки, как регистра, если, допустим, они априори выполнены. И то, если либа это поддерживает. Мне вот лично пришлось самому характеризовать защелку на транспарентный режим и править либу.
Go to the top of the page
 
+Quote Post
grigorik
сообщение Apr 29 2009, 12:54
Сообщение #109


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

Группа: Свой
Сообщений: 94
Регистрация: 3-11-05
Из: ARM
Пользователь №: 10 424



Цитата(starley @ Apr 29 2009, 13:58) *
Клок победить так и не удалось. dont_touch_network, set_ideal_network не влияют - DC все равно задержки в местах нестандартного использования клока расчитывает неправильно crying.gif


starley!

Poprobui eto. Dumayu pomojet.
set_ideal_network [all_fanout -flat -clock_tree ]


--------------------
G.
Go to the top of the page
 
+Quote Post
Quater
сообщение Apr 29 2009, 19:40
Сообщение #110





Группа: Новичок
Сообщений: 9
Регистрация: 26-12-04
Пользователь №: 1 679



Цитата(SM @ Apr 28 2009, 23:57) *
Очень странно, с какого это перепугу он юзает эти FF для обычных целей... Попробуйте им поставить set_dont_use, чтобы DC забыл об этих ячейках. Но, вообще-то, он и не должен бы их ставить. Так что, присоединяясь к вопросу grigoryk - а что, в либе других FF нет?


Все спосибо так и сделал.
Всё заработало.
Go to the top of the page
 
+Quote Post
starley
сообщение Apr 30 2009, 18:01
Сообщение #111


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

Группа: Свой
Сообщений: 195
Регистрация: 9-01-09
Из: Москва
Пользователь №: 43 085



Цитата(SM @ Apr 29 2009, 14:37) *
Нет никаких особенностей. Если, например, триггер тактируется положительным фронтом, то защелка (с положительным разрешением), записывающая данные с его выхода, должна тактироваться гейтированным инверсным клоком, а триггер, записывающий в себя с выхода защелки, как правило, инверсным клоком (отрицательным фронтом).

Если напрямую с триггера брать - то понятно. А вот если между ними логика висит, ДЦ обеспечит стабильность данных к отрицательному фронту (для защелки с положительным разрешением)? Иными словами, в понимании ДЦ защелка в качестве регистра - это эдакий триггер запоминающий данные на полтакта? Причем если она не объявлена как прозрачная, то путь после нее в момент прозрачности в СТА не учитывается?
Go to the top of the page
 
+Quote Post
Quater
сообщение Apr 30 2009, 18:34
Сообщение #112





Группа: Новичок
Сообщений: 9
Регистрация: 26-12-04
Пользователь №: 1 679



Подскажите пожалуста, почему STA не находит ни каких проблем в дизайне а симулатор постояно падает на холде.

Установил set_dont_touch, set_ideal_network.

Может еще чего нибудь надо добавить например

set_anotted_delay или еще чего.

Сообщение отредактировал Quater - Apr 30 2009, 18:46
Прикрепленные файлы
Прикрепленный файл  timing_constraints.txt ( 4.68 килобайт ) Кол-во скачиваний: 783
 
Go to the top of the page
 
+Quote Post
SM
сообщение Apr 30 2009, 19:59
Сообщение #113


Гуру
******

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



Цитата(Quater @ Apr 30 2009, 22:34) *
Может еще чего нибудь надо добавить например

например set_fix_hold. Как я понимаю по умолчанию DC холдами не занимается, это back-end-ово, холды фиксить. Так как непофиксенный холд на этапе синтеза запросто может оказаться корректным после разводки.
Go to the top of the page
 
+Quote Post
grigorik
сообщение Apr 30 2009, 21:01
Сообщение #114


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

Группа: Свой
Сообщений: 94
Регистрация: 3-11-05
Из: ARM
Пользователь №: 10 424



Цитата(Quater @ Apr 30 2009, 22:34) *
Подскажите пожалуста, почему STA не находит ни каких проблем в дизайне а симулатор постояно падает на холде.

Установил set_dont_touch, set_ideal_network.

Может еще чего нибудь надо добавить например

set_anotted_delay или еще чего.


Esli u vas hold mejdu raznimi clock domainami to nichego STA ne pomojet poskolku vi zakrili glaza STA na pathi mejdu raznimi clock domainami.

foreach_in_collection clock [all_clocks] {
set_false_path -from $clock -to [remove_from_collection [all_clocks] [get_clocks $clock]]
}

Uberite set_false_path i plyus dobavte v DC (ili back end tool) to chto SM skazal.


--------------------
G.
Go to the top of the page
 
+Quote Post
SM
сообщение Apr 30 2009, 21:24
Сообщение #115


Гуру
******

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



Цитата(starley @ Apr 30 2009, 22:01) *
Иными словами, в понимании ДЦ защелка в качестве регистра - это эдакий триггер запоминающий данные на полтакта? Причем если она не объявлена как прозрачная, то путь после нее в момент прозрачности в СТА не учитывается?

1. Если она не объявлена, как прозрачная, то комбинаторный путь через нее не учитывается вообще, она чисто регистр.
2. Если она объявлена как прозрачная, то она не регистр, а чисто буфер.
3. Если она регистр, то "рабочим фронтом", для которого регламентированы Tsu/Th для входа данных является задний фронт открывающего импульса (т.е. для латча, открытого единицей, тайминги setup_falling и hold_falling), а для выхода данных описаны unate (для моего примера positive_unate) тайминг по переднему фронту открывающего импульса, а также тайминг типа _edge (в моем примере rising_edge) от входа Enable. Так что DC в курсе событий, что сигнал на выход проходит по одному фронту, а фиксируется по другому. И обеспечит стабильность записываемого сигнала в момент окончания импульса записи.

ЗЫ. Формат Liberty ни для кого не секрет, сами посмотрите на описание латча в вашей либе, в ее исходнике, и увидите все-все-все про него, что и увидит DC.
Go to the top of the page
 
+Quote Post
sleep
сообщение May 4 2009, 14:39
Сообщение #116


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

Группа: Свой
Сообщений: 77
Регистрация: 21-09-06
Из: msk
Пользователь №: 20 563



Цитата(SM @ Apr 29 2009, 00:57) *
Очень странно, с какого это перепугу он юзает эти FF для обычных целей... Попробуйте им поставить set_dont_use, чтобы DC забыл об этих ячейках. Но, вообще-то, он и не должен бы их ставить. Так что, присоединяясь к вопросу grigoryk - а что, в либе других FF нет?

если собираетесь делать DFT в проекте, действительно, ставьте на скановые триггера dont_use.
насчет почему он юзает скановые вместо обычных - это он пытается запихнуть внутрь триггера часть ведущей его логики.
у сканового триггера по входу есть дополнительная логика, он выкусывает её из ведущей этот триггер логики и использует скановый триггер.
в принципе, проекты с таким подходом работают, не стоит DC ругать за такую инициативу )
Go to the top of the page
 
+Quote Post
SM
сообщение May 5 2009, 13:53
Сообщение #117


Гуру
******

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



Цитата(sleep @ May 4 2009, 18:39) *
в принципе, проекты с таким подходом работают, не стоит DC ругать за такую инициативу )

Так там речь шла о каком-то некорекктном подключении сигнала Test Enable, что валило симуляцию. Вот за эту инициативу и ругали. А так бы конечно, пусть все использует, что по speed или area выгодно. Кстати, возможно, просто кривизна либов.
Go to the top of the page
 
+Quote Post
Quater
сообщение Jul 28 2009, 15:32
Сообщение #118





Группа: Новичок
Сообщений: 9
Регистрация: 26-12-04
Пользователь №: 1 679



Добрый день Господа,,

Помогите пожалуста запустить вот этот FOR в DC

set clocks [list host_clk sys_clk]
set resets [list host_resetn sys_resetn]
set clock_periods [list 19 9]

for {set i 0} {$i < {expr [llength $clocks] -1}} {incr i} {
create_clock -name [lindex $clocks $i] -period [lindex $clock_periods $i] [get_ports [lindex $clocks $i]]
}

а то постояно говорит что -period can't be ''.

заранее благодарю.
Go to the top of the page
 
+Quote Post
SM
сообщение Jul 28 2009, 19:53
Сообщение #119


Гуру
******

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



IMHO как-то так:

set clocks {host_clk sys_clk}
set resets {host_resetn sys_resetn}
set clock_periods {19 9}

for {set i 0} {$i < [llength $clocks]} {incr i} {
create_clock -name [lindex $clocks $i] -period [lindex $clock_periods $i] [get_ports [lindex $clocks $i]]
}
Go to the top of the page
 
+Quote Post
Quater
сообщение Jul 29 2009, 03:42
Сообщение #120





Группа: Новичок
Сообщений: 9
Регистрация: 26-12-04
Пользователь №: 1 679



Большое спосибо,

вот так это работает

set clocks [list host_clk sys_clk]
set resets [list host_resetn sys_resetn]
set clock_periods [list 19 9]

for {set i 0} {$i < [llength $clocks]} {incr i} {
create_clock -name [lindex $clocks $i] -period [lindex $clock_periods $i] [get_ports [lindex $clocks $i]]
}


Тут у меня по ходу еще вопросик


почему он говорит что есть ФФ которые получают 2 клока, и что такое disable_timing?

заранее благодарю.

Сообщение отредактировал Quater - Jul 29 2009, 03:46
Прикрепленные файлы
Прикрепленный файл  reset_controller_set_timing.txt ( 4.27 килобайт ) Кол-во скачиваний: 85
 
Go to the top of the page
 
+Quote Post

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

 


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


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