Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: DC : можно ли довести до конца (map, optimization) проект с black-box-ом?
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Разработка цифровых, аналоговых, аналого-цифровых ИС
yes
то есть имеется текстовое описание IP, либа для которого нет.
возможно ли прогнать полный синтез, чтобы оценить/поискать критические пути и т.п. в остальной части?

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

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

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


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

Может и есть, но мы вручную правим когда надо. Но, по правде сказать, у нас небольшой модуль.
В принципе, в DC можно задавать black box с помощью Quick Timing Model.
sleep
1. наверное проще по распиновке просто создать .lib, указав названия пинов, и, например, нагрузки+площадь без данных по таймингу, мощности.
в ней можно сразу же описать разумные timing arcs.
2. можно просто написать пустышку-заглушку на verilog/VDHL?
yes
Цитата(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.


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

Есть еще одна идея - можно выташить все пины IP в топ и задать timing constrains на пинах.
Вообшем если ето не 10 иерархия внутрь то работы на пол часа используя /*AUTOINST*/ в Emacse.
masics
Цитата(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
yes
Цитата(masics @ Aug 18 2009, 03:55) *
Все совсем несложно:


Спасибо!



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


verilog-mode - хорошо! xemacs мой фэйворит едитор, но миксед дизайн, модель внутри VHDL с кучей параметризации - это не наш путьsmile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.