mirror of https://github.com/VLSIDA/OpenRAM.git
Port coverage and badges to OpenRAM
This commit is contained in:
parent
efb0cf25bf
commit
e5dc4eddb7
|
|
@ -0,0 +1,14 @@
|
||||||
|
[run]
|
||||||
|
omit =
|
||||||
|
# omit anything in a .local directory anywhere
|
||||||
|
*/.local/*
|
||||||
|
# omit everything in /usr
|
||||||
|
/usr/*
|
||||||
|
[paths]
|
||||||
|
source =
|
||||||
|
/home/gitlab-runner/builds/2fd64746/0
|
||||||
|
/home/gitlab-runner/builds/2fd64746/1
|
||||||
|
/home/gitlab-runner/builds/2fd64746/2
|
||||||
|
/home/gitlab-runner/builds/2fd64746/3
|
||||||
|
/home/gitlab-runner/builds/2fd64746/4
|
||||||
|
/home/gitlab-runner/builds/2fd64746/5
|
||||||
|
|
@ -1,6 +1,39 @@
|
||||||
|
before_script:
|
||||||
|
- . /home/gitlab-runner/setup-paths.sh
|
||||||
|
- export OPENRAM_HOME="`pwd`/compiler"
|
||||||
|
- export OPENRAM_TECH="`pwd`/technology"
|
||||||
|
|
||||||
|
stages:
|
||||||
|
- test
|
||||||
|
- coverage
|
||||||
|
|
||||||
freepdk45:
|
freepdk45:
|
||||||
script: "/home/gitlab-runner/regress_freepdk45.sh"
|
stage: test
|
||||||
|
script:
|
||||||
|
- coverage run -p $OPENRAM_HOME/tests/regress.py -t freepdk45
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- .coverage.*
|
||||||
|
expire_in: 1 week
|
||||||
|
|
||||||
scn4m_subm:
|
scn4m_subm:
|
||||||
script: "/home/gitlab-runner/regress_scn4m_subm.sh"
|
stage: test
|
||||||
|
script:
|
||||||
|
- coverage run -p $OPENRAM_HOME/tests/regress.py -t scn4m_subm
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- .coverage.*
|
||||||
|
expire_in: 1 week
|
||||||
|
|
||||||
|
coverage:
|
||||||
|
stage: coverage
|
||||||
|
script:
|
||||||
|
- coverage combine
|
||||||
|
- coverage report
|
||||||
|
- coverage html -d coverage_html
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- coverage_html
|
||||||
|
expire_in: 1 week
|
||||||
|
coverage: '/TOTAL.+ ([0-9]{1,3}%)/'
|
||||||
|
|
||||||
|
|
|
||||||
38
README.md
38
README.md
|
|
@ -1,9 +1,18 @@
|
||||||
# OpenRAM
|
# OpenRAM
|
||||||
Master: [](https://github.com/VLSIDA/OpenRAM/commits/master)
|
|
||||||
Dev: [](https://github.com/VLSIDA/OpenRAM/commits/dev)
|
[](https://www.python.org/)
|
||||||
[](https://github.com/VLSIDA/OpenRAM/archive/master.zip)
|
|
||||||
[](./LICENSE)
|
[](./LICENSE)
|
||||||
|
|
||||||
|
Master:
|
||||||
|
[](https://github.com/VLSIDA/OpenRAM/commits/master)
|
||||||
|

|
||||||
|
[](https://github.com/VLSIDA/OpenRAM/archive/master.zip)
|
||||||
|
|
||||||
|
Dev:
|
||||||
|
[](https://github.com/VLSIDA/OpenRAM/commits/dev)
|
||||||
|

|
||||||
|
[](https://github.com/VLSIDA/OpenRAM/archive/dev.zip)
|
||||||
|
|
||||||
An open-source static random access memory (SRAM) compiler.
|
An open-source static random access memory (SRAM) compiler.
|
||||||
|
|
||||||
# What is OpenRAM?
|
# What is OpenRAM?
|
||||||
|
|
@ -39,6 +48,12 @@ For example add this to your .bashrc:
|
||||||
export OPENRAM_TECH="$HOME/openram/technology"
|
export OPENRAM_TECH="$HOME/openram/technology"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
You may also wish to add OPENRAM\_HOME to your PYTHONPATH:
|
||||||
|
|
||||||
|
```
|
||||||
|
export PYTHONPATH="$PYTHONPATH:$OPENRAM_HOME"
|
||||||
|
```
|
||||||
|
|
||||||
We include the tech files necessary for [FreePDK45] and [SCMOS]
|
We include the tech files necessary for [FreePDK45] and [SCMOS]
|
||||||
SCN4M_SUBM. The [SCMOS] spice models, however, are generic and should
|
SCN4M_SUBM. The [SCMOS] spice models, however, are generic and should
|
||||||
be replaced with foundry models. If you are using [FreePDK45], you
|
be replaced with foundry models. If you are using [FreePDK45], you
|
||||||
|
|
@ -56,8 +71,7 @@ We have included the most recent SCN4M_SUBM design rules from [Qflow].
|
||||||
# Basic Usage
|
# Basic Usage
|
||||||
|
|
||||||
Once you have defined the environment, you can run OpenRAM from the command line
|
Once you have defined the environment, you can run OpenRAM from the command line
|
||||||
using a single configuration file written in Python. You may wish to add
|
using a single configuration file written in Python.
|
||||||
$OPENRAM\_HOME to your $PYTHONPATH.
|
|
||||||
|
|
||||||
For example, create a file called *myconfig.py* specifying the following
|
For example, create a file called *myconfig.py* specifying the following
|
||||||
parameters for your memory:
|
parameters for your memory:
|
||||||
|
|
@ -68,7 +82,7 @@ word_size = 2
|
||||||
# Number of words in the memory
|
# Number of words in the memory
|
||||||
num_words = 16
|
num_words = 16
|
||||||
|
|
||||||
# Technology to use in $OPENRAM\_TECH
|
# Technology to use in $OPENRAM_TECH
|
||||||
tech_name = "scn4m_subm"
|
tech_name = "scn4m_subm"
|
||||||
# Process corners to characterize
|
# Process corners to characterize
|
||||||
process_corners = ["TT"]
|
process_corners = ["TT"]
|
||||||
|
|
@ -88,7 +102,7 @@ output_name = "sram_{0}_{1}_{2}".format(word_size,num_words,tech_name)
|
||||||
|
|
||||||
You can then run OpenRAM by executing:
|
You can then run OpenRAM by executing:
|
||||||
```
|
```
|
||||||
python3 $OPENRAM\_HOME/openram.py myconfig
|
python3 $OPENRAM_HOME/openram.py myconfig
|
||||||
```
|
```
|
||||||
You can see all of the options for the configuration file in
|
You can see all of the options for the configuration file in
|
||||||
$OPENRAM\_HOME/options.py
|
$OPENRAM\_HOME/options.py
|
||||||
|
|
@ -176,7 +190,7 @@ OpenRAM is licensed under the [BSD 3-clause License](./LICENSE).
|
||||||
- [Matthew Guthaus] from [VLSIDA] created the OpenRAM project and is the lead architect.
|
- [Matthew Guthaus] from [VLSIDA] created the OpenRAM project and is the lead architect.
|
||||||
- [James Stine] from [VLSIARCH] co-founded the project.
|
- [James Stine] from [VLSIARCH] co-founded the project.
|
||||||
- Hunter Nichols maintains and updates the timing characterization.
|
- Hunter Nichols maintains and updates the timing characterization.
|
||||||
- Michael Grims created and maintains the multiport netlist code.
|
- Michael Grimes created and maintains the multiport netlist code.
|
||||||
- Jennifer Sowash is creating the OpenRAM IP library.
|
- Jennifer Sowash is creating the OpenRAM IP library.
|
||||||
- Jesse Cirimelli-Low created the datasheet generation.
|
- Jesse Cirimelli-Low created the datasheet generation.
|
||||||
- Samira Ataei created early multi-bank layouts and control logic.
|
- Samira Ataei created early multi-bank layouts and control logic.
|
||||||
|
|
@ -185,6 +199,8 @@ OpenRAM is licensed under the [BSD 3-clause License](./LICENSE).
|
||||||
- Brian Chen created early prototypes of the timing characterizer.
|
- Brian Chen created early prototypes of the timing characterizer.
|
||||||
- Jeff Butera created early prototypes of the bank layout.
|
- Jeff Butera created early prototypes of the bank layout.
|
||||||
|
|
||||||
|
If I forgot to add you, please let me know!
|
||||||
|
|
||||||
* * *
|
* * *
|
||||||
|
|
||||||
[Matthew Guthaus]: https://users.soe.ucsc.edu/~mrg
|
[Matthew Guthaus]: https://users.soe.ucsc.edu/~mrg
|
||||||
|
|
@ -193,9 +209,9 @@ OpenRAM is licensed under the [BSD 3-clause License](./LICENSE).
|
||||||
[VLSIARCH]: https://vlsiarch.ecen.okstate.edu/
|
[VLSIARCH]: https://vlsiarch.ecen.okstate.edu/
|
||||||
[OpenRAMpaper]: https://ieeexplore.ieee.org/document/7827670/
|
[OpenRAMpaper]: https://ieeexplore.ieee.org/document/7827670/
|
||||||
|
|
||||||
[Github issues]: https://github.com/OpenRAM/OpenRAM/issues
|
[Github issues]: https://github.com/VLSIDA/OpenRAM/issues
|
||||||
[Github pull request]: https://github.com/OpenRAM/OpenRAM/pulls
|
[Github pull request]: https://github.com/VLSIDA/OpenRAM/pulls
|
||||||
[Github projects]: https://github.com/OpenRAM/OpenRAM/projects
|
[Github projects]: https://github.com/VLSIDA/OpenRAM/projects
|
||||||
|
|
||||||
[email me]: mailto:mrg+openram@ucsc.edu
|
[email me]: mailto:mrg+openram@ucsc.edu
|
||||||
[dev-group]: mailto:openram-dev-group@ucsc.edu
|
[dev-group]: mailto:openram-dev-group@ucsc.edu
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="76" height="20"><linearGradient id="b" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="a"><rect width="76" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#a)"><path fill="#555" d="M0 0h49v20H0z"/><path fill="#97CA00" d="M49 0h27v20H49z"/><path fill="url(#b)" d="M0 0h76v20H0z"/></g><g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="110"> <text x="255" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="390">Python</text><text x="255" y="140" transform="scale(.1)" textLength="390">Python</text><text x="615" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="170">3.5</text><text x="615" y="140" transform="scale(.1)" textLength="170">3.5</text></g> </svg>
|
||||||
|
After Width: | Height: | Size: 948 B |
|
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="106" height="20"><linearGradient id="b" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="a"><rect width="106" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#a)"><path fill="#555" d="M0 0h63v20H0z"/><path fill="#007ec6" d="M63 0h43v20H63z"/><path fill="url(#b)" d="M0 0h106v20H0z"/></g><g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="110"> <text x="325" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="530">download</text><text x="325" y="140" transform="scale(.1)" textLength="530">download</text><text x="835" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="330">stable</text><text x="835" y="140" transform="scale(.1)" textLength="330">stable</text></g> </svg>
|
||||||
|
After Width: | Height: | Size: 961 B |
|
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="120" height="20"><linearGradient id="b" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="a"><rect width="120" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#a)"><path fill="#555" d="M0 0h63v20H0z"/><path fill="#007ec6" d="M63 0h57v20H63z"/><path fill="url(#b)" d="M0 0h120v20H0z"/></g><g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="110"> <text x="325" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="530">download</text><text x="325" y="140" transform="scale(.1)" textLength="530">download</text><text x="905" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="470">unstable</text><text x="905" y="140" transform="scale(.1)" textLength="470">unstable</text></g> </svg>
|
||||||
|
After Width: | Height: | Size: 965 B |
Loading…
Reference in New Issue