*** tpb has joined #yosys | 00:00 | |
*** gnufan_home has quit IRC | 00:22 | |
*** AlexDaniel has quit IRC | 00:28 | |
*** _whitelogger has quit IRC | 00:38 | |
*** _whitelogger has joined #yosys | 00:40 | |
*** _whitelogger has quit IRC | 00:59 | |
*** _whitelogger has joined #yosys | 01:01 | |
*** gsi__ has joined #yosys | 01:15 | |
*** gsi_ has quit IRC | 01:18 | |
*** promach has joined #yosys | 02:31 | |
promach | Would it be nicer to use negative edge triggered 'reset' compared to its positive edge triggered counterparts ? | 02:32 |
---|---|---|
*** sammylin has joined #yosys | 02:58 | |
*** PyroPeter has quit IRC | 02:58 | |
*** PyroPeter has joined #yosys | 03:12 | |
*** sammylin has quit IRC | 03:53 | |
*** _whitelogger has quit IRC | 04:59 | |
*** _whitelogger has joined #yosys | 05:01 | |
*** gnufan_home has joined #yosys | 05:05 | |
*** GoldRin has joined #yosys | 05:09 | |
*** vonnieda has joined #yosys | 05:09 | |
*** promach has quit IRC | 05:40 | |
*** _whitelogger has quit IRC | 06:02 | |
*** _whitelogger has joined #yosys | 06:04 | |
*** dys has quit IRC | 06:11 | |
*** gnufan_home has quit IRC | 06:24 | |
*** gnufan_home has joined #yosys | 06:25 | |
*** futarisIRCcloud has quit IRC | 06:36 | |
*** MoeIcenowy has quit IRC | 06:36 | |
*** dxld has quit IRC | 06:36 | |
*** flaviusb has quit IRC | 06:36 | |
*** corecode has quit IRC | 06:36 | |
*** tnt has quit IRC | 06:36 | |
*** jryans has quit IRC | 06:36 | |
*** nrossi has quit IRC | 06:36 | |
*** alexhw has quit IRC | 06:36 | |
*** X-Scale has quit IRC | 06:36 | |
*** ZipCPU has quit IRC | 06:36 | |
*** Wolf480pl has quit IRC | 06:36 | |
*** attie has quit IRC | 06:36 | |
*** knielsen has quit IRC | 06:36 | |
*** awordnot has quit IRC | 06:36 | |
*** dys has joined #yosys | 06:42 | |
*** futarisIRCcloud has joined #yosys | 06:46 | |
*** MoeIcenowy has joined #yosys | 06:46 | |
*** dxld has joined #yosys | 06:46 | |
*** flaviusb has joined #yosys | 06:46 | |
*** corecode has joined #yosys | 06:46 | |
*** tnt has joined #yosys | 06:46 | |
*** jryans has joined #yosys | 06:46 | |
*** nrossi has joined #yosys | 06:46 | |
*** alexhw has joined #yosys | 06:46 | |
*** X-Scale has joined #yosys | 06:46 | |
*** ZipCPU has joined #yosys | 06:46 | |
*** Wolf480pl has joined #yosys | 06:46 | |
*** attie has joined #yosys | 06:46 | |
*** knielsen has joined #yosys | 06:46 | |
*** awordnot has joined #yosys | 06:46 | |
*** rohitksingh has joined #yosys | 07:13 | |
*** futarisIRCcloud has quit IRC | 07:23 | |
*** vonnieda_ has joined #yosys | 07:23 | |
*** vonnieda has quit IRC | 07:24 | |
*** futarisIRCcloud has joined #yosys | 07:25 | |
*** flaviusb has quit IRC | 07:37 | |
*** flaviusb has joined #yosys | 07:38 | |
*** gsi__ is now known as gsi_ | 07:40 | |
*** s_frit has joined #yosys | 07:58 | |
*** rohitksingh has quit IRC | 08:17 | |
*** Jybz has joined #yosys | 08:46 | |
*** Jybz has quit IRC | 08:59 | |
*** Jybz has joined #yosys | 09:05 | |
*** rohitksingh has joined #yosys | 09:46 | |
*** GoldRin has quit IRC | 10:20 | |
*** vidbina has joined #yosys | 10:23 | |
*** maikmerten has joined #yosys | 10:54 | |
*** rohitksingh has quit IRC | 10:58 | |
*** mms has joined #yosys | 11:07 | |
*** rohitksingh has joined #yosys | 11:16 | |
*** dys has quit IRC | 11:18 | |
*** dys has joined #yosys | 11:20 | |
*** dys has quit IRC | 11:42 | |
*** mms has left #yosys | 11:49 | |
*** _whitelogger has quit IRC | 11:59 | |
*** _whitelogger has joined #yosys | 12:01 | |
*** _whitelogger has quit IRC | 13:20 | |
*** _whitelogger has joined #yosys | 13:22 | |
*** emeb has joined #yosys | 13:31 | |
*** SpaceCoaster has joined #yosys | 14:08 | |
*** gnufan_home has quit IRC | 14:29 | |
*** emeb has quit IRC | 14:32 | |
*** gnufan_home has joined #yosys | 14:35 | |
*** citypw has joined #yosys | 14:59 | |
*** AlexDaniel has joined #yosys | 15:10 | |
*** maikmerten has quit IRC | 15:31 | |
*** emeb_mac has joined #yosys | 15:42 | |
*** emeb_mac has quit IRC | 16:27 | |
*** futarisIRCcloud has quit IRC | 16:31 | |
*** citypw has quit IRC | 16:34 | |
*** gnufan_home has quit IRC | 17:10 | |
*** gnufan_home has joined #yosys | 17:11 | |
*** vidbina has quit IRC | 17:11 | |
ZirconiumX | Here's a probably quite cursed idea. | 18:04 |
ZirconiumX | Yosys supports reading Verilog, optimising it, and writing it as BLIF | 18:04 |
ZirconiumX | If you then use misII, which is a UCB tool from the 90's, you can read BLIF and turn it into 74-series logic | 18:05 |
ZirconiumX | "But why?" | 18:05 |
ZirconiumX | Good question | 18:06 |
tnt | Why cursed ? I mean, if you need some logic done in 7400 that could be a totally valid way to find a solution possibly better than what you can come up with manually. | 18:08 |
ZirconiumX | True, but it's a very hacky way of doing it | 18:09 |
tnt | Maybe yosys has a 74 series mapping library natively ? | 18:09 |
ZirconiumX | That's a question; how would you write one? | 18:14 |
tnt | no clue | 18:15 |
*** rohitksingh has quit IRC | 18:55 | |
*** rohitksingh has joined #yosys | 19:00 | |
ZipCPU | ZirconiumX: Check out the ABC pass. synch + abc can be used to map a design to a variety of simpler logic circuits, such as you might use with 74-series logic. It's not specific to it, but I think it should work | 19:11 |
ZipCPU | "But why?" My son came home from college a semester ago with a requirement to design a particular 7-seg display circuit from straight logic gates. It's a whole lot easier to design and test in Verilog. Why no use Verilog, formally verify it, and then map it to gates using Yosys? | 19:12 |
daveshah | ABC can natively map simple gates, for fancier gates you could write a Liberty file (like https://github.com/YosysHQ/yosys/blob/master/examples/cmos/cmos_cells.lib) to map to | 19:15 |
tpb | Title: yosys/cmos_cells.lib at master · YosysHQ/yosys · GitHub (at github.com) | 19:15 |
ZirconiumX | I want to experiment with designing and building a CPU out of 74-series logic | 19:15 |
daveshah | But neither of these approaches support multiple-output gates, so you'd still be mapping gates rather than chips | 19:15 |
daveshah | i.e. you won't get a minimum-chip solution | 19:15 |
ZirconiumX | And, yeah, formal verification would be a bonus | 19:15 |
ZirconiumX | daveshah: Maybe you could approximate it by tuning the area settings | 19:16 |
daveshah | Yes, you could | 19:16 |
ZirconiumX | For example you can fit two 4-input muxes in a 74153, but only one 8-input mux in a 74151 | 19:17 |
*** rohitksingh has quit IRC | 19:20 | |
ZirconiumX | daveshah: So do I need to make an equivalent cell for AND/ANDNOT/whatever, or do I make my own cells and let ABC figure it out? | 19:32 |
daveshah | ZirconiumX: I believe ABC needs three cells minimum: buffer, NOT and a logic gate (don't think the kind of gate matters much) | 19:34 |
daveshah | Otherwise it won't be happy | 19:34 |
ZirconiumX | Do they need to explicitly be named BUF/NOT/etc? | 19:38 |
daveshah | No, only the function matters | 19:39 |
*** fsasm has joined #yosys | 19:41 | |
ZirconiumX | PicoRV32 apparently synthesizes to 398 7400 gates (so 99 ICs), and 93 7404 gates (so 16 ICs) | 19:49 |
daveshah | That seems very low | 19:50 |
daveshah | Maybe that isn't mapping the memory for some reason | 19:50 |
daveshah | *register file | 19:50 |
_vince | any comments on the chip stats? what's the most common chip in that circuit? | 19:50 |
ZirconiumX | Since it only currently understands the 7400, 7404 and 74367, don't expect miracles | 19:51 |
daveshah | The register file should need at least 1024 bits of state, so something must be going wrong | 19:51 |
_vince | hand optimizing 74s is fun ZipCPU probably why they are making him do it | 19:51 |
_vince | i had those kinds of exercises in high school electronics | 19:52 |
_vince | definately a crude 7segment clock was a topic but with a lot of help - we didnt have to design everything | 19:52 |
_vince | or was it that there was a 7s driver | 19:52 |
_vince | with BCD input or something | 19:52 |
ZirconiumX | Yeah, abc does not like multi-output gates | 19:55 |
ZirconiumX | I got an assertion failure in Yosys | 19:55 |
ZirconiumX | (why do I keep breaking this poor, poor program?) | 19:55 |
ZirconiumX | daveshah: `hierarchy` appears to be pruning picorv32_regs? | 19:57 |
*** emeb_mac has joined #yosys | 19:59 | |
daveshah | I think picorv32_regs is an example of an external register file, picorv32 will use a built in one by default (set by a macro) | 19:59 |
daveshah | So I doubt that is the problem | 19:59 |
daveshah | You probably want `hierarchy -top picorv32; flatten` | 19:59 |
ZirconiumX | Okay, that seems more reasonable | 20:00 |
ZirconiumX | 3,722 7400 ICs, 579 7404 ICs, 6 74367 ICs | 20:02 |
daveshah | I think you'll also need to map DFFs seperately - see `dfflibmap`, `abc` in this context will only map combinational logic | 20:03 |
daveshah | That sounds about right | 20:03 |
ZirconiumX | So presumably for DFF I need to include D flip-flops? | 20:05 |
daveshah | Yes, and `dfflibmap` will map them seperately | 20:05 |
ZirconiumX | Does it expect each flop to have its own clock? | 20:06 |
daveshah | Yes - even though this isn't actually true for FPGA flows, usually this would be resolved in placement down the chain | 20:06 |
ZirconiumX | Gonna be fun finding an equivalent chip then | 20:06 |
daveshah | However, if there is only one clock in the design (as is the case with picorv32) then all flops will use that clock | 20:07 |
daveshah | Yosys won't create clocks out of nowhere | 20:07 |
ZirconiumX | There's the '574, but that only have one clock for 8 bits | 20:07 |
daveshah | That will be fine | 20:07 |
daveshah | I struggle to think of a design that has one clock domain for fewer than 8 bits... | 20:08 |
*** fsasm_ has joined #yosys | 20:12 | |
*** fsasm has quit IRC | 20:14 | |
ZirconiumX | So after adding a '574, dfflibmap is still complaining about unmapped cells | 20:16 |
ZirconiumX | DFFSR, which I think means a set-reset flip-flop? | 20:17 |
ZirconiumX | And also things like $_DFF_NN0_ | 20:17 |
ZirconiumX | daveshah: ^ | 20:17 |
daveshah | Is this with picorv32? These would be DFFs with async set/resets | 20:18 |
daveshah | Which I didn't think picorv32 had | 20:18 |
ZirconiumX | Yes, it is | 20:18 |
ZirconiumX | https://pastebin.com/R9K1eK35 | 20:19 |
tpb | Title: 5. Executing DFFLIBMAP pass (mapping DFF cells to sequential cells from liberty - Pastebin.com (at pastebin.com) | 20:19 |
daveshah | Ah it's only saying it didn't find these cell types in the library | 20:19 |
daveshah | But in this case it shouldn't need to map any of them | 20:19 |
daveshah | You can check by running `stat` after `dfflibmap` | 20:20 |
daveshah | This will show if there are any of these DFF types left unmapped | 20:20 |
ZirconiumX | https://pastebin.com/Dh3Bw4FX | 20:20 |
tpb | Title: 7. Printing statistics. === picorv32 === Number of wires: - Pastebin.com (at pastebin.com) | 20:20 |
daveshah | Looks good, looks like it mapped all the DFFs | 20:22 |
ZirconiumX | There is something quite amusing about this; using Yosys to design 1970's era logic | 20:25 |
*** voxadam has quit IRC | 20:47 | |
*** cr1901_modern has quit IRC | 20:48 | |
*** voxadam has joined #yosys | 20:48 | |
ZirconiumX | https://pastebin.com/Nc5ibWdS | 21:00 |
tpb | Title: 7. Printing statistics. === picorv32 === Number of wires: - Pastebin.com (at pastebin.com) | 21:01 |
ZirconiumX | 7,583 cells | 21:01 |
*** cr1901_modern has joined #yosys | 21:07 | |
ZirconiumX | I can synthesize VecRiscV too | 21:11 |
*** AlexDaniel has quit IRC | 21:11 | |
ZirconiumX | *VexRiscV | 21:11 |
*** AlexDaniel has joined #yosys | 21:11 | |
ZirconiumX | ZipCPU: So it seems like formally verifying a CPU made out of 7400 logic might actually be possible | 21:19 |
ZirconiumX | Although the "single output pin" problem is fairly crippling | 21:19 |
ZirconiumX | Also dfflibmap does not like the idea of output-enable bits | 21:21 |
ZipCPU | ;) | 21:39 |
*** fsasm_ has quit IRC | 21:55 | |
*** dys has joined #yosys | 22:11 | |
*** Jybz has quit IRC | 22:13 | |
*** vidbina has joined #yosys | 23:12 |
Generated by irclog2html.py 2.13.1 by Marius Gedminas - find it at mg.pov.lt!