Saturday, 2021-07-17

*** tpb <[email protected]> has joined #yosys00:00
*** adjtm <[email protected]> has quit IRC (Read error: Connection reset by peer)00:17
*** GenTooMan <GenTooMan!~cyberman@2601:547:437f:e5c6:21f:5bff:fefe:a883> has quit IRC (Ping timeout: 255 seconds)01:15
*** GenTooMan <GenTooMan!~cyberman@2601:547:437f:e5c6:21f:5bff:fefe:a883> has joined #yosys01:16
*** adjtm <[email protected]> has joined #yosys01:27
*** peeps[zen] <peeps[zen]!~peepsalot@openscad/peepsalot> has quit IRC (Quit: Connection reset by peep)03:18
*** peeps <peeps!~peepsalot@openscad/peepsalot> has joined #yosys03:18
*** Curve25519ChaCha <Curve25519ChaCha!~Username@user/curve25519chacha> has quit IRC (Ping timeout: 244 seconds)05:50
*** Curve25519ChaCha <Curve25519ChaCha!~Username@user/curve25519chacha> has joined #yosys05:52
*** GenTooMan <GenTooMan!~cyberman@2601:547:437f:e5c6:21f:5bff:fefe:a883> has quit IRC (Ping timeout: 255 seconds)06:47
*** GenTooMan <GenTooMan!~cyberman@2601:547:437f:e5c6:21f:5bff:fefe:a883> has joined #yosys06:50
*** Armleo <[email protected]> has joined #yosys07:23
*** Curve25519ChaCha <Curve25519ChaCha!~Username@user/curve25519chacha> has quit IRC (Remote host closed the connection)07:34
*** Curve25519ChaCha <Curve25519ChaCha!~Username@user/curve25519chacha> has joined #yosys07:34
*** Armleo <[email protected]> has quit IRC (Quit: Client closed)08:01
*** travankor <travankor!travankor@user/travankor> has joined #yosys11:48
*** travankor <travankor!travankor@user/travankor> has left #yosys11:50
*** killjoy <killjoy!~nameless@user/killjoy> has quit IRC (Ping timeout: 268 seconds)13:59
*** Armleo <[email protected]> has joined #yosys14:44
*** kristianpaul <kristianpaul!~paul@user/kristianpaul> has quit IRC (Ping timeout: 268 seconds)15:15
*** kristianpaul <kristianpaul!~paul@user/kristianpaul> has joined #yosys15:17
*** mewt <[email protected]> has quit IRC (Ping timeout: 268 seconds)15:17
*** mewt <[email protected]> has joined #yosys15:18
*** killjoy <[email protected]> has joined #yosys15:52
*** jonpry <[email protected]> has joined #yosys16:13
jonpryWhy would yosys/ABC give drastically different static timing results from OpenSTA? https://pastebin.com/ChXHa6r916:13
tpbTitle: Yosys:ABC: WireLoad = "none" Gates = 31998 ( 38.7 %) Cap = 8.6 ff ( 12. - Pastebin.com (at pastebin.com)16:13
tntbecause you're not looking at the same path at all ?16:17
tntFirst one looks like a purely comb path across the design, the second looks like an internal FF -> FF path.16:18
jonpryIt is a critical path report from each tool16:20
jonpryAs I understand it, ABC stime removes the FF from the ends of path16:20
tntAre you sure you even loaded the same process corners libraries ?16:21
jonpryYes16:22
tntAnd where is that OpenSTA from ? Is it post-synth ?  Or post-pnr ?   And setup with the same load and drive caracteristics ?16:23
jonpryIt's post-synth. Right after yosys does the stime, i write out and run it through opensta16:25
jonpryI have not setup any wire load in OpenSTA. Maybe it has some default?16:25
killjoyABC does not look like a timing analysis tool, so I would tend to believe opensta, who's output looks more like a timing analysis tool should.16:30
killjoyAnd if wireload is zero it is probably zero, but read the manual.16:31
jonpryI cannot make sense of the OpenSTA output.   0.00    0.00 ^ _108437_/CLK (sky130_fd_sc_hd__dfrtp_1)16:32
jonpry   5.82    5.82 ^ _108437_/Q (sky130_fd_sc_hd__dfrtp_1)16:32
jonprySays Clk->Q on the DFF is 5.82ns. How can that be?16:32
*** Guest78 <[email protected]> has joined #yosys16:32
killjoyOk, so you need to read that report and understand it, from top to bottom.16:33
*** Guest78 <[email protected]> has quit IRC (Client Quit)16:34
killjoyYour start is the rising edge of the clk, clock network delay is ideal so you have no load, and the times are probably in picoseconds through the path.16:34
tntNot really sure what ^ and v mean but the rest is pretty clear.16:35
tntPRetty sure the times are in ns.16:36
killjoyI also see no interconnect delays, just gate delays, so again, wireload is zero. AKA: you are not running an annotated timing sim.16:36
jonpryThe liberty file says time units are ns. And I know from experience that the approximate speed of sky130 logic is in the 100ps range16:36
killjoyns is a long time though.16:36
tntheh, this is not a state-of-the art process ...16:37
killjoytnt: If it takes 5ns to charge a pin on a gate, that's forever.16:37
tntyeah16:38
killjoyOk then. Last time I did STA signoff I was working at 28nm process node, so could be.16:39
tntps is just not believable.16:39
killjoyOk if you say so. It's been a while since I did STA signoff so maybe I'm just rusty.16:40
killjoytnt: The ^ and v are likely rising and falling edge indicators.16:40
killjoySo clk rises, Q rises, X rises, Y falls, etc.16:41
tntOh right yeah, asymettric delays, good call.16:41
killjoyCell libraries have different characteristics for rise times and fall times.16:41
killjoyGates are not perfectly symmetric.16:42
killjoyWell, IME anyway.16:42
killjoyThis path is basically saying "it's way long dude, put in some pipeline stages or make it shorter."16:43
tntSome things are a bit surprising to me in that report : (1) you have clkbuf and clkxxx cells in the path ... those are usually special for the clock tree and not meant for general purpose logic and shouldn't be inferred.  (2) some cells seem to take a _very_ long time.  (3) they are all the _1 variant like is the upsizing process didn't occur to compensate the gate size with the net fanout.16:43
killjoyI'm used to looking at primetime reports. There should be a number in this report that indicates the fanout on a pin.16:45
killjoyBut I don't see it.16:45
killjoyOh god, googling this stuff brings back so many memories...16:47
jonpryI agree with those observations. The yosys synthesis script can probably me modified to prevent it from using clock buffers. But it's still not clear to me why the Clk->Q thing happens. Even if I run the OpenSTA included examples. They are all like 2-3 gate circuits and for some examples it shows this huge CLK->Q and for other examples it shows as .2ns16:47
killjoyYou don't worry about that clk->Q.16:49
killjoyYou have to clock your flop for it to work, man.16:49
killjoyElse, nothing happens.16:49
killjoyThis is from Parallax?16:51
jonpryThe flop has maximum operating speed > 200mhz, in fact it can go ghz16:54
killjoyGood for you?16:55
killjoyIt still has a propagation delay of 5.82ns apparently.16:55
jonpryBut it doesn't16:55
killjoyWell then your configuration is wrong for your synthesis.16:56
killjoyAKA: you used the wrong flop.16:56
killjoyBecause _THAT_ flop has a 5.82ns propagation delay from clk->Q.16:56
tntjonpry: what process corner did you use ?16:57
killjoyAnd that's a good question.16:57
jonprysky130 typical16:57
killjoyIt's also the smallest drive flop (probably) in the library.16:57
tnttt_025C_1v80 ?16:57
killjoyIf I'm interpreting the nomenclature correctly.16:58
killjoyHoly crap this is a big node.16:58
tntyes, _1 is the weakest output drive.16:58
tntyeah, it's mixed 130/180 nm.16:58
jonprysky130_fd_sc_hd__ff_n40C_1v7616:58
killjoy1v8 is huge to me.16:58
tntI ask you what process corner you tell me "typical", then you pull out a "fast/fast" one ...16:59
jonpryWell, I got it wrong. the fast/fast is what the pastebin was generated on17:00
killjoytnt: Is this a free library or something?17:00
killjoynvm found it.17:00
tntyeah, it's the skywater 130nm process that's freely available PDK17:00
tnt(hence why it's "old")17:01
killjoyI need to change my thinking, don't mind me.17:01
killjoyThere's lots of old processes that get wide use, I'm just not used to them.17:01
killjoyWhen I was in this sphere, we were chasing the bleeding edge of what TSMC had to offer because I worked for PMC-Sierra back when it existed.17:02
killjoyIt's been a while though so I should just be more accepting of the things I don't know.17:02
tntBut still, in that liberty file I don't see anything close to 5 ns clk->q.17:03
jonpryMaybe it is huge fanout. Does yosys know how to make tree's of buffers to drive large loads?17:04
jonpryFunny thing is that this design runs 100mhz in fpga17:04
tntas I said, I'm already surprised all your gates are _117:05
tntbuffer / upsizing / ... are additional steps.17:06
tntAFAIR the openlane custom ABC script does them.17:06
killjoyYeah, we're pretty sure your synthesis script is screwy.17:07
killjoyIt looks like it did a simple first-pass synthesis and nothing else frankly.17:08
killjoyAs far as the ABC output, I wouldn't even look at that really.17:09
*** AdamHorden <[email protected]> has joined #yosys17:25
*** AdamHorden <[email protected]> has quit IRC (Client Quit)17:26
*** AdamHorden <[email protected]> has joined #yosys17:27
*** ZipCPU_ <ZipCPU_!~ZipCPU@2601:5cd:c280:96b0:1ac0:4dff:fe02:d4f0> has joined #yosys18:55
*** ZipCPU <ZipCPU!~ZipCPU@2601:5cd:c280:96b0:1ac0:4dff:fe02:d4f0> has quit IRC (Ping timeout: 272 seconds)18:55
*** ZipCPU_ is now known as ZipCPU18:55
*** AdamHorden <[email protected]> has quit IRC (Quit: ZNC - https://znc.in)19:34
*** AdamHorden <[email protected]> has joined #yosys19:38
*** Armleo <[email protected]> has quit IRC (Quit: Client closed)20:19
*** Lord_Nightmare <Lord_Nightmare!Lord_Night@user/lord-nightmare/x-3657113> has quit IRC (Ping timeout: 245 seconds)21:08
*** nak <nak!~nak@yosys/nak> has joined #yosys21:11
*** Lord_Nightmare <Lord_Nightmare!Lord_Night@user/lord-nightmare/x-3657113> has joined #yosys21:28
*** AdamHorden <[email protected]> has quit IRC (Quit: ZNC - https://znc.in)22:48
*** AdamHorden <[email protected]> has joined #yosys22:49

Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!