Greetings,This is a proposal for a new port: cad/qflow, a full end-to-end digital synthesis flow for VLSI ASIC designs.
DESCR ===== A digital synthesis flow is a set of tools and methods used to turn a VLSI design written in a high-level behavioral language like Verilog or VHDL into a physical circuit, which can either be configuration code for an FPGA target or a layout in a specific technology, that would become part of an IC. Qflow uses a complete and open source tool chain for synthesizing digital circuits starting from Verilog source and ending in physical layout for a specific target fabrication process.I started working on this port more than two years ago, firstly importing the whole toolchain:
- cad/abc - cad/yosys - cad/graywolf - cad/opensta - cad/qrouter - cad/magic - cad/netgen and then actively cooperating with upstream (which I'm adding in CC; Timalways reacted very promptly to my questions/suggestions/proposals; thanks Tim!) in order to make all the scripts and executables properly working on OpenBSD platforms; it took a while, but finally this version is stable enough I think.
Some comments on the port:- I patched scripts/magic_view.sh and scripts/qflow_manager.py.in, in order to use OpenGL as default rendering for cad/magic (instead of XR/Cairo, which is not working on OpenBSD, see [1]);
- scripts/qrouter.sh requires a patch to use GNU grep instead of base version;
- src/readlef.h requires __compar_fn_t definition for non-Linux platforms (I'll discuss this point with upstream soon);
- other patches are trivial;- license line is complex (as usual, when technology files are included...); upstream didn't add any license files, so I specified where to find the info; gscl45nm has been released under the Apache-2 license, so I see no problem in redistributing the files; OSU 050/035/018 tech files have a proprietary license that says:
[...]"Permission to use, copy, and modify this software and its documentation for research and educational purposes only and without fee or royalty is hereby granted..."
[...]I don't know if this is too restrictive; if so, we should probably split the package; please let me know how to proceed; qflow itself has a "GPL Copyright" (see README file in the distribution tarball), but no applicable license version is specified;
- 'package' target flags the following warnings: [...] Creating package qflow-1.4.83 Warning: symlink(s) point to non-existent /usr/ports/pobj/qflow-1.4.83/fake-amd64/usr/local/bin/abc /usr/ports/pobj/qflow-1.4.83/fake-amd64/usr/local/share/qflow/bin/yosys-abc Warning: symlink(s) point to non-existent /usr/ports/pobj/qflow-1.4.83/fake-amd64/usr/local/bin/graywolf /usr/ports/pobj/qflow-1.4.83/fake-amd64/usr/local/share/qflow/bin/graywolf Warning: symlink(s) point to non-existent /usr/ports/pobj/qflow-1.4.83/fake-amd64/usr/local/bin/magic /usr/ports/pobj/qflow-1.4.83/fake-amd64/usr/local/share/qflow/bin/magic Warning: symlink(s) point to non-existent /usr/ports/pobj/qflow-1.4.83/fake-amd64/usr/local/bin/netgen /usr/ports/pobj/qflow-1.4.83/fake-amd64/usr/local/share/qflow/bin/netgen Warning: symlink(s) point to non-existent /usr/ports/pobj/qflow-1.4.83/fake-amd64/usr/local/bin/qrouter /usr/ports/pobj/qflow-1.4.83/fake-amd64/usr/local/share/qflow/bin/qrouter Warning: symlink(s) point to non-existent /usr/ports/pobj/qflow-1.4.83/fake-amd64/usr/local/bin/sta /usr/ports/pobj/qflow-1.4.83/fake-amd64/usr/local/share/qflow/bin/sta Warning: symlink(s) point to non-existent /usr/ports/pobj/qflow-1.4.83/fake-amd64/usr/local/bin/yosys /usr/ports/pobj/qflow-1.4.83/fake-amd64/usr/local/share/qflow/bin/yosys [...]but I think this is normal, we should accept those messages (or please advice how to get rid of them otherwise).
Tested on amd64 only. Taking MAINTAINER. Tarball attached. [1] https://marc.info/?l=openbsd-ports&m=158363208902918&w=2 -- Alessandro De Laurenzis [mailto:jus...@atlantide.mooo.com] Web: http://www.atlantide.mooo.com LinkedIn: http://it.linkedin.com/in/delaurenzis
qflow-1.4.83.tar.gz
Description: application/tar-gz