Perl приложения в ЕАО

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;
 
-------------------------------------------------- -----------------------------------
2.Различни ЕАО формати реализации

Форматиblif2cnf

А BLIF да преводач CNF.Този скрипт приема един или повече файлове във формат BLIF и превръща всеки един, за да форматирате CNF (предложен за DIMACS 1993 предизвикателство от ДАТ).iscas2cnf

Един ISCAS'89 да преводач CNF.Този скрипт приема един или повече файлове във формат ISCAS'89 и превръща всеки един, за да форматирате CNF (предложен за DIMACS 1993 предизвикателство от ДАТ).iscas2blif

Един ISCAS'89 да преводач BLIF.Този скрипт приема един или повече файлове във формат ISCAS'89 и превръща всеки един, за да форматирате BLIF.Miter

Сценарий за създаване на Miter дали две схеми, описани във формат ISCAS'89.Този скрипт е полезен за еквивалентност цели проверка.cnf2lp

Сценарий за превръщането на случаи на SAT (в CNF формат) във формат LP (използвани от линейно програмиране LP-решаване на Solver).

cnf2pbf

Сценарий за превръщането на случаи на SAT (в CNF формат) във формат PBF (използван от Solver bsolo БКП).

cnf2prime

Сценарий за създаване на инстанция на БКП (в PBF формат) за изчисляване на минималния размер на основната implicant булеви функции (в CNF формат).

bcp2pbf

Сценарий за превръщането на случаи на БКП (под формата на БКП, използвани от Solver Скерцо на БКП) във формат PBF (използвани от Solver bsolo на БКП).

pbf2bcp

Сценарий за превръщането на случаи на БКП в ormat PBF (използван от Solver bsolo на БКП) под формата на БКП (използван от Solver скерцо на БКП).

pbf2cnf

Сценарий за превръщането на случаи на БКП във формат PBF (използван от Solver bsolo БКП) във формат CNF.

pbf2lp

Сценарий за превръщането на случаи на БКП във формат PBF (използван от Solver bsolo БКП) във формат LP (използвани от линейно програмиране LP-решаване на Solver).

pbf2opb

Сценарий за превръщането на случаи на БКП във формат PBF (използван от Solver bsolo БКП) във формат OPB (използван от псевдо булев opbdp Solver).

2.1.з п **: / / sat.inesc-id.pt / ~ jpms / скриптове /

* -> Т

Tnx

-------------------------------------------------- -----------------------------------

 
-------------------------------------------------- -----------------------------------
3.Blif файл в SPICE файл

Сценарият Perl може да превежда на blif файл в SPICE файл3.1.з п **: / / WWW unix.ecs.umass.edu / ~ kzhou /
3.2.з п **: / / WWW-unix.ecs.umass.edu / ~ kzhou/blif2spice.pl* -> Т

Tnx

-------------------------------------------------- -----------------------------------

 
-------------------------------------------------- -----------------------------------

4.HDL2HTML

Този скрипт се PERL файл HDL (VHDL или Verilog) и се произвежда HTML форматирана версия.Той е удобен за проектиране преглед на кода - да публикува своя дизайн на интранет на вашата компания, имейл др ..Вторичен продукт на тази програма е, че тъй като е в HTML, че не е лесно копирани или състави.

4.1.з п **: / / www.millogic.com / downloads.htm

* -> Т

Tnx

-------------------------------------------------- -----------------------------------

 
-------------------------------------------------- -----------------------------------

5.Verilog-Perl

Тази библиотека е предназначен за изграждане на пункт за Verilog подкрепа на езика Perl.

5.1.з п **: / / www.veripool.com / Verilog-perl.html
5.2.з п **: / / cpan.uwinnipeg.ca / htdocs / Verilog-Perl /

* -> Т

Tnx

-------------------------------------------------- -----------------------------------

 
-------------------------------------------------- -----------------------------------

6.ScriptSim

Непрекъснато интеграция на Python, Perl, и Tk с VerilogŽ симулации.6.1.з п **: / / www.nelsim.com/

* -> Т

Tnx

-------------------------------------------------- -----------------------------------

 
-------------------------------------------------- -----------------------------------

7.Verilog : A Preprocessor Verilog

Verilog е Preprocessor за Verilog файлове, които въвежда две нови конструкции на Verilog: включване на произволен код и параметризуеми модул поколение.Тези характеристики дават по-голяма гъвкавост, отколкото на VHDL "генерира" изявление.

Verilog preprocesses си входни файлове в два етапа, като се използва програми наречен vvparse.По време на първата фаза на предварителна обработка, всеки код включвания са екзекутирани.По време на втората фаза на предварителна обработка, параметризуеми модули са решени и всички изходни файлове, съдържащи необходимата параметризуеми модул декларации се обработват.7.1.з п **: / / www.mpce.mq.edu.au/ ~ / Spon Verilog /

* -> Т

Tnx

-------------------------------------------------- -----------------------------------

 
-------------------------------------------------- -----------------------------------

8.В Verilog на HTML конвертор

The Rough Verilog Parser
Ако ти пиша Perl скриптове за извличане на информация от Verilog файлове може би си мислите, че анализатор, че v2html използва за разбор на Verilog може да бъде изтръгнат използван в следващия си сценарий.Ами то вероятно може - и аз се опитах да направя това лесно да се направи това, като отделя на анализатора от всички други неща, които v2html прави.Аз го наричат "The Rough Verilog Parser" и го направи по Perl модул.8.1.з п **: / / www.burbleland.com/v2html/rvp.html

* -> Т

Tnx

-------------------------------------------------- -----------------------------------

 
-------------------------------------------------- -----------------------------------

9.Verilog-PLI

Verilog:: PLI дава възможност да се обадя Verilog PLI функции от Perl.9.1.з п **: / / www.veripool.com / Verilog-pli.html

* -> Т

Tnx

-------------------------------------------------- -----------------------------------

 
-------------------------------------------------- -----------------------------------

10.Как да използвате Perl във вашия Verilog HDL Дизайн поток?

Всеки, който дизайни с Verilog HDL е вероятно отглеждат уморен за генериране на модул instantiations в йерархичен дизайн, или създаване на нови най-високо ниво или по-ниско ниво Verilog HDL модул.Имам генерирани няколко Perl скриптове, които автоматично ще се генерира модул instantiations, най-високо ниво модул, и по-ниско ниво модул за вас.Тези Perl скриптове могат да бъдат приложени в рамките VI / VIM / GVIM, или DOS прозорец командване.Ако сте от тях се позове в VI, сценарият продукция ще бъдат отпечатани в текущия файл.Ако сте от тях се позове в командния DOS прозорец, тогава ще трябва или да изрежете и поставите във вашия файл Verilog HDL или тръба на продукцията на новия файл.

10,1 ч п **: / / www.ece.ucdavis.edu/ ~ jwwebb / using_perl_with_verilog.shtml

* -> Т

Tnx

-------------------------------------------------- -----------------------------------

 
-------------------------------------------------- -----------------------------------

11.ScriptEDA

Тази страница е посветена на свързване скриптови езици като Perl, Python и Tcl за всяко свободно достъпни инструменти ЕАО.11.1.з п **: / / WWW cad.eecs.berkeley.edu / ~ pinhong / scriptEDA /

* -> Т

Tnx

-------------------------------------------------- -----------------------------------

 
-------------------------------------------------- -----------------------------------

12.Verilog кодекс създател

Езикът Verilog хардуер описание
В Verilog Хардуер Описание език (IEEE-1364) е на език, предназначени за моделиране на хардуерни системи (по-специално, но в никакъв случай не означава изключително, електронни интегрални схеми).

Основната единица в програмата Verilog (най-често наричаме netlist) е модул.А модул може да се сравни с подпрограма или функция, но по-добра аналогия е да се видят всеки модул, като малка IC.12,1 ч п **: / / www.dcs.gla.ac.uk/ ~ Вим / verilog_codegen.shtml

* -> Т

Tnx

-------------------------------------------------- -----------------------------------

 
Здравейте jimjim2k,

сте направили добра Perl помощ за начинаещи като мен ..Много благодаря.

Можете ли да ми показват къде мога да намеря мека копие или електронна книга на "Mastering Perl / Tk" от O'Reilly.

моля да ме уведомите ...
благодаря още веднъж ..

 
jigjack написа:

Здравейте jimjim2k,сте направили добра Perl помощ за начинаещи като мен ..
Много благодаря.Можете ли да ми показват къде мога да намеря мека копие или електронна книга на "Mastering Perl / Tk" от O'Reilly.моля да ме уведомите ...

благодаря още веднъж ..
 
Здравейте jimjim2k,

благодаря за отговора ...Намерих Perl / TK връзка, изпратени от вас да бъде много полезен ....

Може ли да ми кажете как мога аз интерфейс паралелно / сериен порт използва Perl?

благодарности

 
jigjack написа:

Здравейте jimjim2k,благодаря за отговора ...
Намерих Perl / TK връзка, изпратени от вас да бъде много полезен ....Може ли да ми кажете как мога аз интерфейс паралелно / сериен порт използва Perl?благодарности
 
Ей ............. след ABT на сценария, който е генерирал файл cofegaration regester в Verilog от документацията.

 

Welcome to EDABoard.com

Sponsor

Back
Top