ChanServ changed the topic of #nmigen to: nMigen hardware description language · code at https://github.com/nmigen · logs at https://freenode.irclog.whitequark.org/nmigen · IRC meetings each Monday at 1800 UTC · next meeting August 17th
emeb has quit [Quit: Leaving.]
Degi has quit [Ping timeout: 256 seconds]
Degi has joined #nmigen
emeb_mac has quit [Ping timeout: 265 seconds]
emeb_mac has joined #nmigen
emeb_mac has quit [Ping timeout: 246 seconds]
emeb_mac has joined #nmigen
jaseg has quit [Ping timeout: 240 seconds]
jaseg has joined #nmigen
electronic_eel has quit [Ping timeout: 256 seconds]
electronic_eel has joined #nmigen
PyroPeter has quit [Ping timeout: 272 seconds]
PyroPeter has joined #nmigen
<tannewt> any tips for debugging why an Instance would be missing from a verilog output? I can see sibling modules' output there
<tannewt> nvm, I think I found it
<tannewt> heh, of course
<d1b2> <Darius> good ole rubber duck debugging.. 🙂
<tannewt> I keep assigning to submodules directly
<tannewt> I'm trying to use the internal clock on the mach xo
<tannewt> any idea what BB, VHI and VLO instances would be generated by diamond?
emeb_mac has quit [Quit: Leaving.]
XgF has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
hitomi2507 has joined #nmigen
<tannewt> here is the example I'm working on: https://github.com/systemonachip/lattice_machxo/blob/master/examples/basic.py trying to get the EFB hooked up so the config i2c is active when user code is running
<awygle> https://github.com/nmigen/nmigen/blob/master/nmigen/vendor/lattice_ice40.py#L246 or this, i'm really not up on icecube configs
<awygle> doesn't look like the XO2s have the internal oscillator yet but that should be approx. the pattern
<trabucayre> awygle: maybe you need something like https://pastebin.com/MQB9MF48
<d1b2> <tannewt> 👍 thanks will look tomorrow
Asu has joined #nmigen
Asuu has joined #nmigen
Asu has quit [Ping timeout: 265 seconds]
Asu has joined #nmigen
Asuu has quit [Ping timeout: 246 seconds]
Asuu has joined #nmigen
Asu has quit [Ping timeout: 256 seconds]
_whitelogger has joined #nmigen
<zignig> working HEX dump of it's own brain.
zignig has quit [Quit: Lost terminal]
Lord_Nightmare has quit [Ping timeout: 246 seconds]
phire has quit [Quit: ZNC - http://znc.in]
phire has joined #nmigen
Asuu has quit [Remote host closed the connection]
Asu has joined #nmigen
<moony> there's a way to use senums as signal values right? Also, how do records work? help(Record) isn't the most helpful
Lord_Nightmare has joined #nmigen
<lkcl_> yes - just create a class that derives from Enum
<lkcl_> then do x = Signal(TheEnumClass)
<lkcl_> example (work-in-progress class, just giving you a cf to _something_ that uses that trick)
<lkcl_> https://git.libre-soc.org/?p=soc.git;a=blob;f=src/soc/experiment/mmu.py;h=6af299aab9149273c0e029232a644d9031e55871;hb=HEAD#l54
<lkcl_> then you can do things like comb += sig.eq(State.ONE_OF_THE_ENUM_VALUES)
<lkcl_> (line 135)
Asuu has joined #nmigen
<moony> lkcl_: You have an example of record usage? That's probably easier for me to figure out than an explanation.
<lkcl_> well... yes and no. we generally use a home-grown class (from nmutil) called RecordObject
<lkcl_> however there's code that we're using from minerva that uses Record... 1sec...
<moony> is RecordObject nicer? I might borrow it if it is. (with the appropriate license attached, obv)
<lkcl_> i pm'd you btw
<lkcl_> well you can simply git clone nmutil and use it directly
Asu has quit [Ping timeout: 264 seconds]
<lkcl_> this will cause you a lot less hassle in (N > 6) months when Record (eventually) becomes deprecated
<lkcl_> https://git.libre-soc.org/?p=soc.git;a=blob;f=src/soc/minerva/units/loadstore.py;hb=HEAD
<lkcl_> line 16 creates a wishbone bus "Record" based on calling a function that *constructs* the layout
<moony> oh, is it being replaced with a RecordObject-like?
<lkcl_> and that function is here: https://git.libre-soc.org/?p=soc.git;a=blob;f=src/soc/minerva/wishbone.py;hb=HEAD#l17
<lkcl_> no, it's being deprecated with something that's Record-like, based i think on a new class called UserValue which is under development
<moony> something I often see with external devices is a bus that can be driven from either end, but that doesn't seem synthesizable, I guess those are never used internally?
<lkcl_> mmmm... driven from both ends... mmm... ok it's "doable" by using a "shared write" system, as if it's a global bus
<lkcl_> 1 sec brb
<lkcl_> back
<whitequark> there are no internal tristates in FPGAs anymore
<moony> makes sense, really, it's only really useful externally
<lkcl_> so you _have_ to do a write-bus and a read-bus?
<whitequark> they used to exist actually
<whitequark> there are some FPGAs (and CPLDs) where you can even make an internal short
<lkcl_> that doesn't sound good :)
<whitequark> nowadays I believe there are only unidirectional buffers used mostly because that means your fanout isn't limited by capacitance
<moony> it'd save some space to be able to use a tri-state bus, but it has it's risks and issues so I see why it's not a big thing
<DaKnig> so have to double the number of wires going around the board
<DaKnig> ?
<moony> DaKnig: IO can be tri-state
<moony> as it's p much manditory to support that
<moony> not doing so would render the FPGA incompatible with something as basic as SRAM
<DaKnig> I mean inside the FPGA
<DaKnig> from what I see one of the main factors in delay is wiring delay. more wires means it'd be harder for the p&^r stage, more silicon and more delay, no?
<whitequark> DaKnig: it's not as straightforward
<whitequark> remember that if you have internal tristates, your routing is done with pass transistors, and each time you turn one of those on, capacitance grows
<whitequark> more capacitance means more delay, too
<whitequark> also, more wires usually makes p&r's job easier
<DaKnig> ah! I didnt think about the pass transistors.
<whitequark> since it means that a less optimal routing solution can still actually fit into the device
<whitequark> i remember daveshah telling me that the less confident a company is in their tooling, the more wires their FPGAs have
<whitequark> eg ice40 has a lot more wires than 7-series, per logic element
<DaKnig> but arent FPGAs designed to have small blocks of logic with *some* interconnect with other blocks (and a few layers of that down)? so you are limited by the interconnect allowed by each block?
<Sarayan> well, altera/intel must have been very frightened of their tooling :-)
<Lofty> Sarayan: you'll hear no complaints from me :P
<Sarayan> even the blocks of logic are in large part routing
emeb has joined #nmigen
FFY00 has quit [Remote host closed the connection]
FFY00 has joined #nmigen
hitomi2507 has quit [Quit: Nettalk6 - www.ntalk.de]
<_whitenotifier-3> [nmigen/nmigen-soc] jfng pushed 1 commit to master [+0/-0/±3] https://git.io/JJh6L
<_whitenotifier-3> [nmigen/nmigen-soc] jfng ecfad4d - Clarify documentation for alignment parameters to mention it is log2.
<_whitenotifier-3> [nmigen-soc] jfng closed issue #6: Clarify documentation for alignment parameters to mention that it is log2 - https://git.io/JvZvM
<whitequark> Sarayan: didn't they start with vpr?
<Sarayan> vpr?
cr1901_modern has quit [Ping timeout: 256 seconds]
cr1901_modern has joined #nmigen
cr1901_modern has quit [Ping timeout: 240 seconds]
cr1901_modern has joined #nmigen
cr1901_modern has quit [Client Quit]
cr1901_modern has joined #nmigen
cr1901_modern has quit [Ping timeout: 260 seconds]
cr1901_modern has joined #nmigen
cr1901_modern has quit [Quit: Leaving.]
<Lofty> It's still in Quartus
cr1901_modern has joined #nmigen
<DaKnig> can somebody give an example of simple instantiation of the PLL blocks in a 7-series device in nmigen?
<DaKnig> I want to simply generate 2 frequencies from one given frequency, that would be phase locked and all that. I hear that I might be using primitives wrong, I'd like to see somebody else's example for that.
cr1901_modern has quit [Ping timeout: 240 seconds]
cr1901_modern has joined #nmigen
cr1901_modern has quit [Quit: Leaving.]
cr1901_modern has joined #nmigen
cr1901_modern has quit [Client Quit]
cr1901_modern has joined #nmigen
<DaKnig> should work the same right?
<jfng> yep
cr1901_modern has quit [Quit: Leaving.]
cr1901_modern has joined #nmigen
cr1901_modern1 has joined #nmigen
cr1901_modern has quit [Ping timeout: 256 seconds]
cr1901_modern1 has quit [Quit: Leaving.]
cr1901_modern has joined #nmigen
cr1901_modern1 has joined #nmigen
cr1901_modern2 has joined #nmigen
cr1901_modern has quit [Ping timeout: 240 seconds]
cr1901_modern1 has quit [Ping timeout: 240 seconds]
cr1901_modern2 has quit [Client Quit]
emeb_mac has joined #nmigen
cr1901_modern has joined #nmigen
_whitelogger has joined #nmigen
emeb_mac has quit [Ping timeout: 265 seconds]
emeb_mac has joined #nmigen
cr1901_modern1 has joined #nmigen
cr1901_modern has quit [Ping timeout: 240 seconds]
cr1901_modern1 has quit [Client Quit]
cr1901_modern has joined #nmigen
lkcl_ has quit [Ping timeout: 256 seconds]
Asuu has quit [Quit: Konversation terminated!]
lkcl has joined #nmigen
tannewt has quit [Ping timeout: 244 seconds]
tannewt has joined #nmigen
lkcl has quit [Ping timeout: 265 seconds]
esden has quit [Ping timeout: 260 seconds]