mirror of
https://github.com/alex-s168/turbo-blif.git
synced 2025-09-10 01:55:08 +02:00
51 lines
4.7 KiB
Markdown
51 lines
4.7 KiB
Markdown
# turbo-blif
|
|
|
|
low-memory-usage BLIF (berkeley logic interchange format) parser.
|
|
|
|
## Comparison with other parsers
|
|
| | this | SIS | yosys | abc | [pip blifparser] | [lorina] | [crates.io blif-parser] | [quaigh] | [libblifparse] | [spydrnet] |
|
|
| ------------------------------------------- | ---- | --- | ----- | --- | ---------------- | -------- | ----------------------- | -------- | -------------- | ---------- |
|
|
| top module, latches, LUTs | x | x | x | x | x | x | x | x | x | x |
|
|
| different latch types | x | x | x | x | - | x | x | - | x | - |
|
|
| usage of library gates / latches | x | x | x | x | - | - | x | - | - | ~ |
|
|
| empty lines, padding, and comments | x | x | ? | x | - | x | x | x | x | x |
|
|
| quirk 1: allow omit `.end` and `.model` | x | x | ? | - | ? | ? | ? | - | - | ? |
|
|
| 'quirk' 2: `\` to continue on next line | x | x | x | x | - | - | x | x | x | x |
|
|
| multiple models per file & sub-circuits | x | x | x | - | - | - | x | - | x | x |
|
|
| model attr: `.clock` | x | x | x | - | - | - | - | - | - | x |
|
|
| sub-file references | x | x | ? | - | x | - | - | - | - | - |
|
|
| finite state machines (`.start_kiss`) | x | x | - | - | x | - | - | - | - | - |
|
|
| clock constraints (mostly for simulation) | soon | x | - | - | - | - | - | - | - | - |
|
|
| delay constraints | soon | x | - | ~ | - | - | - | - | - | - |
|
|
| full BLIF specification [^1] | soon | x | - | - | - | - | - | - | - | - |
|
|
| extension: "Black- & White-boxes" [^2] | soon | - | - | - | - | - | - | - | - | - |
|
|
| extension: `.blackbox` | soon | - | x | x | - | - | - | - | x | x |
|
|
| extension: `.cname` (EBLIF[^3]) | x | - | x | - | - | - | - | - | x | x |
|
|
| extension: `.attr` and `.param` (EBLIF[^3]) | x | - | x | - | - | - | - | - | x | x |
|
|
| extension: `.conn` (EBLIF[^3]) | x | - | x | - | - | - | - | - | x | x |
|
|
| extension: `.barbuff` (identical: `.conn`) | x | - | x | - | - | - | - | - | - | - |
|
|
| extension: `.and_gate_delay` | soon | - | - | x | - | - | - | - | - | - |
|
|
|
|
|
|
[^1]: https://people.eecs.berkeley.edu/~alanmi/publications/other/blif.pdf
|
|
[^2]: https://people.eecs.berkeley.edu/~alanmi/publications/other/boxes01.pdf
|
|
[^3]: https://docs.verilogtorouting.org/en/latest/vpr/file_formats/
|
|
|
|
[pip blifparser]: https://github.com/mario33881/blifparser
|
|
[lorina]: https://github.com/hriener/lorina
|
|
[crates.io blif-parser]: https://github.com/ucb-bar/blif-parser/
|
|
[quaigh]: https://github.com/Coloquinte/quaigh/
|
|
[libblifparse]: https://github.com/verilog-to-routing/libblifparse
|
|
[spydrnet]: https://github.com/byuccl/spydrnet
|
|
|
|
|
|
## Tested with BLIF generators
|
|
- yosys `write_blif`, including all supported extensions: `write_blif -iname -iattr -param -cname -blackbox -attr -conn`
|
|
- abc write blif
|
|
|
|
## Goals
|
|
- parse every BLIF file in existence
|
|
|
|
If you found a program that generates or consists of non-standard BLIF attributes or keywords, please open a GitHub issue.
|
|
We want to support all non-standard extensions.
|