Symbiflow package manager
- Dominant language
- No language data
- Stars
- 86
- Forks
- 9
- PR merge metrics
- No merged PRs in 30d
Description
# Symbiflow package manager / build system
# Brief explanation
To be productive writing fpga code there needs to be a great package manager. Not sure if it is in the scope of symbiflow, but using the rust project as priori art, and the fact that most toolchains without a defacto package manager have pretty terrible and fragmented solutions, it makes sense to have a package manager be tightly coupled to a toolchain.
It should be hdl agnostic - so adding preprocessing steps before verilog should be easy. This would be the basis for integrating symbiflow into existing IDE's. To quickly get a non-sucking package manager up and running an option would be to start out with a non-sucking package manager like cargo (using it as a dependency), to get the configuration file parsing, dependency install|upgrade|lock and package publishing with little work. Then adding custom commands / replacing existing commands.
# Detailed Explanation
Command line interface
```sh
symbiflow (new|install|lock|build|test|sim|synth|flash|publish|netlist|floorplan)
symbiflow flash --board icestick
```
Example configuration file `Symbiflow.toml`
```toml
[package]
name = "some name"
version = "0.1.0"
authors = ["david@craven.ch"]
repository = "https://github.com/dvc94ch/example"
license = "ISC"
[dependencies]
ip = "0.1.0"
other-ip = { git = "https://github.com/owner/repo" rev="sha1" }
[build]
language = "myhdl"
[board.icestick]
target = "ice40-1k-tf144"
[target.ice40-1k-tf144]
pnr = "arachne-pnr"
```
Example project layout
```
.
├── boards
│ └── icestick
│ ├── top.pcf
│ └── top.py
├── rtl
│ └── top.py
├── Symbiflow.toml
└── tests
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.