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

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

  1. «Si2 Licenses». Արխիվացված է օրիգինալից 2013 թ․ մայիսի 27-ին. Վերցված է 2014 թ․ հունվարի 20-ին.
  2. «Si2 How to get a User Account (si2)». Արխիվացված է օրիգինալից 2014 թ․ մարտի 31-ին. Վերցված է 2014 թ․ հունվարի 20-ին.
  3. Cadence Virtuoso
  4. Synopsys Custom Designer
  5. «Mower Milkyway to Openaccess translator». Արխիվացված է օրիգինալից 2010 թ․ հուլիսի 3-ին. Վերցված է 2014 թ․ հունվարի 20-ին.
  6. «OpenAccess Scripting Language Bindings». Արխիվացված է օրիգինալից 2014 թ․ հունիսի 1-ին. Վերցված է 2014 թ․ հունվարի 20-ին.
  7. Nangate open cell library project
  8. «NCSU Cadence Design Kit». Արխիվացված է օրիգինալից 2014 թ․ հունվարի 10-ին. Վերցված է 2014 թ․ հունվարի 20-ին.
  9. Oklohoma State Univeristy freePDK

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