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

 
 
 
Reply to this topicStart new topic
> DC : можно ли довести до конца (map, optimization) проект с black-box-ом?, хочется report_area, report_timing и т.п. а IP памяти никак не дают...
yes
сообщение Aug 17 2009, 08:50
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



то есть имеется текстовое описание IP, либа для которого нет.
возможно ли прогнать полный синтез, чтобы оценить/поискать критические пути и т.п. в остальной части?

возможно проще создать свою псевдо lib-у (подправить lib такогоже IP от старой технологии)

--------------------

как лучше это сделать?
где посмотреть как делать?
Go to the top of the page
 
+Quote Post
masics
сообщение Aug 17 2009, 09:27
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 21-02-05
Из: Melbourne, Australia
Пользователь №: 2 779



Мы делаем простенький .lib и гоняем весь дизайн. По-моему это проще всего.
Go to the top of the page
 
+Quote Post
yes
сообщение Aug 17 2009, 11:54
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



Цитата(masics @ Aug 17 2009, 13:27) *
Мы делаем простенький .lib и гоняем весь дизайн. По-моему это проще всего.


а либу править тектсовым редактором или есть какой-то тул для этого?
Go to the top of the page
 
+Quote Post
masics
сообщение Aug 17 2009, 12:00
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 21-02-05
Из: Melbourne, Australia
Пользователь №: 2 779



Цитата(yes @ Aug 17 2009, 21:54) *
а либу править тектсовым редактором или есть какой-то тул для этого?

Может и есть, но мы вручную правим когда надо. Но, по правде сказать, у нас небольшой модуль.
В принципе, в DC можно задавать black box с помощью Quick Timing Model.
Go to the top of the page
 
+Quote Post
sleep
сообщение Aug 17 2009, 12:45
Сообщение #5


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

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



1. наверное проще по распиновке просто создать .lib, указав названия пинов, и, например, нагрузки+площадь без данных по таймингу, мощности.
в ней можно сразу же описать разумные timing arcs.
2. можно просто написать пустышку-заглушку на verilog/VDHL?

Сообщение отредактировал sleep - Aug 17 2009, 12:45
Go to the top of the page
 
+Quote Post
yes
сообщение Aug 17 2009, 14:31
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



Цитата(sleep @ Aug 17 2009, 16:45) *
1. наверное проще по распиновке просто создать .lib, указав названия пинов, и, например, нагрузки+площадь без данных по таймингу, мощности.
в ней можно сразу же описать разумные timing arcs.
2. можно просто написать пустышку-заглушку на verilog/VDHL?


1) для этого следует формат либа знать? я посмотрел аналогичные модели от старой технологии - чего-то там дофига текста smile.gif - килобайт 100
оно вроде бы интуитивно понятно, но не хочется полагаться на интуицию, а чтоб разбираться - нужно здесь читать?
http://www.opensourceliberty.org/

2) ну а как задать timing arcs? если black-box, то синтезировать дальше gtech-а откажется (собственно мой изначальный вопрос в том и состоял - можно ли black-box-у приписать какие-то задержки типа input/output delay и прогнать синтез)?




Цитата(masics @ Aug 17 2009, 16:00) *
В принципе, в DC можно задавать black box с помощью Quick Timing Model.


а как это сделать? я как-то не сталкивался раньше с такой задачей, поэтому крайне скудные знания об устройстве библиотек и моделей синопсиса
Go to the top of the page
 
+Quote Post
ArMouReR
сообщение Aug 17 2009, 15:10
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 61
Регистрация: 3-03-06
Пользователь №: 14 936



Ну про то что можно написать простенький либ тут уже расказали.
По мойму ето самый правильный путь. И на самом деле не очень сложный.
Можно взять как пример либ памяти и по принципу и подобию сваять свой.
По большому счету нужна только timing секция...

Есть еще одна идея - можно выташить все пины IP в топ и задать timing constrains на пинах.
Вообшем если ето не 10 иерархия внутрь то работы на пол часа используя /*AUTOINST*/ в Emacse.

Сообщение отредактировал ArMouReR - Aug 17 2009, 15:11
Go to the top of the page
 
+Quote Post
masics
сообщение Aug 17 2009, 23:55
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 21-02-05
Из: Melbourne, Australia
Пользователь №: 2 779



Цитата(yes @ Aug 18 2009, 00:31) *
а как это сделать? я как-то не сталкивался раньше с такой задачей, поэтому крайне скудные знания об устройстве библиотек и моделей синопсиса


Все совсем несложно:

Creating a Quick Timing Model for Black Boxes

The creation of a quick timing model starts with the create_qtm_model command and ends with the save_qtm_model command. All the commands between create_qtm_model and save_qtm_model define one quick timing model.

To create a quick timing model for black boxes,

1.

Specify that a new model is being created.
create_qtm_model qtm_bb
2.

Specify the technology library to use for creating the quick timing model. Information includes the name of the technology library, the maximum transition time, the maximum capacitance, and the wire load information.
set_qtm_technology -lib library_name
3.

Define load and drive types.

The create_qtm_load_type command defines load types that are used to specify the net capacitance of input ports. A library cell constitutes a load type.

The create_qtm_drive_type command sets the drive type for each output port; the drive type can be any library cell.

For example,
create_qtm_load_type LOAD -lib_cell $flop_name
create_qtm_drive_type DRIVE -lib_cell $bufname
4.

Specify global setup and hold characteristics.
set_qtm_global_parameter -param setup -lib_cell \
$flopname -clock $CLK_pin -pin $D_pin
set_qtm_global_parameter -param hold -value 0
set_qtm_global_parameter -param clk_to_output -lib_cell \
$flopname -clock $CLK_pin -pin Q_pin
5.

Create clock ports.
create_qtm_port -type clock $port
6.

Create input ports, output ports, and inout ports.
create_qtm_port -type input $port
create_qtm_port -type output $port
create_qtm_port -type inout $port
7.

For all input and inout ports, define setup and hold arcs.
create_qtm_constraint_arc -setup -edge rise -name\
setup_${clock}_${port} -from $clock -to \
$port -value 0

create_qtm_constraint_arc -hold -edge rise -name \
hold_${clock}_${port} -from $clock -to $port -value 0
8.

For all output and inout ports, specify an output delay and drive type.
set_qtm_port_drive $port -type DRIVE
create_qtm_delay_arc -name delay_${clock}_${port} -from\
$clock -to $port -value 0 -edge rise
9.

(Optional) Generate a report that shows the defined parameters, the ports, and the timing arcs in the quick timing model.
report_qtm_model
10.

Save the quick timing model.
save_qtm_model
11.

Write out the .db file for the quick timing model.

write_qtm_model -out_dir dp_for_qtm
12.

Add the .db file to the “link library” variable.

lappend link_library “dp_for_qtm/qtm_bb.db”
13.

Analyze the timing report to get a report of the timing arcs (paths) that pass through the black boxes.
report_timing
Go to the top of the page
 
+Quote Post
yes
сообщение Aug 18 2009, 08:34
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



Цитата(masics @ Aug 18 2009, 03:55) *
Все совсем несложно:


Спасибо!



Цитата(ArMouReR @ Aug 17 2009, 19:10) *
/*AUTOINST*/ в Emacse.


verilog-mode - хорошо! xemacs мой фэйворит едитор, но миксед дизайн, модель внутри VHDL с кучей параметризации - это не наш путьsmile.gif
Go to the top of the page
 
+Quote Post

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

 


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


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