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

 
 
> нахождение internal_power для яцеек цифровых библиотек
spectre
сообщение Jun 17 2008, 09:05
Сообщение #1





Группа: Участник
Сообщений: 12
Регистрация: 16-06-08
Из: Питер
Пользователь №: 38 331



Привет!
Пытаемся наладить процесс характеризации яцеек цифровой библиотеки, столкнулись с расчетом внутренней энергии (rise_power, fall_power из internal power group, synopsys) . Есть образцовый .lib файл для synopsys, полученный с помощью тула nanochar. Для расчетов пользуем spice.
Для простых ячеек типа (инвертор, буффер) работает следующие выражение:

Internal power = total power –C_load*VDD*VDD/2, где

total power - интеграл тока источника i _vdd(t) во временном диапазоне, соответствующем, например, уровням выходного напряжения 0%/100% по переднему/заднему фронту+ умноженный на VDD
C_load - емкость нагрузки, VDD - напряжение питания.
C_load*VDD*VDD/2 - switching power
В качестве переменных задаются фронт входного сигнала и С_load (templates)

результаты симуляции и образцового файла совпадают;
Но для сложных ячеек типа flip-flop (ячейка с прямым и инверсным выходом, выходны нагружены на две одинаковых емкости), в представленном файле почти нет зависимости потребления от емкости нагрузки, а значения, сосчитанные нами к концу диапазона емкостей (большие емкости) в десять раз превышают приведенные в файле цифры. Может уже неверный подход?smile.gif
Спасибо
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
oratie
сообщение Jun 17 2008, 10:21
Сообщение #2


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

Группа: Свой
Сообщений: 120
Регистрация: 2-11-06
Из: Москва
Пользователь №: 21 900



А различия только для выходных пинов? Или и для входных тоже есть?

Synopsys позволяет два подхода к вычислению internal power для выходных пинов:

Method A - switching_power_split_model : false
Internal_power_rise = Total_power_rise - C*V*V
Internal_power_fall = Total_power_fall

Method B (default) - switching_power_split_model : true
Internal_power_rise = Total_power_rise - 0.5*C*V*V
Internal_power_fall = Total_power_fall - 0.5*C*V*V

Может здесь проблема?
Go to the top of the page
 
+Quote Post
spectre
сообщение Jun 17 2008, 10:56
Сообщение #3





Группа: Участник
Сообщений: 12
Регистрация: 16-06-08
Из: Питер
Пользователь №: 38 331



для входных пинов различия есть, к сожалению не помню в какую сторону, это вроде internal power(если не ошибаюсь) без переключений внешней нагрузки, характерный для сложных селов.
Для инверторов характерно наличие отрицательной fall_power (несколько меня смущало), чего не добиться без вычета СU^2/2 из полного потребления, я думал что тоже самое распространится и на более сложные селы. Инвертора совпали по потреблению....
Спасибо за подсказку, буду разбираться. smile.gif
Go to the top of the page
 
+Quote Post
oratie
сообщение Jun 17 2008, 11:08
Сообщение #4


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

Группа: Свой
Сообщений: 120
Регистрация: 2-11-06
Из: Москва
Пользователь №: 21 900



Еще попробуйте сузить временной диапазон: не от 0 до 100% VDD, а от 10 до 90%.

For reasons of simulation and efficiency, we do not measure output to Vdd (or 0) with output rising (or falling). Instead, we measure output to 0.9Vdd (01.Vdd) when output rises or falls. This situation does not allow the use of
0.5*Cload*Vdd2 as Eload, which is suggested by Synopsys. However, one can
derive the equations for Eload as follows.
• For output rising (charging): Eload= = Cload*(dV/dt)*(Vdd-V)*dt
= Cload*(Vdd-V)*dV = 0.495* Cload*V dd2
• For output falling (discharging): Eload = = Cload*(dV/dt)*(V-0)*dt
= Cload*V*dV = -0.495* Cload* Vdd2
Therefore, the internal power Einternal = Etotal - 0.495*Cload * Vdd2 for both output
rising and falling.
Go to the top of the page
 
+Quote Post
spectre
сообщение Jun 17 2008, 13:06
Сообщение #5





Группа: Участник
Сообщений: 12
Регистрация: 16-06-08
Из: Питер
Пользователь №: 38 331



Спасибо за линки! smile.gif

Сообщение отредактировал spectre - Jun 17 2008, 13:08
Go to the top of the page
 
+Quote Post
oratie
сообщение Jun 17 2008, 15:59
Сообщение #6


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

Группа: Свой
Сообщений: 120
Регистрация: 2-11-06
Из: Москва
Пользователь №: 21 900



Ещё вспомнил, для триггеров необходимо ещё одно действие

Output_Pin_Energy = Out_total - Clk_total
Note that the output pin energy is adjusted by subtracting the clock pin power. This prevents double counting during analysis.

Клоковская мощность меряется, когда ни входы ни выходы не меняются(только клок дёргается).

Это взято из hardcopy "Synopsys Power Starter Kit". Где взять электронную версию я не знаю sad.gif
Go to the top of the page
 
+Quote Post
spectre
сообщение Jun 17 2008, 20:39
Сообщение #7





Группа: Участник
Сообщений: 12
Регистрация: 16-06-08
Из: Питер
Пользователь №: 38 331



Ок, я что-то подобное видел в доках на nanochar. В .lib файле есть internal power для входных пинов, в т. ч. и для клока (template содержит только набор фронтов входного сигнала). Я не придавал этому особого внимания т. к. эти значения слишком малы и при вычитании из тотала вряд ли повлияют на результат, завтра попробую посчитать их для входных пинов. smile.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 30th June 2025 - 08:04
Рейтинг@Mail.ru


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