Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create a netlistsvg skin with routing muxes and logic muxes #1

Open
mithro opened this issue Dec 23, 2017 · 7 comments
Open

Create a netlistsvg skin with routing muxes and logic muxes #1

mithro opened this issue Dec 23, 2017 · 7 comments
Assignees
Labels
arch-* Issue related to all architectures. in-progress type-docs Issue is related to documentation. type-sim Issue is related to xxx.sim.v files.

Comments

@mithro
Copy link
Contributor

mithro commented Dec 23, 2017

Logic and routing muxes should look different in the diagrams generated.

@mithro mithro added help wanted good first issue type-sim Issue is related to xxx.sim.v files. type-docs Issue is related to documentation. arch-* Issue related to all architectures. labels Mar 7, 2018
@mithro
Copy link
Contributor Author

mithro commented Mar 7, 2018

Vivado draws routing muxes like this;
image

And user controlled muxes like this;
image

Obviously the user controlled mux is a standard symbol, but the routing mux is not and a bit stupid. Lets not copy their symbol and instead come up with a better on.

@mithro
Copy link
Contributor Author

mithro commented Mar 7, 2018

The difference between a routing and logic mux is if the select signal is controllable via logic or are place and route time. I think doing something which shows that is probably a good idea.

@wifasoi
Copy link

wifasoi commented Mar 9, 2018

What about this?

The only think need is create a pattern

    <pattern
       id="Hatch"
       width="4"
       height="4"
       patternTransform="rotate(-45 0 0)"
       patternUnits="userSpaceOnUse">
      <line
         x1="0"
         y1="0"
         x2="0"
         y2="4"
         style="stroke:black; stroke-width:1;fill:black;"/>
    </pattern>

and apply to the polygon with:

style=fill:url(#Hatch)

but i did not tested it with netlistsvg yet

@wifasoi
Copy link

wifasoi commented Mar 12, 2018

@mithro if the symbol is ok, I'll precede to create a skin for netlistsvg; but I need more information, like a yosys netlist example with some routing muxes in it (or the name of the block, inputs, and output) and where put all my work.

@mithro
Copy link
Contributor Author

mithro commented Mar 12, 2018

@daveshah1 Could you help @wifasoi with getting the needed information?

@daveshah1
Copy link
Contributor

From Yosys's POV both a routing mux and a logic mux are the same cell type (but a routing mux will be fed from a constant - parameters are resolved to a constant before elaboration, and the logic mux from an input). Any mux will be comprised of a cascade of $mux cells internally.

However, he mux_gen.py script, which can be assumed to be used for all muxes, will always instantiate a MUXn primitive inside a mux's simulation model. These build larger muxes out of MUX2.

Probably the best way forward would be to create separate Verilog models inside the vpr/muxes/logic and a newly created vpr/muxes/routing folder for logic and routing muxes; and modify mux_gen.py to use these accordingly. Then netlistsvg skins could be created for all of these.

@mithro
Copy link
Contributor Author

mithro commented Mar 17, 2018

Sounds like a good plan!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
arch-* Issue related to all architectures. in-progress type-docs Issue is related to documentation. type-sim Issue is related to xxx.sim.v files.
Projects
None yet
Development

No branches or pull requests

3 participants