Разработка структур данных для объектов аналоговых микросхем icon

Разработка структур данных для объектов аналоговых микросхем



НазваниеРазработка структур данных для объектов аналоговых микросхем
Дата конвертации30.03.2013
Размер32.9 Kb.
ТипДокументы
скачать >>>

Разработка структур данных для объектов аналоговых микросхем

Одним из наиболее важных этапов создания данного программного модуля, наравне с разработкой архитектуры, является разработка структур данных для объектов аналоговых микросхем. От простоты и универсальности разработанных на этом этапе структур данных зависит сложность алгоритмов и программного кода модуля проверки геометрических ограничений, понимаемость кода и его читаемость.

Наиболее важными структурами данных являются:

1) Объекты аналоговых микросхем и их иерархии

2) Объектные ограничения

3) Параметры объектных ограничений

Рассмотрим разработанные структуры данных более подробно:

^ 1) Объекты аналоговых микросхем и их иерархии

Упрощенно эту структуру данных можно представить с помощью следующего описания на языке программирования C++:


class Object

{

public:

std::vector vecObjects;

std::vector vecShapes;

};


С помощью этой структуры данных легко представить следующие сущности:

- элементы аналоговых микросхем

-- заполняется массив vecShapes, если элемент рассматривается как “плоский”

-- заполняется массив vecObjects, а затем массив vecShapes каждого элемента массива vecObjects, элемент рассматривается как “иерархический”

- токоведущие цепи

Заполняется массив vecObjects. Элементами этого массива могут быть:

-- межслойные переходы

-- контактные площадки

-- токоведущие дорожки

Каждый элемент этого массива является объектом класса vecObjects, в котором заполняется вектор vecShapes.

^ 2) Объектные ограничения

Эти сущности представимы в виде иерархии классов следующего вида:


ConstrBase



ConstrDerived

В базовом классе ConstrBase описаны:

- схожие для всех ограничений части

-- контейнер для геометрических данных

-- контейнер для параметров ограничений

- виртуальная функция check()

В базовом классе ConstrBase эта функция изменяет состояние внутренних счетчиков. В производных классах эта функция перегружается для конкретного вида проверки. Таким образом, создавая объекты разных типов, наследуемых от ConstrBase, и преобразуя указатели на них к типу ConstrBase*, можно, вызывая функцию check(), добиваться проверок разных типов ограничений, не задумываясь о реальном типе объекта ограничения.

- виртуальный деструктор ~ConstrBase

Деструктор этого класса сделан виртуальным, для того, чтобы избежать утечек памяти. [3]

Упрощенно структуру данных ConstrBase можно представить с помощью следующего описания на языке программирования C++:


class ConstrBase

{

public:

CheckStatus check(void); /*CheckStatus это enum, состоящий из возвращаемых значений: VALID, FAILED, UNCHECKED*/

virtual ~ ConstrBase(void);

std::vector vecObjects; /* контейнер для геометрических данных */

ParamsContainer params; /* контейнер для параметров ограничений */

};


^ 3) Параметры объектных ограничений

Параметры объектных ограничений могут быть различных типов. Например:

- int

- double

- bool

- std::string

- std::vector

- CheckStatus

.....

Учитывая, что параметры есть у каждого ограничения, логично поместить их в класс ConstrBase, описанный в предыдущем пункте. Но набор этих параметров слишком сильно отличается от ограничения к ограничению, чтобы хранить их в этом классе в виде переменных. Для этого логично создать отдельный класс ParamsContainer, являющийся контейнером для параметров объектных ограничений.

Упрощенно структуру данных ParamsContainer можно представить с помощью следующего описания на языке программирования C++:


class ParamsContainer

{

public:

template void add(T& param, ConstrParamType type); /*ConstrParamType это enum состоящий из названий типов параметров*/

{

mapParamsP.insert(std::make_pair(type, std::make_pair(new T(param), typeid(T).name())));

}


void* find(ConstrParamType type)

{

std::map< ConstrParamType, std::pair >::iterator iter = mapParamsP.find(type);

if(iter != mapParamsP.end())

return iter->second.first;

return NULL;

}


~ParamsContainer(void)

{

std::map< ConstrParamType, std::pair >::iterator iter;

for(iter = mapParamsP.begin(); iter != mapParamsP.end(); iter++)

{

if(iter->second.first == NULL)

continue;

if(iter->second.second == /*конкретный тип параметра*/)

delete (/*приведение к указателю на конкретный тип*/)iter->second.first;

else if(/*....*/)

/* аналогичные операции */

}

}

private:

std::map > mapParamsP;

};


Из приведенного кода видно, что:

- параметр любого типа может быть добавлен в контейнер (шаблонная функция add)

- легко можно получить доступ к существующим в данном контейнере параметрам (функция find)




Похожие:

Разработка структур данных для объектов аналоговых микросхем iconПояснительная записка к дипломной работе На тему: «Разработка программного модуля для контроля топологии аналоговых микросхем»
На тему: «Разработка программного модуля для контроля топологии аналоговых микросхем»
Разработка структур данных для объектов аналоговых микросхем iconПояснительная записка к дипломной работе На тему: «Разработка программного модуля для контроля топологии аналоговых микросхем»
На тему: «Разработка программного модуля для контроля топологии аналоговых микросхем»
Разработка структур данных для объектов аналоговых микросхем iconГрафические материалы
На тему: “Разработка программного модуля для контроля топологии аналоговых микросхем”
Разработка структур данных для объектов аналоговых микросхем iconИзучение этапов проектирования аналоговых микросхем с помощью топологического редактора Virtuoso
Рассмотрим этапы проектирования аналоговых микросхем в топологическом редакторе Virtuoso
Разработка структур данных для объектов аналоговых микросхем iconАнализ источников ошибок при проектировании аналоговых микросхем
При проектировании современных аналоговых микросхем, ввиду их сложности, практически невозможно избежать ошибок на различных стадиях...
Разработка структур данных для объектов аналоговых микросхем iconОписание ограничения orientation
Данное ограничение задает набор допустимых ориентаций для элементов аналоговых микросхем
Разработка структур данных для объектов аналоговых микросхем iconОписание ограничения symmetry
Данное ограничение задает отношение симметрии для элементов аналоговых микросхем относительно задаваемой для каждого ограничения...
Разработка структур данных для объектов аналоговых микросхем iconАнализ технического задания
В соответствии с техническим заданием перед дипломантом была поставлена задача разработки программного модуля для контроля топологии...
Разработка структур данных для объектов аналоговых микросхем iconДанный дипломный проект посвящен разработке программного модуля контроля топологии аналоговых микросхем, проектируемых с помощью сапр cadence

Разработка структур данных для объектов аналоговых микросхем iconИмпульсно-кодовая модуляция
Импульсно-кодовая модуляция (икм, англ. Pulse Code Modulation, pcm) используется для оцифровки аналоговых сигналов. Практически все...
Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©rushkolnik.ru 2000-2015
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы