J
jimjim2k
Guest
Здравейте на всички
Както бях обещал в:
1.з п **: / / www.edaboard.com/viewtopic.php?t=98320
Започна да събира полезна Perl скриптове на ЕАО тук:
Моля помогне да спечелят тази тема
-------------------------------------------------- -----------------------------------
1.Призракът на hspice инструмент converion:Код:
#! / ЮЕсАр / BIN / Perl
# Нелсън Ху
# EE464H
# 08/07/03################################################## #####
# Тази програма "Spectre2Hspice.pl" Hspice генерира код от
# Netlist Призракът (si.inp)
# За изхода на тази програма ще бъде в състояние да работят във Hspice
# За времето анализ################################################## #####
# Как да използвате тази програма:
# В папката, където се намира si.inp, тип
# Perl / home/projects/abraham/vlsi464/spicetest/FinalTOOLS/Spectre2Hspice.pl si.inp 3
# Под номер 3 в края е резолюция за времето анализ.
то там е по-дълъг закъснение, по-голям брой се използва
#, Така че когато пускате Hspice, кодът няма да се провали.################################################## #####
# Input:
# Si.inp
# Номер за резолюция.################################################## #####
# Output:
#% CELLNAME%. SP################################################## #####
# Преход Час и изход Capacitance
# Hspice ще използва тези две колона за да генерира матрица от времето анализ
################################################## ###### преход време
@ а = QW * 5ps 50ps 100ps 150ps 200ps 250ps 300ps *;
# капацитет
@ B = QW * 0ff 3.5ff 17.5ff 35ff 87.5ff 105ff 231ff *;# преди 07/19/03
# @ а = QW * 0 10.695ps 40.71ps 70.75ps 156.49ps 301.6ps 591.8ps *;
# @ B = QW * 0 2FF 8FF 20FF 50FF 100FF 200FF *;# seokjin появяват
# @ а = QW * 0.03ps 0.1ps 0.4ps 0.9ps 1.5ps 2.2ps 3Ps *;
# @ B = QW * 0.00035pf 0.021pf 0.0385pf 0.084pf 0.147pf 0.231pf 0.3115pf *;################################################## #####
# Получи името на файла (обикновено si.inp)
################################################## #####
отворен Лала, "$ ARGV [0]";
@ линия = <LALA>;
Лала близки;################################################## #####
# Получи на втория аргумент, резолюцията
################################################## #####
$ к.с. = $ ARGV [1];################################################## #####
# Придобива името на клетката от si.inp и използването на
# Име на клетка, за да се създаде%% CELLNAME. SP
################################################## #####
foreach (@ ред) (
IF ($ _ = ~ / Дизайн име клетка: /) (
@ Temp = Split / /,$_;
Име: $ $ Temp [$ # Temp];
chomp $ име на файл
)отворен HSPICE, "> $ filename.sp";################################################## #####
# Търсите порта и броя на входящите
# $ OtherInput е или "GND" или "VDD".
# Него се посочва за много входове за вратовръзка всички да GND или VDD
# $ Обърната е или "Т" или "F".
# Разказва, че програмата е портата обърнати
# Този раздел трябва да се добавят за нов тип логика клетки
################################################## #####$ NumberOfInput = $ име на файл;
ако ($ Име: ~ / инв /) (
$ NumberOfInput = 1;
$ продукция = "Z";
$ обърнати = "Т"
ELSIF ($ Име: ~ / BUF /) (
$ NumberOfInput = 1;
$ продукция = "Z";
$ обърнати = "F"
ELSIF ($ Име: ~ / MUX /) (# може да не работи
$ NumberOfInput = 3;
$ OtherInput = "VDD";
$ продукция = "Z";
$ обърнати = "F"
ELSIF ($ Име: ~ / NAND /) (
$ NumberOfInput = ~ S / NAND / / г;
$ NumberOfInput = ~ S / X [\ D] / / г;
$ OtherInput = "VDD";
$ продукция = "Z";
$ обърнати = "Т"
ELSIF ($ Име: ~ / нито /) (
$ NumberOfInput = ~ S / нито / / г;
$ NumberOfInput = ~ S / X [\ D] / / г;
$ OtherInput = "GND";
$ продукция = "Z";
$ обърнати = "Т"
ELSIF ($ Име: ~ / XOR /) (
$ NumberOfInput = ~ S / XOR / / г;
$ NumberOfInput = ~ S / X [\ D] / / г;
$ OtherInput = "GND";
$ продукция = "Z";
$ обърнати = "F"
ELSIF ($ Име: ~ / и /) (
$ NumberOfInput = ~ ю / и / / г;
$ NumberOfInput = ~ S / X [\ D] / / г;
$ OtherInput = "VDD";
$ продукция = "Z";
$ обърнати = "F"
ELSIF ($ Име: ~ / или /) (
$ NumberOfInput = ~ и / или / / г;
$ NumberOfInput = ~ S / X [\ D] / / г;
$ OtherInput = "GND";
$ продукция = "Z";
$ обърнати = "F"
ако ($ NumberOfInput == 1) (
= $ вход "А"
ако ($ NumberOfInput == 2) (
= $ вход "А Б"
ако ($ NumberOfInput == 3) (
$ вход = "AB C"
ако ($ NumberOfInput == 4) (
$ вход = "ABC D"
ако ($ NumberOfInput == 5) (
$ вход = "ABCD Е"
$ Inout = $ вход. "". $ изход;################################################## #####
#, За да замени "\" и връщане на каретката (ако линията е прекалено дълго)
# С връщане на каретката и " " в HSPICE формат
################################################## #####
за ($ N = 0; $ N <= $ # линия; $ N ) (
ако ($ линия [$ N] = ~ / \ \ \ N /) (
chomp $ линия [$ N];
котлет $ ред [$ N];
$ линия [$ N] .= $ линия [($ N 1)];
$ линия [$ N] = ~ S / / / г
)################################################## #####
#, За да изхвърли всички линии, с изключение на една започва с
# _inst
################################################## #####
$ N = 0;
foreach (@ ред) (
IF ($ _ = ~ / _inst \ D /) (
$ нов [$ N] = $ _;
$ N
)
################################################## #####
# Замени с _inst или C * M * и сключване на думата
# Кондензатор и региона = сб
също така да се "(", ")", "!"
################################################## #####
$ М = 1; $ C = 1;
foreach (@ нови) (
ако (($ _ = ~ / tsmc20P /) или ($ _ = ~ / tsmc20N /)) (
$ _ = ~ S / _inst [\ D] / M $ M / г;
$ М
IF ($ _ = ~ / кондензатор /) (
$ _ = ~ S / _inst [\ D] / C $ C / G;
$ C ;
$ _ = ~ S / кондензатор / / г
$ _ = ~ S / регион \ = Съб / / г;
$ _ = ~ S / \ (/ / г;
$ _ = ~ S / \) / / г;
$ _ = ~ S / \! / / Г;
$ _ = ~ S / / / г
################################################## #####
# Дубликат m m, ако е по-голяма от 2
################################################## #####foreach (@ нови) (
@ стойности = Split / /,$_;
$ ценности [$ ценности #] = ~ S / M = / / г;
$ Temp = $ стойности [$ # ценности];
chomp $ Temp;
$ ценности [$ ценности #] = "\ N";
$ _ = Присъединят към "" @ ценности;
$ Temp -;
$ копие = $ _;
за (1 .. $ Temp) (
$ нов [$ # нова 1] = $ копие;
@ промяна = Split / /, $ нов [$ # нов];
ако ($ промяна [0] = ~ S / M [\ D] / M $ М / ж) (;
$ М
ако ($ промяна [0] = ~ S / C [\ D] / C $ C / ж) (;
$ C
$ нов [$ # нов] = присъединят към "" @ климата;
))################################################## #####
# Обмен W, L; например, рекламни PS, PD
################################################## #####foreach (@ нови) (
@ стойности = Split / /,$_;
ако ($ ценности [0] = ~ / M (\ D) /) (
($ ценности [7], $ ценности [6]) = ($ ценности [6], $ ценности [7]);
($ ценности [9], $ ценности [8]) = ($ ценности [8], $ ценности [9]);
($ ценности [11], $ ценности [10]) = ($ ценности [10], $ ценности [11])
$ _ = Присъединят към "" @ ценности
################################################## #####
# Добавяне на началото на файла
################################################## #####$ средата = присъединят към "" @ нови;
$ средата = ~ S / \ / N \ N / G;$ top_middle = "\ *". $ името на файла. ". SP \ n.options SPICE NOMOD автостоп LVLTIM = 3 \ n.param ttra = 0.1n LV = 0.1e-12 \ n.temp 27 \ N \ n.include \ "/ usr/local/packages/cadence/local/models/hspice/standalone/tsmc20P.m \" \ n.include \ "/ usr/local/packages/cadence/local/models/hspice/standalone/tsmc20N.m \ "\ n.global VDD \ n.global GND \ N \ N \ n.subckt файла $ $ Inout \ N".
$ средата. ". завършва \ N";################################################## #####
# Намерите броя на входящите
################################################## #####
@ вход = Split / /, $ вход;
$ n_input = $ # вход; # броя на вход - 1
$ G = "GND";
$ V = "VDD";
$ I = "входа";
$ O = "изхода";chomp $ к.с.;
$ период = $ к.с. $ к.с.;
$ wholeperiod = $ период $ к.с.;
$ резолюция = (($ период 1) / 10000);печат "на резолюцията е". $ резолюция. "\ N";$ lastpart = "Х". $ името на файла. $ i. OtherInput х $ $ n_input. $ o. "". $ името на файла. "\ nCLOAD". O. $ $ Ж. "ПС \ N \ NVA". $ i. $ Ж. "ПУЛС \ (0,3.3,1 P, Ttra, Ttra,". $ HP. "N". $ период. "N \) \ N \ nvdd". V. $ $ Ж. "3.3 \ N \ N ";################################################## #####
# Middie последна част
################################################## #####
ако ($ обърнати екв "Т") (
$ ABC = ". Измервателен TRAN cell_rise спретнат V ($ I) Вал = 1,65 TD = 0n попаднат = 1 \ N \ tTARG V ($ O) Вал = 1,65 доведе = 1 \ N".
". Измервателен TRAN cell_fall спретнат V ($ I) Вал = 1,65 TD = 0n доведе = 1 \ N \ tTARG V ($ O) Вал = 1,65 попаднат = 1 \ N".
". Измервателен TRAN rise_slew спретнат V ($ O) Вал = 0,33 TD = 0n доведе = 1 \ N \ tTARG V ($ O) Вал = 2,97 доведе = 1 \ N".
". Измервателен TRAN fall_slew спретнат V ($ O) Вал = 2,97 TD = 0n попаднат = 1 \ N \ tTARG V ($ O) Вал = 0,33 попаднат = 1 \ N".
". TRAN". $ Резолюция. "N". $ Wholeperiod. "N почистване данни = DATNM \ N"
ELSIF ($ обърнати екв "F") (
$ ABC = ". Измервателен TRAN cell_rise спретнат V ($ I) Вал = 1,65 TD = 0n доведе = 1 \ N \ tTARG V ($ O) Вал = 1,65 доведе = 1 \ N".
". Измервателен TRAN cell_fall спретнат V ($ I) Вал = 1,65 TD = 0n попаднат = 1 \ N \ tTARG V ($ O) Вал = 1,65 попаднат = 1 \ N".
". Измервателен TRAN rise_slew спретнат V ($ O) Вал = 0,33 TD = 0n доведе = 1 \ N \ tTARG V ($ O) Вал = 2,97 доведе = 1 \ N".
". Измервателен TRAN fall_slew спретнат V ($ O) Вал = 2,97 TD = 0n попаднат = 1 \ N \ tTARG V ($ O) Вал = 0,33 попаднат = 1 \ N".
". TRAN". $ Резолюция. "N". $ Wholeperiod. "N почистване данни = DATNM \ N"
################################################## #####
# Варират капацитет и време на забавяне
# @ Промяна а, б @ на върха
################################################## #####
@ C;
$ # C = 0;
foreach $ A (@ а) (
foreach $ B (@ б) (
$ C [$ # C ] = ($ a. "\ т". $ b. "\ N ");}}
$ C = присъединят към "" @ C;
$ C = ~ S / \ / N \ N / G;datnm $ = ". ДАННИ DATNM \ nTtra \ TLV \ $ c.ENDDATA N \ N";# $ datnm печат;################################################## #####
# Климата. Променят
################################################## #####
@ последно;
$ брой = 2;
за (1 .. $ n_input) (
$ последно [0] = "Х $ име на файл";
$ последно [1] = $ OtherInput;
за (1 .. $ n_input) (
$ последно [$ _ 1] = $ OtherInput
$ последно [$ брой ] = $ I;
$ последно .= ". променят \ N (в) последно $ O $ файла \ N";
)
$ последно .= ". края \ N";################################################## #####
# Съчетават всички
################################################## #####$ окончателен = "$ top_middle". "\ N". "$ lastpart". "$ ABC \ N". "$ datnm". "\ N". "$ последно";
печат HSPICE $ окончателен;близо HSPICE;
Както бях обещал в:
1.з п **: / / www.edaboard.com/viewtopic.php?t=98320
Започна да събира полезна Perl скриптове на ЕАО тук:
Моля помогне да спечелят тази тема
-------------------------------------------------- -----------------------------------
1.Призракът на hspice инструмент converion:Код:
#! / ЮЕсАр / BIN / Perl
# Нелсън Ху
# EE464H
# 08/07/03################################################## #####
# Тази програма "Spectre2Hspice.pl" Hspice генерира код от
# Netlist Призракът (si.inp)
# За изхода на тази програма ще бъде в състояние да работят във Hspice
# За времето анализ################################################## #####
# Как да използвате тази програма:
# В папката, където се намира si.inp, тип
# Perl / home/projects/abraham/vlsi464/spicetest/FinalTOOLS/Spectre2Hspice.pl si.inp 3
# Под номер 3 в края е резолюция за времето анализ.
то там е по-дълъг закъснение, по-голям брой се използва
#, Така че когато пускате Hspice, кодът няма да се провали.################################################## #####
# Input:
# Si.inp
# Номер за резолюция.################################################## #####
# Output:
#% CELLNAME%. SP################################################## #####
# Преход Час и изход Capacitance
# Hspice ще използва тези две колона за да генерира матрица от времето анализ
################################################## ###### преход време
@ а = QW * 5ps 50ps 100ps 150ps 200ps 250ps 300ps *;
# капацитет
@ B = QW * 0ff 3.5ff 17.5ff 35ff 87.5ff 105ff 231ff *;# преди 07/19/03
# @ а = QW * 0 10.695ps 40.71ps 70.75ps 156.49ps 301.6ps 591.8ps *;
# @ B = QW * 0 2FF 8FF 20FF 50FF 100FF 200FF *;# seokjin появяват
# @ а = QW * 0.03ps 0.1ps 0.4ps 0.9ps 1.5ps 2.2ps 3Ps *;
# @ B = QW * 0.00035pf 0.021pf 0.0385pf 0.084pf 0.147pf 0.231pf 0.3115pf *;################################################## #####
# Получи името на файла (обикновено si.inp)
################################################## #####
отворен Лала, "$ ARGV [0]";
@ линия = <LALA>;
Лала близки;################################################## #####
# Получи на втория аргумент, резолюцията
################################################## #####
$ к.с. = $ ARGV [1];################################################## #####
# Придобива името на клетката от si.inp и използването на
# Име на клетка, за да се създаде%% CELLNAME. SP
################################################## #####
foreach (@ ред) (
IF ($ _ = ~ / Дизайн име клетка: /) (
@ Temp = Split / /,$_;
Име: $ $ Temp [$ # Temp];
chomp $ име на файл
# Търсите порта и броя на входящите
# $ OtherInput е или "GND" или "VDD".
# Него се посочва за много входове за вратовръзка всички да GND или VDD
# $ Обърната е или "Т" или "F".
# Разказва, че програмата е портата обърнати
# Този раздел трябва да се добавят за нов тип логика клетки
################################################## #####$ NumberOfInput = $ име на файл;
ако ($ Име: ~ / инв /) (
$ NumberOfInput = 1;
$ продукция = "Z";
$ обърнати = "Т"
ELSIF ($ Име: ~ / BUF /) (
$ NumberOfInput = 1;
$ продукция = "Z";
$ обърнати = "F"
ELSIF ($ Име: ~ / MUX /) (# може да не работи
$ NumberOfInput = 3;
$ OtherInput = "VDD";
$ продукция = "Z";
$ обърнати = "F"
ELSIF ($ Име: ~ / NAND /) (
$ NumberOfInput = ~ S / NAND / / г;
$ NumberOfInput = ~ S / X [\ D] / / г;
$ OtherInput = "VDD";
$ продукция = "Z";
$ обърнати = "Т"
ELSIF ($ Име: ~ / нито /) (
$ NumberOfInput = ~ S / нито / / г;
$ NumberOfInput = ~ S / X [\ D] / / г;
$ OtherInput = "GND";
$ продукция = "Z";
$ обърнати = "Т"
ELSIF ($ Име: ~ / XOR /) (
$ NumberOfInput = ~ S / XOR / / г;
$ NumberOfInput = ~ S / X [\ D] / / г;
$ OtherInput = "GND";
$ продукция = "Z";
$ обърнати = "F"
ELSIF ($ Име: ~ / и /) (
$ NumberOfInput = ~ ю / и / / г;
$ NumberOfInput = ~ S / X [\ D] / / г;
$ OtherInput = "VDD";
$ продукция = "Z";
$ обърнати = "F"
ELSIF ($ Име: ~ / или /) (
$ NumberOfInput = ~ и / или / / г;
$ NumberOfInput = ~ S / X [\ D] / / г;
$ OtherInput = "GND";
$ продукция = "Z";
$ обърнати = "F"
= $ вход "А"
ако ($ NumberOfInput == 2) (
= $ вход "А Б"
ако ($ NumberOfInput == 3) (
$ вход = "AB C"
ако ($ NumberOfInput == 4) (
$ вход = "ABC D"
ако ($ NumberOfInput == 5) (
$ вход = "ABCD Е"
#, За да замени "\" и връщане на каретката (ако линията е прекалено дълго)
# С връщане на каретката и " " в HSPICE формат
################################################## #####
за ($ N = 0; $ N <= $ # линия; $ N ) (
ако ($ линия [$ N] = ~ / \ \ \ N /) (
chomp $ линия [$ N];
котлет $ ред [$ N];
$ линия [$ N] .= $ линия [($ N 1)];
$ линия [$ N] = ~ S / / / г
)################################################## #####
#, За да изхвърли всички линии, с изключение на една започва с
# _inst
################################################## #####
$ N = 0;
foreach (@ ред) (
IF ($ _ = ~ / _inst \ D /) (
$ нов [$ N] = $ _;
$ N
)
################################################## #####
# Замени с _inst или C * M * и сключване на думата
# Кондензатор и региона = сб
също така да се "(", ")", "!"
################################################## #####
$ М = 1; $ C = 1;
foreach (@ нови) (
ако (($ _ = ~ / tsmc20P /) или ($ _ = ~ / tsmc20N /)) (
$ _ = ~ S / _inst [\ D] / M $ M / г;
$ М
IF ($ _ = ~ / кондензатор /) (
$ _ = ~ S / _inst [\ D] / C $ C / G;
$ C ;
$ _ = ~ S / кондензатор / / г
$ _ = ~ S / регион \ = Съб / / г;
$ _ = ~ S / \ (/ / г;
$ _ = ~ S / \) / / г;
$ _ = ~ S / \! / / Г;
$ _ = ~ S / / / г
# Дубликат m m, ако е по-голяма от 2
################################################## #####foreach (@ нови) (
@ стойности = Split / /,$_;
$ ценности [$ ценности #] = ~ S / M = / / г;
$ Temp = $ стойности [$ # ценности];
chomp $ Temp;
$ ценности [$ ценности #] = "\ N";
$ _ = Присъединят към "" @ ценности;
$ Temp -;
$ копие = $ _;
за (1 .. $ Temp) (
$ нов [$ # нова 1] = $ копие;
@ промяна = Split / /, $ нов [$ # нов];
ако ($ промяна [0] = ~ S / M [\ D] / M $ М / ж) (;
$ М
ако ($ промяна [0] = ~ S / C [\ D] / C $ C / ж) (;
$ C
$ нов [$ # нов] = присъединят към "" @ климата;
))################################################## #####
# Обмен W, L; например, рекламни PS, PD
################################################## #####foreach (@ нови) (
@ стойности = Split / /,$_;
ако ($ ценности [0] = ~ / M (\ D) /) (
($ ценности [7], $ ценности [6]) = ($ ценности [6], $ ценности [7]);
($ ценности [9], $ ценности [8]) = ($ ценности [8], $ ценности [9]);
($ ценности [11], $ ценности [10]) = ($ ценности [10], $ ценности [11])
$ _ = Присъединят към "" @ ценности
# Добавяне на началото на файла
################################################## #####$ средата = присъединят към "" @ нови;
$ средата = ~ S / \ / N \ N / G;$ top_middle = "\ *". $ името на файла. ". SP \ n.options SPICE NOMOD автостоп LVLTIM = 3 \ n.param ttra = 0.1n LV = 0.1e-12 \ n.temp 27 \ N \ n.include \ "/ usr/local/packages/cadence/local/models/hspice/standalone/tsmc20P.m \" \ n.include \ "/ usr/local/packages/cadence/local/models/hspice/standalone/tsmc20N.m \ "\ n.global VDD \ n.global GND \ N \ N \ n.subckt файла $ $ Inout \ N".
$ средата. ". завършва \ N";################################################## #####
# Намерите броя на входящите
################################################## #####
@ вход = Split / /, $ вход;
$ n_input = $ # вход; # броя на вход - 1
$ G = "GND";
$ V = "VDD";
$ I = "входа";
$ O = "изхода";chomp $ к.с.;
$ период = $ к.с. $ к.с.;
$ wholeperiod = $ период $ к.с.;
$ резолюция = (($ период 1) / 10000);печат "на резолюцията е". $ резолюция. "\ N";$ lastpart = "Х". $ името на файла. $ i. OtherInput х $ $ n_input. $ o. "". $ името на файла. "\ nCLOAD". O. $ $ Ж. "ПС \ N \ NVA". $ i. $ Ж. "ПУЛС \ (0,3.3,1 P, Ttra, Ttra,". $ HP. "N". $ период. "N \) \ N \ nvdd". V. $ $ Ж. "3.3 \ N \ N ";################################################## #####
# Middie последна част
################################################## #####
ако ($ обърнати екв "Т") (
$ ABC = ". Измервателен TRAN cell_rise спретнат V ($ I) Вал = 1,65 TD = 0n попаднат = 1 \ N \ tTARG V ($ O) Вал = 1,65 доведе = 1 \ N".
". Измервателен TRAN cell_fall спретнат V ($ I) Вал = 1,65 TD = 0n доведе = 1 \ N \ tTARG V ($ O) Вал = 1,65 попаднат = 1 \ N".
". Измервателен TRAN rise_slew спретнат V ($ O) Вал = 0,33 TD = 0n доведе = 1 \ N \ tTARG V ($ O) Вал = 2,97 доведе = 1 \ N".
". Измервателен TRAN fall_slew спретнат V ($ O) Вал = 2,97 TD = 0n попаднат = 1 \ N \ tTARG V ($ O) Вал = 0,33 попаднат = 1 \ N".
". TRAN". $ Резолюция. "N". $ Wholeperiod. "N почистване данни = DATNM \ N"
ELSIF ($ обърнати екв "F") (
$ ABC = ". Измервателен TRAN cell_rise спретнат V ($ I) Вал = 1,65 TD = 0n доведе = 1 \ N \ tTARG V ($ O) Вал = 1,65 доведе = 1 \ N".
". Измервателен TRAN cell_fall спретнат V ($ I) Вал = 1,65 TD = 0n попаднат = 1 \ N \ tTARG V ($ O) Вал = 1,65 попаднат = 1 \ N".
". Измервателен TRAN rise_slew спретнат V ($ O) Вал = 0,33 TD = 0n доведе = 1 \ N \ tTARG V ($ O) Вал = 2,97 доведе = 1 \ N".
". Измервателен TRAN fall_slew спретнат V ($ O) Вал = 2,97 TD = 0n попаднат = 1 \ N \ tTARG V ($ O) Вал = 0,33 попаднат = 1 \ N".
". TRAN". $ Резолюция. "N". $ Wholeperiod. "N почистване данни = DATNM \ N"
# Варират капацитет и време на забавяне
# @ Промяна а, б @ на върха
################################################## #####
@ C;
$ # C = 0;
foreach $ A (@ а) (
foreach $ B (@ б) (
$ C [$ # C ] = ($ a. "\ т". $ b. "\ N ");}}
$ C = присъединят към "" @ C;
$ C = ~ S / \ / N \ N / G;datnm $ = ". ДАННИ DATNM \ nTtra \ TLV \ $ c.ENDDATA N \ N";# $ datnm печат;################################################## #####
# Климата. Променят
################################################## #####
@ последно;
$ брой = 2;
за (1 .. $ n_input) (
$ последно [0] = "Х $ име на файл";
$ последно [1] = $ OtherInput;
за (1 .. $ n_input) (
$ последно [$ _ 1] = $ OtherInput
$ последно [$ брой ] = $ I;
$ последно .= ". променят \ N (в) последно $ O $ файла \ N";
)
$ последно .= ". края \ N";################################################## #####
# Съчетават всички
################################################## #####$ окончателен = "$ top_middle". "\ N". "$ lastpart". "$ ABC \ N". "$ datnm". "\ N". "$ последно";
печат HSPICE $ окончателен;близо HSPICE;