**Օփըն էքսըս** (անգլ.՝ OpenAccess), Si2 կոնսոռցիումի կողմից հրապարակվող, բաց ծրագրային կոդով ԷՆԱ տվյալների բազաների կառավարման համակարգ, ինտեգրալ սխեմաների ներկայացման թվային միջավայր։ Իրականցված է C++ ծրագրավորման լեզվով և տրամադրում է ԻՍ նախագծելու անհրաժեշտ ֆունկցիոնալություն՝ դինամիկ բեռնվող գրադարանների տեսքով։

Ընդհանուր տեղեկություններ
-------------------------

ՕpenAccess ՏԲԿՀ-ն մշակվում է Si2 կոնսոռցիումի կազմի մեջ մտնող OpenAccess կոալիցիայի կողմից։

Այն տարածվում է սեփական արտոնագրի ներքո, որի առկայության դեպքում միայն գրադարանները և/կամ ելատեքստերը հնարավոր է բեռնել։
Համալսարանների և անհատ ուսանողների համար հնարավոր է ստեղծել ակադեմիկ հաշիվ, որին տրամադրվում է անվճար արտոնագիր։

Սյս տվյալների բազաների կառավարման համակարգն օգտագործում են այնպիսի ԷՆԱ գործիքներ, ինչպիսիք են virtuoso(Cadence) , CustomDesigner(Synopsys) , library creator(Nangate) , Mower(Voom) և այլն։

Աշխատանքը բազայի հետ
--------------------

OpenAccess տվյալների բազաի հետ հիմնականում աշխատում են C++ ծրագրավորման լեզվով, սակայն հնարավոր է աշխատել նաև տարբեր սկրիպտային լեզուներով (Perl, Ruby, TCL, Python)։

Բազայի հետ աշխատանքի հիմնական "միավորը" նախագիծն է։
Այն միարժեքորեն որոշվում է **Գրադարան**/**Նախագծի Անուն**/**Նախագծի Տարբերակ**/**Նախագծի Տեսակ** քառյակով,
ընդ որում առաջին երեք անունները օգտատերը կարող է ընտրել ըստ ցանկության, իսկ վերջինը պետք է ընտրել բազայի տրամադրած ցանկից (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 նախագածերի բազաները։ 

* + Nangate ընկերության "open cell library" բազա
	+ Հյուսիսային Կառոլինայի պետական համալսարանի բազա
	+ Օկլոհոմայի պետական համալսարանի բազա

Աշխատանքի օրինակ
----------------

Հետևալ 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

```

Աղբյուրներ
----------

1. ↑  "Si2 Licenses". Արխիվացված է the original 2013 թ․ մայիսի 27-ին. Retrieved 2014 թ․ հունվարի 20. `{{cite web}}`: Unknown parameter `|dead-url=` ignored (`|url-status=` suggested) (help)
2. ↑  "Si2 How to get a User Account (si2)". Արխիվացված է the original 2014 թ․ մարտի 31-ին. Retrieved 2014 թ․ հունվարի 20. `{{cite web}}`: Unknown parameter `|dead-url=` ignored (`|url-status=` suggested) (help)
3. ↑  Cadence Virtuoso
4. ↑  Synopsys Custom Designer
5. ↑  "Mower Milkyway to Openaccess translator". Արխիվացված է the original 2010 թ․ հուլիսի 3-ին. Retrieved 2014 թ․ հունվարի 20. `{{cite web}}`: Unknown parameter `|dead-url=` ignored (`|url-status=` suggested) (help)
6. ↑  "OpenAccess Scripting Language Bindings". Արխիվացված է the original 2014 թ․ հունիսի 1-ին. Retrieved 2014 թ․ հունվարի 20. `{{cite web}}`: Unknown parameter `|dead-url=` ignored (`|url-status=` suggested) (help)
7. ↑  Nangate open cell library project
8. ↑  "NCSU Cadence Design Kit". Արխիվացված է the original 2014 թ․ հունվարի 10-ին. Retrieved 2014 թ․ հունվարի 20. `{{cite web}}`: Unknown parameter `|dead-url=` ignored (`|url-status=` suggested) (help)
9. ↑  Oklohoma State Univeristy freePDK

Արտաքին հղումներ
----------------

* Silicon Integration Initiative, the custodian of OpenAccess