Jump to content

    

характеризация в liberate

Всем привет.

Сталкивался ли кто с такой проблемой. Подключаю простой нетлист с транзисторами типа nch_mac и pch_mac и спайс модели на эти мопы. Запускаю char_library но:

 

ERROR (LIB-508): (char_library): Unable to identify the device type for 'nch_mac' because no global or local NMOS or PMOS model has been loaded using 'read_spice' and no 'define_leafcell' command has been specified. Load the model using 'read_spice' or specify a 'define_leafcell' command and rerun. The 'define_leafcell' commands must precede 'read_spice' command. If the netlist has elements, also specify the '-element' argument with the 'define_leafcell' command.

ERROR (LIB-507): (char_library): Failed to process the model based element inst: 'MM73', model: 'MOS' in the cell DFD. This cell will be skipped. Check the model uses standard parameter names and the define_leafcell command options are used properly. Update the Tcl and rerun.

 

Пробовал на другом примере где мопы не pch_mac а просто pch, там все ок.

Share this post


Link to post
Share on other sites
Всем привет.

Сталкивался ли кто с такой проблемой. Подключаю простой нетлист с транзисторами типа nch_mac и pch_mac и спайс модели на эти мопы. Запускаю char_library но:

 

ERROR (LIB-508): (char_library): Unable to identify the device type for 'nch_mac' because no global or local NMOS or PMOS model has been loaded using 'read_spice' and no 'define_leafcell' command has been specified. Load the model using 'read_spice' or specify a 'define_leafcell' command and rerun. The 'define_leafcell' commands must precede 'read_spice' command. If the netlist has elements, also specify the '-element' argument with the 'define_leafcell' command.

ERROR (LIB-507): (char_library): Failed to process the model based element inst: 'MM73', model: 'MOS' in the cell DFD. This cell will be skipped. Check the model uses standard parameter names and the define_leafcell command options are used properly. Update the Tcl and rerun.

 

Пробовал на другом примере где мопы не pch_mac а просто pch, там все ок.

Сделай нетлист / список цепей. Смотри какая модель грузится. А потом в папке смотри наличие моделей в scs-подобных файлах.

 

Share this post


Link to post
Share on other sites
Сделай нетлист / список цепей. Смотри какая модель грузится. А потом в папке смотри наличие моделей в scs-подобных файлах.

Я ведь с этого и начал. Сделал нетлист вентиля прочитал его и спайс модели. У меня не scs у меня L(hspice). Я итак знаю, что не грузится - nch_mac и pch_mac. Мне кажется это связано с тем, что *_mac это не модели, а subckt а сами модели находятся в нем и тулу нужно как-то это объяснить

Share this post


Link to post
Share on other sites

Частично решил проблему: названия инстанций макро транзисторов(*ch_mac) должны начинаться с буквы X. Но как быть с нетлистом у которого при генерации буква M?

Share this post


Link to post
Share on other sites

как вариант посмотри в UG: define_leafcell

 

define_leafcell -type nmos -pin_position { 0 1 2 3 } -extsim_model nch_mac

 

Частично решил проблему: названия инстанций макро транзисторов(*ch_mac) должны начинаться с буквы X. Но как быть с нетлистом у которого при генерации буква M?

 

можно поподробнее? из текущего описания мне кажется что достаточно постобработки нетлиста небольшим шелл скриптом..

Share this post


Link to post
Share on other sites
как вариант посмотри в UG: define_leafcell

 

define_leafcell -type nmos -pin_position { 0 1 2 3 } -extsim_model nch_mac

 

 

 

можно поподробнее? из текущего описания мне кажется что достаточно постобработки нетлиста небольшим шелл скриптом..

Я сейчас так и делаю. Автозаменой. Но как-то странно: в описании tsmc сказано, что макро должны начинаться с "X", но все их же spi-нетлисты на стд ячейки с транзисторами на "М" !

define_leafcell пробовал, не помню с какими ключами, завтра еще раз запущу...

 

Спасибо за ответы! Еще вопрос. Как в liberate констрейнить входные данные которые тактируются внутренним клоком? Внутренний клок генерируется с помощью входного опорного клока.

Share this post


Link to post
Share on other sites
Как в liberate констрейнить входные данные которые тактируются внутренним клоком? Внутренний клок генерируется с помощью входного опорного клока.

 

Либерейт может рассчитать временные ограничения для пары входных портов: сетап, холд и т.д.

Если я правильно понял - стройте арки для входных данных и опорного клока..

Share this post


Link to post
Share on other sites

Всем привет! Есть вопрос по переносу настроек из одной либы в другую. Как дампить темплейты из загруженной либы понятно, как дампить скелет либы (udata.lib) тоже понятно. А вот как задампить весь хеадер билиотеки, включая пороги, напряжения, пауэр рейлы, переменные, таблицы .. - т.е. все, что идет до селлов?

Share this post


Link to post
Share on other sites
Всем привет! Есть вопрос по переносу настроек из одной либы в другую. Как дампить темплейты из загруженной либы понятно, как дампить скелет либы (udata.lib) тоже понятно. А вот как задампить весь хеадер билиотеки, включая пороги, напряжения, пауэр рейлы, переменные, таблицы .. - т.е. все, что идет до селлов?

ЕМНИП, "пороги, напряжения, пауэр рейлы, переменные, таблицы" - САПР сам тебе сгенерит, хотя внешне может выглядеть по другому. Добавить что-то в либу можно командой "add_lib_attribute"

Share this post


Link to post
Share on other sites
On 2/14/2018 at 12:14 PM, Mikhail241 said:

Частично решил проблему: названия инстанций макро транзисторов(*ch_mac) должны начинаться с буквы X. Но как быть с нетлистом у которого при генерации буква M?

Можно решить установкой переменной spice_instance_name_require_x_prefix  в 0

set_var spice_instance_name_require_x_prefix 0

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now