Svoboda | Graniru | BBC Russia | Golosameriki | Facebook
Transfiguration pending
Jump to content

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

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