OpenAccess
Օփըն էքսըս (անգլ.՝ OpenAccess), Si2 կոնսոռցիումի կողմից հրապարակվող, բաց ծրագրային կոդով ԷՆԱ տվյալների բազաների կառավարման համակարգ, ինտեգրալ սխեմաների ներկայացման թվային միջավայր։ Իրականցված է C++ ծրագրավորման լեզվով և տրամադրում է ԻՍ նախագծելու անհրաժեշտ ֆունկցիոնալություն՝ դինամիկ բեռնվող գրադարանների տեսքով։
Ընդհանուր տեղեկություններ
[խմբագրել | խմբագրել կոդը]ՕpenAccess ՏԲԿՀ-ն մշակվում է Si2 կոնսոռցիումի կազմի մեջ մտնող OpenAccess կոալիցիայի կողմից։
Այն տարածվում է սեփական արտոնագրի ներքո[1], որի առկայության դեպքում միայն գրադարանները և/կամ ելատեքստերը հնարավոր է բեռնել։ Համալսարանների և անհատ ուսանողների համար հնարավոր է ստեղծել ակադեմիկ հաշիվ, որին տրամադրվում է անվճար արտոնագիր[2]։
Սյս տվյալների բազաների կառավարման համակարգն օգտագործում են այնպիսի ԷՆԱ գործիքներ, ինչպիսիք են virtuoso[3](Cadence) , CustomDesigner[4](Synopsys) , library creator(Nangate) , Mower[5](Voom) և այլն։
Աշխատանքը բազայի հետ
[խմբագրել | խմբագրել կոդը]OpenAccess տվյալների բազաի հետ հիմնականում աշխատում են C++ ծրագրավորման լեզվով, սակայն հնարավոր է աշխատել նաև տարբեր սկրիպտային լեզուներով (Perl, Ruby, TCL, Python[6])։
Բազայի հետ աշխատանքի հիմնական "միավորը" նախագիծն է։ Այն միարժեքորեն որոշվում է Գրադարան/Նախագծի Անուն/Նախագծի Տարբերակ/Նախագծի Տեսակ քառյակով, ընդ որում առաջին երեք անունները օգտատերը կարող է ընտրել ըստ ցանկության, իսկ վերջինը պետք է ընտրել բազայի տրամադրած ցանկից (maskLayout, schematic...) ։
Գրադարանը նախագծերի պահոց է։ Նախագիծը կարող է ունենալ մեկից ավելի տարբերակներ։ Յուրաքանչյուր տարբերակ կարող է ունենալ տարբեր իրականացման տեսակ (ֆիզիկական, սխեմատեխնիկական, և այլն )։
Նախագծի օրինակներ՝
- norOAgradaran/KarevorNaxagic/verjnakan/schematic
- diploma_90nm/Inv/layout_placed/maskLayout
- superDesignCompanyLib/Counter/layout_without_vdd/maskLayout
- myOA_Lib/Nand/sch_for_sdl/schematic
Հաճախ "Նախագածի տարբերակ" և "Նախագծի տեսակ" հասկացությունները պարզության համար "նույնացնում" են, օգտագործելով միայն "Նախագածի տարբերակ" անունը այնպես, որ պարզ լինի թե նագածի ինչպիսի իրագործման (տեսակի) մասին է խոսքը։ Այս դեպքում նախագիծը կբնութագրվի եռյակով։
Օրինակներ՝
- OAgradaran/sxema_himnakan/schematic
- SinapsisLib/BW123_Top/layout
- Lernag/IC_2812/schematic
Պատրաստի նախագծերի բազաներ
[խմբագրել | խմբագրել կոդը]Որոշ ընկերություններ և համալսարաններ ազատ տարածում են իրենց OpenAccess նախագածերի բազաները։
Աշխատանքի օրինակ
[խմբագրել | խմբագրել կոդը]Հետևալ C++ ծրագրի աշխատանքի արդյունքում ստեղծվում է նոր գրադարան և դատարկ սխեմատեխնիկական ԻՍ նախագիծ
#include <oaDesignDB.h>
#include <iostream>
int main()
{
try {
oaDesignInit();
oa::oaUnixNS ns;
oa::oaString libname("norOAgradaran");
oa::oaString cellname("DatarkNaxagic");
oa::oaString viewname("Sxematexnikakan");
oa::oaString typname("schematic");
// ստեղծում է նոր գրադարան
oa::oaLib* l = oa::oaLib::create(oa::oaScalarName(ns,libname),libname);
// թույլ է տալիս գրադարանում ստեղծել նոր նախագծեր
l->getAccess(oa::oaLibAccess("write"));
// ստեղծում է նոր նախագիծ (norOAgradaran/DatarkNaxagic/Sxematexnikakan/schematic)
oa::oaViewType* vt = oa::oaViewType::find(typname);
oa::oaCellView* cv = oa::oaCellView::get(l,oa::oaScalarName(ns,cellname),oa::oaScalarName(ns,viewname),vt);
oa::oaDesign* d = oa::oaDesign::open(oa::oaScalarName(ns,libname),oa::oaScalarName(ns,cellname),oa::oaScalarName(ns,viewname),'w');
oa::Block::create($d)
d->save();
// ունենք դատարկ նախագիծ
l->releaseAccess();
} catch ( oa::oaException& e ) {
std::cout << e.getMsg() << std::endl;
}
}
Այս TCL սկրիպտը արդեն պատրաստի նախագծում ստեղծում է "test123" անունով նոր հանգույց։
# Բեռնում է ՕpenAccess ՏԲԿՀ դինամիկ գրադարանը
load liboaTcl.so oa
proc String2Scalar { str } {
return [ oa::ScalarName [oa::UnixNS] $str ]
}
set libName "norOAgradaran"
set cellName "DatarkNaxagic"
set viewName "Sxematexnikakan"
set typeName "schematic"
set netName "test132"
set vtype [ oa::ViewTypeFind $typeName ]
oa::LibOpen [ String2Scalar $libName ] $libName
set d [ oa::DesignOpen [ String2Scalar $libName ] [ String2Scalar $cellName ] [ String2Scalar $viewName ] $vtype, "a" ]
set b [ oa::getTopBlock $d ]
#Ստեղծում է նոր հանգույց
oa::ScalarNetCreate $b [ String2Scalar $netName ]
oa::save $d
oa::close $d
Աղբյուրներ
[խմբագրել | խմբագրել կոդը]- ↑ «Si2 Licenses». Արխիվացված է օրիգինալից 2013 թ․ մայիսի 27-ին. Վերցված է 2014 թ․ հունվարի 20-ին.
- ↑ «Si2 How to get a User Account (si2)». Արխիվացված է օրիգինալից 2014 թ․ մարտի 31-ին. Վերցված է 2014 թ․ հունվարի 20-ին.
- ↑ Cadence Virtuoso
- ↑ Synopsys Custom Designer
- ↑ «Mower Milkyway to Openaccess translator». Արխիվացված է օրիգինալից 2010 թ․ հուլիսի 3-ին. Վերցված է 2014 թ․ հունվարի 20-ին.
- ↑ «OpenAccess Scripting Language Bindings». Արխիվացված է օրիգինալից 2014 թ․ հունիսի 1-ին. Վերցված է 2014 թ․ հունվարի 20-ին.
- ↑ Nangate open cell library project
- ↑ «NCSU Cadence Design Kit». Արխիվացված է օրիգինալից 2014 թ․ հունվարի 10-ին. Վերցված է 2014 թ․ հունվարի 20-ին.
- ↑ Oklohoma State Univeristy freePDK
Արտաքին հղումներ
[խմբագրել | խմբագրել կոդը]- Silicon Integration Initiative, the custodian of OpenAccess