| > Reading your answers, I've noticed that there appear to be some major misconceptions about Yosys and how it works Indeed I opted to go with vivado instead of yosys (so i'm not an expert) but you're being a little disingenuous; there are absolutely places where yosys is explicitly, manifestly, being used as a scripting harness - you literally have ScriptPass https://github.com/YosysHQ/yosys/blob/076c5ceb714bc8f20136a8... and it is indeed used extensively for all of the flows: https://github.com/search?q=repo%3AYosysHQ%2Fyosys%20ScriptP... and so in particular, wanting to do synthesis for Xilinx, I was stuck basically commenting various lines in SynthXilinxPass::script https://github.com/YosysHQ/yosys/blob/076c5ceb714bc8f20136a8... to experiment with various flows. Now maybe you have/had a better way to do this but I couldn't find it. |
Yes, those flows use ScriptPass, because for the most part they are scripts. If they were written in Tcl, then Yosys would need to depend on a Tcl interpreter, and equivalently a Python interpreter for Python. By just using C++ for these scripts which usually only developers need to modify, Yosys does not need to depend on either.
But anyway, if I was going to mess about with the flow that much, I'd start by running `help synth_xilinx`, which outputs a list of all the commands that it calls (more or less; it can't model control flow like a proper language can), and then that can be edited into what I need it to do.