https://github.com/augustunderground/pyal

Python parser for MCNC benchmark netlists

https://github.com/augustunderground/pyal

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.3%) to scientific vocabulary

Keywords

floorplanning mcnc placement python yal
Last synced: 6 months ago · JSON representation

Repository

Python parser for MCNC benchmark netlists

Basic Info
Statistics
  • Stars: 2
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
floorplanning mcnc placement python yal
Created about 2 years ago · Last pushed about 2 years ago
Metadata Files
Readme License

README.md

PYAL

A quick and dirty parser for an even dirtier language. YAL is the language used to describe the MCNC benchmark netlist circuits. See the YAL documentation for further details.

Dependencies

  • pyparsing
  • pyaml

Usage

The example/example.yal is taken from the YAL documentation.

Module:

```python import yal

modules = yal.read('./example/example.yal') ```

See the API documentation for more information.

CLI:

$ yal2yaml ./example/example.yal > ./exmaple/example.yaml $ cat ./example/example.yal | yal2yaml > ./example/example.yaml

If the the set of *.yal files comprising the MCNC data set are in a folder called mcnc they can be converted to *.yaml like so:

sh for y in ./mcnc/*.yal; do yal2yaml $y > "${y%.yal}.yaml"; done

Installation

From git with pip:

$ pip install git+https://github.com/augustunderground/pyal.git

From source with pip:

$ git clone https://github.com/augustunderground/pyal.git $ cd pyal $ pip install . --use-feature=in-tree-build

Grammar

Due to the conflicting defintions of the YAL grammar a slightly revised version is used here:

modulename ::= [a-zA-Z0-9_]+ ; moduletype ::= "STANDARD" | "PAD" | "GENERAL" | "PARENT" | "FEEDTHROUGH" ; width ::= [0-9]+ ; height ::= [0-9]+ ; signalname ::= [a-zA-Z0-9_]+ ; terminaltype ::= "I" | "O" | "B" | "PI" | "PO" | "PB" | "F" | "PWR" | "GND" ; side ::= "BOTTOM" | "RIGHT" | "TOP" | "LEFT" ; layer ::= "PDIFF" | "NDIFF" | "POLY" | "METAL1" | "METAL2" ; xposition ::= -?[0-9]+ ; yposition ::= -?[0-9]+ ; position ::= -?[0-9]+ ; instancename ::= [a-zA-Z0-9_]+ ; xlocation ::= -?[0-9]+ ; ylocation ::= -?[0-9]+ ; current ::= -?[0-9]+(\.[0-9]+)? ; voltage ::= -?[0-9]+(\.[0-9]+)? ; maximumlength ::= [0-9]+ ; reflection ::= "RFLNONE" | "RFLY" ; rotation ::= "ROT0" | "ROT90" | "ROT180" | "ROT270" ; dimension ::= x y ; dimensions ::= dimension+ ; x ::= -?[0-9]+ ; y ::= -?[0-9]+ ; io ::= signalname terminaltype ( xposition yposition [ width layer ] | side position [ width layer ] ) [ "CURRENT" current ] [ "VOLTAGE" voltage ] ; ios ::= (io ';')+ ; network ::= instancename modulename signalname (net+) ; networks ::= (network ';')+ ; net ::= [a-zA-Z0-9_]+ ; placement ::= instancename xlocation ylocation [reflection] [rotation] ; placements ::= (placement ';')+ ; critnet ::= signalname maximumlength ; critnets ::= (critnet ';')+ ; module ::= 'MODULE' modulename ';' 'TYPE' moduletype ';' 'DIMENSIONS' dimensions ';' 'IOLIST;' ios 'ENDIOLIST;' 'NETWORK' networks 'ENDNETWORK;' ['PLACEMENT' placements 'ENDPLACEMENT;'] ['CRITICALNETS;' critnets 'ENDCRITICALNETS;'] 'ENDMODULE;' ;

Owner

  • Name: ynk
  • Login: AugustUnderground
  • Kind: user
  • Location: Innsmouth
  • Company: @electronics-and-drives

PhD Student at Reutlingen University

GitHub Events

Total
  • Watch event: 3
Last Year
  • Watch event: 3

Issues and Pull Requests

Last synced: 12 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Dependencies

requirements.txt pypi
  • pyaml *
  • pyparsing *
setup.py pypi