whitequark[m] changed the topic of #nmigen to: nMigen hardware description language · code https://github.com/nmigen · logs https://freenode.irclog.whitequark.org/nmigen
lkcl has quit [Ping timeout: 240 seconds]
FFY00_ has joined #nmigen
<_whitenotifier-5> [YoWASP/nextpnr] whitequark pushed 1 commit to develop [+0/-0/±1] https://git.io/JYaou
<_whitenotifier-5> [YoWASP/nextpnr] whitequark 1c88e19 - Update dependencies.
lkcl has joined #nmigen
Lord_Nightmare has quit [Quit: ZNC - http://znc.in]
Lord_Nightmare has joined #nmigen
Degi_ has joined #nmigen
Degi has quit [Ping timeout: 260 seconds]
Degi_ is now known as Degi
Bertl_oO is now known as Bertl_zZ
cr1901_modern1 has joined #nmigen
cr1901_modern has quit [Ping timeout: 258 seconds]
<d1b2> <4o> @DX-MON @lethalbit what is the difference b/n your approach to asics and nmigen -> verilog -> yosys -> nextpnr -> whatever?
aquijoule_ has joined #nmigen
richbridger has quit [Ping timeout: 240 seconds]
revolve has quit [Ping timeout: 240 seconds]
revolve has joined #nmigen
<_whitenotifier-5> [nmigen] github-4o commented on issue #585: [RFC] expose `strip-internal-attrs` option to cli-based interface - https://git.io/JYab8
<_whitenotifier-5> [nmigen] github-4o closed issue #585: [RFC] expose `strip-internal-attrs` option to cli-based interface - https://git.io/JtRX4
FFY00_ has quit [Remote host closed the connection]
FFY00_ has joined #nmigen
TD-Linux has quit [Ping timeout: 258 seconds]
TD-Linux has joined #nmigen
jeanthom has joined #nmigen
emeb_mac has quit [Quit: Leaving.]
jeanthom has quit [Ping timeout: 252 seconds]
FFY00_ has quit [Remote host closed the connection]
FFY00_ has joined #nmigen
slan has quit [Quit: leaving]
slan has joined #nmigen
Bertl_zZ is now known as Bertl
bvernoux has quit [Read error: Connection reset by peer]
chipmuenk has joined #nmigen
revolve has quit [Read error: Connection reset by peer]
revolve has joined #nmigen
pftbest has quit [Remote host closed the connection]
samlittlewood has quit [Quit: samlittlewood]
tucanae47_ has joined #nmigen
pftbest has joined #nmigen
pftbest has quit [Ping timeout: 268 seconds]
chipmuenk has quit [Remote host closed the connection]
pftbest has joined #nmigen
pftbest has quit [Remote host closed the connection]
pftbest has joined #nmigen
pftbest has quit [Remote host closed the connection]
pftbest has joined #nmigen
pftbest has quit [Remote host closed the connection]
pftbest has joined #nmigen
pftbest has quit [Remote host closed the connection]
pftbest has joined #nmigen
pftbest has quit [Remote host closed the connection]
pftbest has joined #nmigen
pftbest has quit [Remote host closed the connection]
pftbest has joined #nmigen
Bertl is now known as Bertl_oO
pftbest has quit [Remote host closed the connection]
pftbest has joined #nmigen
pftbest has quit [Remote host closed the connection]
pftbest has joined #nmigen
pftbest has quit [Remote host closed the connection]
pftbest has joined #nmigen
pftbest has quit [Remote host closed the connection]
pftbest has joined #nmigen
samlittlewood has joined #nmigen
pftbest has quit [Remote host closed the connection]
pftbest has joined #nmigen
FFY00_ has quit [Quit: dd if=/dev/urandom of=/dev/sda]
FFY00_ has joined #nmigen
roamingr1 has quit [Ping timeout: 265 seconds]
Raito_Bezarius has quit [Ping timeout: 258 seconds]
pftbest_ has joined #nmigen
emeb has joined #nmigen
Raito_Bezarius has joined #nmigen
pftbest has quit [Ping timeout: 250 seconds]
bvernoux has joined #nmigen
chipmuenk has joined #nmigen
pftbest_ has quit [Remote host closed the connection]
peeps[zen] has joined #nmigen
peepsalot has quit [Ping timeout: 268 seconds]
revolve has quit [Read error: Connection reset by peer]
revolve has joined #nmigen
bvernoux has quit [Quit: Leaving]
revolve_ has joined #nmigen
revolve has quit [Read error: Connection reset by peer]
pftbest has joined #nmigen
pftbest has quit [Ping timeout: 240 seconds]
pftbest has joined #nmigen
<lkcl> dlb2: 4o: pin-pads have to be declared differently, you have standard IOpad cells with an "i/o/oe" triplet, and you also may have nets for enabling higher current and pullup/pulldown resistors (on each IOpad)
<lkcl> you don't get a JTAG port, SRAM, PLL, or a DSP "for free", you have to do all those yourself
<lkcl> such as this for JTAG TAP: https://gitlab.com/Chips4Makers/c4m-jtag/
<d1b2> <4o> didnt ask for that
<lkcl> and the tools have to be concerned about timing analysis, buffers, line-drivers / repeaters etc
<lkcl> "<4o> @DX-MON @lethalbit what is the difference b/n your approach to asics and nmigen -> verilog -> yosys -> nextpnr -> whatever?"
<lkcl> 4o: so what did you mean?
<lkcl> i assume you are asking "what is the difference between developing for an ASIC and developing for an FPGA which goes via nextpnr"?
<lkcl> is that correct?
<lkcl> happy to answer if you can clarify, because we're in the middle of doing the LibreSOC ls180 ASIC, with nmigen
<lkcl> and started with an ECP5
<d1b2> <4o> seems like i did. but i was wondering what are advantages:) and i'm responsible for several asics that's why i'm wondering if should take a closer look at proposed workflow
<lkcl> oh you're asking what it's like for using *nmigen* for ASICs?
<lkcl> (nextpnr5 is purely for FPGAs btw, hence the confusion / deducing you were asking about the difference between ASIC and FPGA development)
<d1b2> <4o> > openlane support for nmigen using platform
<lkcl> we're using coriolis2 not openlane
<lkcl> it's under heeeavvy development
<lkcl> tight deadline, apr 12
<d1b2> <4o> that's a quote from yesterday by DX-MON
<lkcl> basically once you have run "output to verilog please" from nmigen, it's .. err... well, exactly the same as if you'd written in verilog
<lkcl> that's really all there is to it :)
<lethalbit> Hi, sorry, I just checked IRC,
<lkcl> details: nmigen output is, well, i can't say for sure if it's impossible to output unsynthesiseable designs, but it's a lot harder
<lkcl> initialisation (reset values) are automatically inferred (as zero unless otherwise specified)
<lkcl> you have to work quite hard to screw up, basically
<lethalbit> So the way I implemented it is as an nmigen platform, so rather than generating the verilog and stuffing it into openlane this generates the openlane configuration based on the platform configuration and then invokes the tools automatically for you
<lethalbit> so it would be something like
<lethalbit> platform = sky130_fd_sc_hd()
<lethalbit> then you pass your design to platform.build()
<lethalbit> and *poof*
<lkcl> lethalbit: whereabouts do you have a repo online?
<lethalbit> it's a local fork atm
<d1b2> <4o> so it's a fast-forward to openlate il?
<lethalbit> because it's still janky
<lkcl> in a few months time... that's ok, nobody cares: it still saves everyone else a hell of a lot of time
<lkcl> in a few months time we'll be looking at an openlane build
<lethalbit> yeah
<lkcl> and it would be good not to have to duplicate that effort
<d1b2> <4o> do you automate any part of openlane workflow as well?
<lethalbit> once I get the ability to synth sync designs I'll think about a PR
<lethalbit> because that's broken atm
<lkcl> 4o: the entire process in coriolis2 is automated.
<lethalbit> 4o, it does it all for you as long as you have openlane setup
<lkcl> full build, P&R, IOpads placement, antenna, buffers, everything
<lethalbit> uuuh, I can post a small example, one sec
<d1b2> <4o> like python3 top.py generate -t gds:)
<lkcl> lethalbit: that would be cool
<lkcl> 4o: not quite that automated, we run coriolis2 in a chroot :)
<lkcl> makes it reproducible... at least that was the theory sigh (no git tags yet)
<d1b2> <4o> ok, thanks. looking forward to pr
* lkcl currently working with Chips4Makers to extract the post-P&R as VHDL and re-run the netlist under cocotb
<lkcl> so after coriolis2 has done the P&R, there's a tool to extract the gate-level design (after repeater-buffers have been added etc.) as VHDL
<lethalbit> So that's a super simple examples that works at the moment
<lkcl> we're putting that *back* into cocotb, attaching to the exact same JTAG port *before* P&R, and seeing if the results are the same
<lkcl> lethalbit: nice
<d1b2> <4o> @lkcl is sdf dumped as well?
<lkcl> 4o: sdf?
<lkcl> if by "is a simulation wave trace outputted", the answer's "yes", if you ask ghdl/cocotb to do that
<d1b2> <4o> delays file
<lkcl> which is one of the key reasons why we're doing it - to be able to "inspect" the actual gate-level designs
<lkcl> delays file - i don't think so
<lkcl> i'm not the developer of coriolis2, i'm a user
<lkcl> Sorbonne University has access to proprietary tools, they did a run through those to verify it :)
<lkcl> we're only targetting 50mhz, initial test ASIC. it *might* go up to 150mhz if we are lucky
<lkcl> a "delays" file, is that telling you where buffers have been inserted?
<d1b2> <4o> also routing delays and stuff
<lkcl> yeah no coriolis2 doesn't have that at the moment, it's on the TODO list
<d1b2> <4o> ok
<lkcl> all of open ASIC tools are... well... 20+ years behind. sigh
<lkcl> 4o: ^
<lkcl> lethalbit, ^
moony has quit [Ping timeout: 240 seconds]
moony has joined #nmigen
<Chips4Makers> 4o: Coriolis flow does not currently do parasitic extraction and sdf file generation. That is for after the current tape-out.
chipmuenk has quit [Quit: chipmuenk]
<sensille> generators again ... i want to build a helper function for a simulation (feeding some data). how can i call it from within a sync process?
<cesar[m]1> yield from helper(args)
<sensille> thanks
roamingr1 has joined #nmigen
bvernoux has joined #nmigen
jeanthom has joined #nmigen
emeb_mac has joined #nmigen
moony has quit [Ping timeout: 258 seconds]
moony has joined #nmigen
<DX-MON> it'd be interesting to hear what whitequark thinks on lethalbit's contribution and ideas..
revolve_ has quit [Read error: Connection reset by peer]
revolve has joined #nmigen
jeanthom has quit [Ping timeout: 252 seconds]
bvernoux has quit [Quit: Leaving]
emeb has left #nmigen [#nmigen]
lf has quit [Ping timeout: 245 seconds]
lf has joined #nmigen