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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Симуляция multicycle на стадии RTL верификации, вопрос
Kopart
сообщение Apr 13 2014, 05:48
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 1-03-05
Из: Spb
Пользователь №: 2 972



Цитата(Cordroy @ Apr 13 2014, 09:25) *
Это первое же над чем думали. Проблема автоматически, в существующем большом коде, найти "нужное место".
В начале поста я показал картинку для примера: один и тот же флоп может принимать данные и по multicycle контуру, и по обычному, без задержек (предположите что внутри облака просто mux).

Я так понял, что вы писали в предположении, что есть те кто писал этот код и добавлял констрейны multicycle.
А если код пришел как есть, то в принципе по самому констрейну, если его перепроверить тоже можно добавить такие задержки руками.
Скриптом - не пройдет, тк он не проверит какой путь и где удобней вставить задержку.

Как минимум вижу два варианта, даже для случая, который вы описали

1. Внутри есть mux (если он описан не через assign, а через always * - то также можно вставить задержку перед нужным присваиванием в пути (подобно как в регистре). * assign при это надо будет переписать через always *

2. По констрейну multicycle - видно что есть инициирующий триггер.
И если он имеет только одно подключение через mux к нужному триггеру - то можно задержку присваивания перенести на инициирующий триггер, как задержку выдачи.

Это конечно, не сделать с помощью скрипта, но эти два варианта при ручной проверки частично реализуют задачу проверки multicycle уже на уровне RTL.


--------------------
Насколько проще была бы жизнь, если бы она была в исходниках
Go to the top of the page
 
+Quote Post
Cordroy
сообщение Apr 13 2014, 05:53
Сообщение #17


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 13-09-10
Из: Israel
Пользователь №: 59 464



Цитата(NiOS @ Apr 13 2014, 08:48) *
Это конечно, не сделать с помощью скрипта, но эти два варианта при ручной проверки частично реализуют задачу проверки multicycle уже на уровне RTL.


В этом все дело - отсутствии автоматического метода. Речь идет о тысячах констрейнов, руками оччччень не хочется это делать.
Go to the top of the page
 
+Quote Post
Torpeda
сообщение Apr 16 2014, 14:21
Сообщение #18


Местный
***

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



Цитата(Cordroy @ Mar 17 2014, 14:55) *
Подскажите, пожалуйста, статью / методологию / инструмент по теме.
Вкратце, есть большой ASIC проект, много клоков, много констрейнов.
Проблема в том, чтобы на стадии RTL тестов выявить неправильные multicycle констрейны и/или несоответствие функционирования этим констрейнам.
То есть, заставить симулятор вставить соответствующую задержку там где есть m.c. (и только там).

Как я уже и писал есть такой тул Cadence Conformal Constraints Designer (CCD)
Эта тулза может:
-проверяет коректность фалспасов (выявляет и проверяет пасы с негативными таймингами и правильность их задания в SDC)
-проверяет коректность SDC файла (что-то типа синтаксического чекера, плюс проверка по смыслу - типа есть -from должно быть -to)
-проверяет коректность мультисайклов на основании VCD (дамп времянок с симулятора) и SDC
-проверяет CDC (cross domain clock) на основаниии нетлиста и SDC
-сравнивает 2 похожих SDC (если их несколько версий например)
-верифицирует иерархичные SDC (проверяет соответствие SDC топа на непротиворечивость SDC встроенного модуля)
-SDC Adviser помогает создавать констрейны (как минимум находит root всех клоков)

Конечно голову не заменяет но всё-же... sm.gif
Go to the top of the page
 
+Quote Post
Cordroy
сообщение Apr 17 2014, 07:34
Сообщение #19


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 13-09-10
Из: Israel
Пользователь №: 59 464



Цитата(Torpeda @ Apr 16 2014, 17:21) *
Как я уже и писал есть такой тул Cadence Conformal Constraints Designer (CCD)
[...]


Спасибо! Список выглядит многообещающе, попробую.
Go to the top of the page
 
+Quote Post
lexx
сообщение Apr 17 2014, 12:56
Сообщение #20


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

Группа: Свой
Сообщений: 118
Регистрация: 25-06-04
Пользователь №: 186



Совет: меняйте дизайн, никаких мальтисайклов. Делите блоки на части, делайте что угодно, но постарайтесь обойтись без этого. Поскольку если окажется, что ошиблись, то это дорого обойдется.
На текущий момент: моделирование должно проходить без каких либо дополнительных задержек, если вам для этого что-то надо вставлять задержку - то вы ловите сигнал, что неверно. При моделировании никаких дополнительных временных задержек в самой дизайне быть не должно.
Go to the top of the page
 
+Quote Post
Fat Robot
сообщение Apr 17 2014, 20:01
Сообщение #21


ʕʘ̅͜ʘ̅ʔ
*****

Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691



Это плохой совет. Особенно для low power, или когда есть ограничения по площади.

Цитата(lexx @ Apr 17 2014, 13:56) *
Совет: меняйте дизайн, никаких мальтисайклов. ...делайте что угодно...

Go to the top of the page
 
+Quote Post

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

 


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


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