question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Add skins for missing Yosys RTL cells

See original GitHub issue

Some cells from Yosys that could use a skin. I created this issue to figure out which cells should get skinned, as well as what skin they should get. I’m pulling information from the latest version of the Yosys manual. All ideas, comments, and constructive criticism welcome.

unary operators

  • $pos, making into a plus sign may get confusing with addition
  • $neg, making into a minus may get confusing with subtraction
  • $reduce_and should be added as an alias to and
  • $reduce_or and reduce_bool should be added as aliases to or

binary operators

  • $shl, $shr, $sshl, $sshr could be done with just <<, >>, <<<, and >>> respectively
  • $mul, * or x could work
  • $div, / could work
  • $mod, % could work
  • $pow, ^ or a^b may work
  • $eqx may be added as an alias to $eq
  • $ne and $nex could have a =/= symbol

registers

  • $sr, I don’t think this one needs a skin
  • $adff, same as $dff but have an ARST (asynchronous reset) port. This could simply just be on the bottom of the current $dff skin
  • $sdff, same as $dff but have an SRST (synchronous reset) port. This could simply just be on the bottom of the current $dff skin, though not sure how to distinguish from $adff, maybe by putting an A or S next to the reset port
  • $dlatch, $dlatchsr, and $adlatch, not sure what this one would look like
  • $dffsr, not sure what this one would look like

There are several other register variants listed in the manual that may be too niche / difficult to properly define a skin for. These are $dffe, $adffe, $dffsre, $sdffe, and $sdffce.

memories

  • $mem, $memrd, $memwr, $meminit - I’m not sure what to do for these, if anything should be done

gates

  • $_BUF_
  • $_ANDNOT_, $_ORNOT_
  • $_AOI3_, $_OAI3_, $_AOI4_, $_OAI4_
  • $_MUX4_, $_MUX8_, $_MUX16_

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:18 (4 by maintainers)

github_iconTop GitHub Comments

2reactions
mithrocommented, Sep 25, 2021

This looks awesome!

1reaction
mithrocommented, Jan 4, 2022

All looks pretty awesome to me!

Read more comments on GitHub >

github_iconTop Results From Across the Web

Developers - Add skins for missing Yosys RTL cells - - Bountysource
Add skins for missing Yosys RTL cells. ... I created this issue to figure out which cells should get skinned, as well as...
Read more >
Yosys Manual - GitHub
This document covers the design and implementation of this tool. At the moment the main focus of Yosys lies on the high-level aspects...
Read more >
Yosys Manual - YosysHQ
Such a graph, when encoded as list of cells and connections, is called a netlist. RTL synthesis is easy as each circuit node...
Read more >
Yosys+nextpnr: An Open Source Framework from Verilog to ...
The used mixed integer programming solver minimizes the distance between each of the memory cells and the grid locations while assigning each of ......
Read more >
So what's the deal with CHISEL, and why is it so great? : r/FPGA
Language like Chisel add some power, but it's still basically RTL. ... At the most basic level they are a better skin to...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found