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 նախագածերի բազաները։

    • Nangate ընկերության "open cell library" բազա [7]
    • Հյուսիսային Կառոլինայի պետական համալսարանի բազա [8]
    • Օկլոհոմայի պետական համալսարանի բազա [9]

Աշխատանքի օրինակ[խմբագրել]

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

Աղբյուրներ[խմբագրել]

Արտաքին հղումներ[խմբագրել]