ChanServ changed the topic of #nmigen to: nMigen hardware description language · code at · logs at · IRC meetings each Monday at 1800 UTC · next meeting November 9th
lkcl has joined #nmigen
<_whitenotifier-f> [YoWASP/nextpnr] whitequark pushed 1 commit to develop [+0/-0/±1]
<_whitenotifier-f> [YoWASP/nextpnr] whitequark 2076792 - Update dependencies.
<d1b2> <TiltMeSenpai> has anyone tried to use config flash on an ecp5 with nmigen
<agg> how do you mean?
<agg> accessed the spi flash from gateware inside nmigen, or written a bitstream to it?
<d1b2> <TiltMeSenpai> the SPIFlashResource requires a clk pin, but you're supposed to access the mclk pin with a usermclk instance
<agg> oh, i guess accessed the spi flash but using the ecp5 primitive to generate the spi clock?
<d1b2> <TiltMeSenpai> which seems like a minor problem
<agg> should be able to just m.submodules += Instance("USRMCLK", i_USRMCLKI=my_clk_signal)
<d1b2> <TiltMeSenpai> I guess I could run a second, entirely user-configurable pin to sck
<d1b2> <TiltMeSenpai> yeah but in the connector on my board file, do I just choose a random pin I'm not using to be clk
<agg> ah, i'm using using nmigen-boards and thus don't have SPIResource and thus don't need to give it a clk pin at all
<agg> so my config flash spi in the board file just doesn't have a clk
<agg> I'm not using*
<d1b2> <TiltMeSenpai> oh lol
<agg> can you just give it the real ball number and then not use it?
<agg> hmm, request() probably wouldn't work in that case
<d1b2> <TiltMeSenpai> yeah that's what I'm saying, a real ball that I'm not using for anything else
<agg> I guess, but you could just not use SPIResource and just write out the resource yourself?
<awygle> i feel like i remember this being asked about before, but i could be wrong
<d1b2> <TiltMeSenpai> I mean I could
<agg> afaik SPIResource doesn't do anything magical once it's made: it's just a shorthand for creating a Resource with some specific subsignal names
<d1b2> <TiltMeSenpai> yeah
<agg> you could try giving it the real sclk ball and see if nmigen complains, but it might work fine if you don't try to actually assign to it
<d1b2> <TiltMeSenpai> nmigen doesn't complain, nextpnr does
<d1b2> <TiltMeSenpai> when you use any signals in a Resource, all the signals for that Resource get thrown into the pcf I think
<d1b2> <TiltMeSenpai> and that confuses nextpnr
<agg> I guess if it ends up in the pcf nextpnr won't like it
<agg> yea
<agg> I'd just write your own resource then, it's like four lines :p
<agg> do you need to pass a resource with a clk signal into some other thing and that's the problem?
<d1b2> <TiltMeSenpai> eh, I have so many unused pins, I'm just going to use one of them
<d1b2> <TiltMeSenpai> I mean, no, not really
<_whitenotifier-f> [YoWASP/yosys] whitequark pushed 1 commit to develop [+0/-0/±1]
<_whitenotifier-f> [YoWASP/yosys] whitequark 1020a2e - Update dependencies.
<d1b2> <TiltMeSenpai> unless someone has a prebuilt spi controller
<agg> out of interest, are you adding a new platform to nmigen-boards or writing a platform for your own hardware?
<d1b2> <TiltMeSenpai> own hardware
<agg> are you importing SPIResource etc from nmigen-boards?
<d1b2> <TiltMeSenpai> I doubt enough of these boards will ever exist to justify upstreaming this
<d1b2> <TiltMeSenpai> yeah
<agg> aah, I see, ok
<d1b2> <TiltMeSenpai> I think I'm mostly doing it for the rgb led resource actually
<agg> maybe when it becomes possible to put instances inside resources you could stick the USRMCLK in there :p
<d1b2> <TiltMeSenpai> lol, once we have enough ECP5 boards to justify doing this, we could create a dict of all the ecp5 packages and a special ECP5 flash resource (we probably shouldn't actually do this)
<awygle> i disagree, we should definitely do that lol. or the last bit, at least.
<vup> agg: @TiltMeSenapi: this should probably be solved / solveable using whatever converges on
<d1b2> <TiltMeSenpai> hmm well I guess the ECP5 mclk isn't exactly the only Resource where a pin needs to be accessed through an Instance, is it
<d1b2> <TiltMeSenpai> I mean generally speaking, aren't serdes(es) a whole thing?
<d1b2> <TiltMeSenpai> what's the plural of serdes
<vup> well serdes are supposed to be done transparently using the `xdr` argument (it makes the platform code create the Instance)
<vup> I guess the question is wether all cases where using an Instance should be covered by the vendor code or wether is should be possible to do it in the board / platform description
<d1b2> <TiltMeSenpai> hmm, that's an idea. I wonder if the other config modes of the ECP5 would mess with that
<agg> vup: ah yea that's the issue i mean
<agg> for clocks perhaps vendor code is ok, like we already have for some boards
<agg> not sure how vendor could would be able to do the spi clock though
<agg> and there are other sort of handy things like the ice40 warmboot maybe
<vup> Well you could have a special name the vendor code recognizes, like the internal oscillator for defaul_clk is done on cyclone v and ice40
Degi has quit [Ping timeout: 264 seconds]
Degi has joined #nmigen
zignig has quit [Ping timeout: 260 seconds]
zignig has joined #nmigen
<lsneff> If I get two read ports from a memory, I should be able to read from two addresses at once, right?
PyroPeter_ has joined #nmigen
PyroPeter has quit [Ping timeout: 256 seconds]
PyroPeter_ is now known as PyroPeter
<d1b2> <OmniTechnoMancer> I believe that is how it should work, I know I have used xilinx block rams in this way in the past but not with nmigen
electronic_eel has quit [Ping timeout: 240 seconds]
electronic_eel has joined #nmigen
lkcl has quit [Ping timeout: 256 seconds]
FFY00 has quit [Remote host closed the connection]
lkcl has joined #nmigen
_whitelogger has joined #nmigen
lkcl has quit [Ping timeout: 272 seconds]
emeb_mac has quit [Quit: Leaving.]
lkcl has joined #nmigen
FFY00 has joined #nmigen
jeanthom has joined #nmigen
jeanthom has quit [Ping timeout: 260 seconds]
chipmuenk has joined #nmigen
jeanthom has joined #nmigen
Asu has joined #nmigen
lambda has quit [Quit: WeeChat 2.9]
lambda has joined #nmigen
Shari2 has joined #nmigen
chipmuenk has quit [Quit: chipmuenk]
<kbeckmann> what's the correct way of adding a clock constraint to a net (on e.g. a PLL output), so it can be included in the generated timing constaints file for the toolchain? for external clocks this seems quite easy by just adding Clock(freq) to the Resource() defining the external clock pin.
daknig2 has joined #nmigen
daknig2 is now known as koop
koop has quit [Remote host closed the connection]
daknig2 has joined #nmigen
daknig2 is now known as ktuji
ktuji has quit [Client Quit]
<kbeckmann> for ECP5 it seems that the parameter FREQUENCY_PIN_CLKOP of the EHXPLLL instance magically gets picked up by nextpnr, however it seems i am not able to do something similar to this with the gowin toolchain, and i need to specify it in the .sdc file (clock constraints file).
<anuejn> platform.add_clock_constraint(signal, frequency) should do that
emeb has joined #nmigen
<kbeckmann> thanks! i got stuck in my thinking where i used the ClockSignal() directly. using a wire in between worked around that
<kbeckmann> i.e. having a separate clkout signal connected to the pll instance, and then doing m.d.comb += ClockDomain(...).eq(clkout)
<vup> yeah not being able to use ClockSignal in add_clock_constraint is a bit unfortunate, I thought there was an issue about that, but now I cant find one
<_whitenotifier-f> [nmigen] rroohhh opened issue #542: Using ClockSignal in platform.add_clock_constraint -
<kbeckmann> thanks for opening the issue, i am sure others might stumble upon this
chipmuenk has joined #nmigen
FFY00 has quit [Read error: Connection reset by peer]
FFY00 has joined #nmigen
cr1901_modern has left #nmigen [#nmigen]
cr1901_modern has joined #nmigen
Shari2 has quit [Quit: Leaving]
emeb_mac has joined #nmigen
chipmuenk has quit [Quit: chipmuenk]
PyroPeter has quit [*.net *.split]
ronyrus has quit [*.net *.split]
nengel has quit [*.net *.split]
petitionynd has quit [*.net *.split]
mithro has quit [*.net *.split]
gravejac has quit [*.net *.split]
agg has quit [*.net *.split]
loxodes has quit [*.net *.split]
RaYmAn has quit [*.net *.split]
mwk has quit [*.net *.split]
DX-MON has quit [*.net *.split]
gravejac has joined #nmigen
mithro has joined #nmigen
agg has joined #nmigen
RaYmAn has joined #nmigen
loxodes has joined #nmigen
mwk has joined #nmigen
DX-MON has joined #nmigen
lkcl has quit [*.net *.split]
electronic_eel has quit [*.net *.split]
zignig has quit [*.net *.split]
Degi has quit [*.net *.split]
cr1901_modern has quit [*.net *.split]
BeerSerc_ has quit [*.net *.split]
Yatekii has quit [*.net *.split]
XMPPwocky has quit [*.net *.split]
peepsalot has quit [*.net *.split]
ronyrus has joined #nmigen
petitionynd has joined #nmigen
PyroPeter has joined #nmigen
nengel has joined #nmigen
gkelly has quit [*.net *.split]
Ultrasauce has quit [*.net *.split]
peepsalot has joined #nmigen
XMPPwocky has joined #nmigen
cr1901_modern has joined #nmigen
lkcl has joined #nmigen
Degi has joined #nmigen
Yatekii has joined #nmigen
electronic_eel has joined #nmigen
zignig has joined #nmigen
BeerSerc_ has joined #nmigen
Ultrasauce has joined #nmigen
gkelly has joined #nmigen
mithro has quit [Ping timeout: 272 seconds]
phire has quit [*.net *.split]
phire has joined #nmigen
cesar[m] has quit [Ping timeout: 268 seconds]
jfng has quit [Ping timeout: 240 seconds]
gkelly has quit [Ping timeout: 240 seconds]
emily has quit [Ping timeout: 244 seconds]
whitequark[m] has quit [Ping timeout: 244 seconds]
emeb_mac has quit [*.net *.split]
emeb has quit [*.net *.split]
EmilJ has quit [*.net *.split]
anuejn has quit [*.net *.split]
rattboi has quit [*.net *.split]
trabucayre has quit [*.net *.split]
Asu has quit [*.net *.split]
vup has quit [*.net *.split]
MadHacker has quit [*.net *.split]
bsmt has quit [*.net *.split]
emeb_mac has joined #nmigen
rattboi has joined #nmigen
EmilJ has joined #nmigen
anuejn has joined #nmigen
emeb has joined #nmigen
trabucayre has joined #nmigen
Chips4Makers has quit [*.net *.split]
alanvgreen has quit [*.net *.split]
sorear has quit [*.net *.split]
Sarayan has quit [*.net *.split]
whitequark has quit [*.net *.split]
Chips4Makers has joined #nmigen
sorear has joined #nmigen
Sarayan has joined #nmigen
alanvgreen has joined #nmigen
whitequark has joined #nmigen
bsmt has joined #nmigen
vup has joined #nmigen
MadHacker has joined #nmigen
Asu has joined #nmigen
umarcor has quit [*.net *.split]
FL4SHK has quit [*.net *.split]
kbeckmann has quit [*.net *.split]
Lofty has quit [*.net *.split]
miek has quit [*.net *.split]
key2 has quit [*.net *.split]
happycube has quit [*.net *.split]
bob_twinkles has quit [*.net *.split]
moony has quit [*.net *.split]
DaKnig has quit [*.net *.split]
moony has joined #nmigen
key2 has joined #nmigen
happycube has joined #nmigen
DaKnig has joined #nmigen
bob_twinkles has joined #nmigen
umarcor has joined #nmigen
Lofty has joined #nmigen
miek has joined #nmigen
kbeckmann has joined #nmigen
FL4SHK has joined #nmigen
mithro has joined #nmigen
Lord_Nightmare has quit [*.net *.split]
pepijndevos_ has quit [*.net *.split]
tpw_rules has quit [*.net *.split]
plaes has quit [*.net *.split]
_florent_ has quit [*.net *.split]
tannewt has quit [*.net *.split]
Qyriad has quit [*.net *.split]
Cynthia has quit [*.net *.split]
daveshah has quit [*.net *.split]
yuriks has quit [*.net *.split]
tucanae47_ has quit [*.net *.split]
guan has quit [*.net *.split]
XgF has quit [*.net *.split]
_whitenotifier-f has quit [*.net *.split]
Stary has quit [*.net *.split]
tpw_rules has joined #nmigen
Lord_Nightmare has joined #nmigen
plaes has joined #nmigen
pepijndevos_ has joined #nmigen
awygle has quit [*.net *.split]
jeanthom has quit [*.net *.split]
d1b2 has quit [*.net *.split]
TD-Linux has quit [*.net *.split]
lethalbit has quit [*.net *.split]
Ekho has quit [*.net *.split]
tannewt has joined #nmigen
_florent_ has joined #nmigen
Qyriad has joined #nmigen
Cynthia has joined #nmigen
tucanae47_ has joined #nmigen
XgF has joined #nmigen
daveshah has joined #nmigen
yuriks has joined #nmigen
guan has joined #nmigen
Stary has joined #nmigen
_whitenotifier-f has joined #nmigen
awygle has joined #nmigen
jeanthom has joined #nmigen
TD-Linux has joined #nmigen
lethalbit has joined #nmigen
Ekho has joined #nmigen
d1b2 has joined #nmigen
Ekho has quit [Max SendQ exceeded]
Cynthia has quit [Ping timeout: 260 seconds]
Cynthia has joined #nmigen
Ekho has joined #nmigen
cesar[m] has joined #nmigen
whitequark[m] has joined #nmigen
emily has joined #nmigen
gkelly has joined #nmigen
jfng has joined #nmigen
jeanthom has quit [Ping timeout: 265 seconds]
Asuu has joined #nmigen
Asu has quit [Ping timeout: 244 seconds]
Asuu has quit [Quit: Konversation terminated!]
<_whitenotifier-f> [nmigen] whitequark commented on issue #542: Using ClockSignal in platform.add_clock_constraint -
<_whitenotifier-f> [nmigen] whitequark closed issue #542: Using ClockSignal in platform.add_clock_constraint -
emeb has quit [Quit: Leaving.]