Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Создание Spice-моделей.
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Вопросы аналоговой техники
Konstantin
Здравствуйте, у меня вопрос для тех кто имеет экспириенс в области создания Spice-моделей, а именно создания кода моделей(в мануалах это называется Creating a Code Model). Алгоритм создания приведу из Userguide.

5.15.2 Creating a Code Model
To create a code model:
1. Set up your environment variables for Microsoft Visual C++ by running VcVars32.bat
(installed, by default, in the c:/Program Files/DevStudio/Vc/Bin folder).
This step should be repeated each time you restart your computer and want to create a
code model.
2. Create a folder under the codemodl folder (within the folder where you installed Multisim).
Give the folder the same name as the model you are creating. For example, from the
codemodl subdirectory, create the folder C:/Program Files/EWB/codemodl/
testmodl
3. Create an interface file called Ifspec.ifs in the folder you just created. The interface
file describes the number and types of connections and parameters of the device. For
example, create the file C:/Program Files/EWB/codemodl/testmodl/
Ifspec.ifs
4. Create an implementation file called Cfunc.mod in the subdirectory. The implementation
file gives the equations that govern the behavior of the device. For example, create the
file C:/Program Files/EWB/codemodl/testmodl/Cfunc.mod
5. To compile the files into a dynamically-linked library (DLL), go to the codemodl folder
and execute the command MakeDev “folder”, where “folder” is the name of the
folder containing the .ifs and .mod files. For example, execute
C:/Program Files/EWB/codemodl
cd
MakeDev “testing”
Errors and warnings may appear.
6. Place the resulting .dll file, which has the same name as the folder containing its source
files, in the codemodl folder (that is, above the folder with the model’s name). For
example, the file created is called C:/Program Files/EWB/codemodl/testing.
dll
Относительно создания Cfunc.mod and Ifspec.ifs всё более менее понятно, возникает вопрос по 5 пункту,
непонятно каким образом Microsoft Visual C++ может запихать в одну dll-библиотеку 2 текстовых файла. При этом в мануалах
для разных версий этот пункт выглядит по-разному.Все кто поможет мне разъяснить эту проблему обещаю вечную благодарность и низкий поклон.
SSerge
Цитата(Konstantin @ Feb 18 2006, 16:31) *
непонятно каким образом Microsoft Visual C++ может запихать в одну dll-библиотеку 2 текстовых файла.

Экспириенс в области создания Spice-моделей у меня, правда, отсутствует.
А то, что из десятков .с файлов собирается один exe-шник разве не удивительно?
Просто в этом процессе задействовано две программы - компилятор по-отдельности компилирует каждый из файлов исходника порождая так называемые объектные модули (файлы) а затем другая программа, линкер, собирает из них (и из библиотечных модулей) один файл - exe или dll - что заказано.
Называется раздельная компиляция, изобретено ещё до появления Фортрана.
Obi
Цитата(Konstantin @ Feb 18 2006, 13:31) *
непонятно каким образом Microsoft Visual C++

А разве не лучшее пользоваться специализированным софтом. Чем нибудь типа XSpice...

The XSPICE simulator is the main software program that performs mathematical simula-
tion of a circuit specified by you, the user. It takes input in the form of commands and
circuit descriptions and produces output data (e.g. voltages, currents, digital states, and
waveforms) that describe the circuit's behavior....
Konstantin
Цитата(SSerge @ Feb 22 2006, 23:37) *
Цитата(Konstantin @ Feb 18 2006, 16:31) *

непонятно каким образом Microsoft Visual C++ может запихать в одну dll-библиотеку 2 текстовых файла.

Экспириенс в области создания Spice-моделей у меня, правда, отсутствует.
А то, что из десятков .с файлов собирается один exe-шник разве не удивительно?
Просто в этом процессе задействовано две программы - компилятор по-отдельности компилирует каждый из файлов исходника порождая так называемые объектные модули (файлы) а затем другая программа, линкер, собирает из них (и из библиотечных модулей) один файл - exe или dll - что заказано.
Называется раздельная компиляция, изобретено ещё до появления Фортрана.


Дело в том,что один файл это программа на С, а другой это просто текстовый файл. Как-же компилятор разберётся с ним? Может быть он рассматривается как метаданные?

Цитата
А разве не лучшее пользоваться специализированным софтом. Чем нибудь типа XSpice...

Это и есть XSpice. Там примитивы так создаются.
Obi
Не знаю, установил у себя SuperSpiсe и ничего не слышал ни о каких Microsoft Visual C++.
KMC
Не о spice, но все же...
Для spectre (Cadence) нынче модели пишутся на Verilog-A, затем транслируются на Си, и уж только потом компилируюся... Ну, а на Verilog-A, имхо, написать модель несколько проще, нежели на си.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.