clifford changed the topic of #yosys to: Yosys Open SYnthesis Suite: http://www.clifford.at/yosys/ -- Channel Logs: https://irclog.whitequark.org/yosys
rohitksingh has quit [Ping timeout: 255 seconds]
Forty-Bot has quit [Ping timeout: 260 seconds]
rohitksingh has joined #yosys
matthuszagh has joined #yosys
matthuszagh has left #yosys ["ERC (IRC client for Emacs 28.0.50)"]
rohitksingh has quit [Ping timeout: 240 seconds]
Forty-Bot has joined #yosys
dormito has quit [Ping timeout: 240 seconds]
citypw has joined #yosys
captain_morgan06 has quit [Remote host closed the connection]
rohitksingh has joined #yosys
_whitelogger has joined #yosys
vidbina has joined #yosys
<awygle> daveshah: is "input with pullup" the expected default state of pins in the ECP5 as well
<awygle> ?
vidbina has quit [Ping timeout: 258 seconds]
_whitelogger has joined #yosys
emeb_mac has quit [Quit: Leaving.]
<daveshah> awygle: no, it's input will pull down for ECP5
<awygle> ah, that squares with my observations
<awygle> i solved my problem tho
<awygle> my versa board came with the second channel on the ECP5 configured as a FIFO, not a UART
<awygle> (which doesn't make any sense given how the board is routed but nvm)
<daveshah> I've heard of EVN boards being shipped like this, but never Versas until now
<awygle> it also doesn't have the descriptor that nmigen expected, fwiw
<awygle> but it's pretty old. i got it something like 2 years ago.
<sensille> I can't spot the mistake, yosys doesn't want to infer bram here: https://pastebin.com/rUJVBfth
<tpb> Title: always @(posedge clk) begin dout <= ram[rdptr]; if (clr) begin - Pastebin.com (at pastebin.com)
<sensille> Read port #0 is in clock domain !~async~.
<sensille> altough it is explicitly registered
<daveshah> Is there an initial value on dout?
<sensille> yes
<sensille> trying ...
<sensille> nope, same without
<sensille> full file: https://pastebin.com/VhCZ7Pyu
<tpb> Title: `timescale 1ns / 1ps `default_nettype none /* * simple fifo. The next data - Pastebin.com (at pastebin.com)
<daveshah> Seems to work fine here
<sensille> strange
<daveshah> Is this with default DATA_WIDTH and ADDR_WIDTH? if you overrode ADDR_WIDTH to be smaller Yosys might see it more efficient to use LUTRAM instead (but this would be a different message)
<sensille> DATA_WIDTH=72, ADDR_WIDTH=9
<sensille> also it _says_ it doesn't use bram because "Read port #0 is in clock domain !~async~."
<sensille> dunno if that's the real reason, though
<sensille> same problem with another ram
<sensille> i'll reduce the design to something where bram still gets inferred and work up from that later, thanks for testing
fsasm has joined #yosys
rohitksingh has quit [Ping timeout: 248 seconds]
fsasm has quit [Ping timeout: 265 seconds]
klotz has joined #yosys
X-Scale has quit [Ping timeout: 260 seconds]
X-Scale` has joined #yosys
<janrinze> daveshah: using DP16KD i get the data after the clock. if i just use an array in verilog i can get the data before the clock. how does yoysys/nextpnr setup DP16KD to achieve that?
matthuszagh has joined #yosys
X-Scale` is now known as X-Scale
<janrinze> daveshah: does yoysys 'smartly' implement a write to the 'read address' using substitution? thus assuring that the data is available on the next clock?
<tnt> janrinze: what do you mean before the clock ?
matthuszagh has left #yosys ["ERC (IRC client for Emacs 28.0.50)"]
<janrinze> tnt: DP16KD has a clock
<janrinze> tnt: with reg[15:0] memory[0:8191] you can do 'always@* out=memory[address] ; always@(posedge clk) memory[address]=in;'
<tnt> yeah ... and that's not going to map to a DP16KD
<janrinze> tnt: it actually does.
<tnt> unless `address` is a register
<tnt> and then yosys will "move" the register.
<janrinze> address is a register
<janrinze> tnt: 'move' as in using the read address as the detination register?
<janrinze> oops 'destination'
<tnt> it will use the input to the address register (instead of the ouptut) to actually feed the address input of the DP16K read side.
<janrinze> tnt: yup
<janrinze> tnt: but how can i infer the same?
<tnt> ?
<janrinze> tnt: with using the DP16K primitive?
<tnt> That's not 'infer' ... 'infer' is letting yosys do it.
<tnt> 'instanciate' is doing it 'manually'.
<janrinze> okay.. how can i get the same behaviour that yosys does ?
<tnt> Well you need to change your HDL ...
<janrinze> using DP16K
<tnt> if you only have access to 'address' register output, you can't.
<janrinze> yosys can but i can't.. i see
<tnt> yosys has access to the whole design and can mangle it like it wants. You can't do that ...
<janrinze> the 'move' magic would be very nice to have.
<janrinze> same for the output register, ifr i clock that in then it will be 'late' by one clock..
<tnt> yosys can add read bypass logic if need be.
<janrinze> okay, yoysys can do some nice mapping and it will work on the proper clock transition. There aren't any verilog tricks to do the same, right?
<tnt> well no ... you instanciate a blackbox, verilog has no clue what that black box does.
<tnt> if it doesn't do what you need, tough luck, it's up to you to rewrite the logic around it so it fits your use case.
<janrinze> tnt: does 'always@*' imply a 'move' ?
<tnt> always @* descives combinatorial logic / asynchronous reads.
klotz has quit [Quit: klotz]
s_frit has quit []
emeb has joined #yosys
X-Scale has quit [Ping timeout: 258 seconds]
X-Scale` has joined #yosys
X-Scale` is now known as X-Scale
citypw has quit [Ping timeout: 265 seconds]
N2TOH has quit [Ping timeout: 255 seconds]
cr1901_modern has quit [Quit: Leaving.]
cr1901_modern has joined #yosys
fsasm has joined #yosys
peepsalot has quit [Ping timeout: 260 seconds]
RicBent has joined #yosys
<RicBent> Hey there, is it ok if I ask an hardware related question here?
<daveshah> Sure!
<RicBent> alright :)
<RicBent> I built this circuit: https://i.imgur.com/94IIuHh.png
<RicBent> with an HX1K
<RicBent> programming the FPGA via RPI is working
<RicBent> programming the SPI flash also works
<RicBent> but the FPGA doesn't seem to configure from the flash
<RicBent> any obvious messup there?
<daveshah> Are you connecting SS1 and SS2 when doing this?
<RicBent> nope
<daveshah> I think the iCE40 might need to drive flash chip select as it would be needed for framing
<daveshah> SS on the iCE40 also needs to be pulled up to boot itself from flash, so R5 might be a problem
<RicBent> ah, I see
<RicBent> should've read the datasheet properly I guess :P
<RicBent> still surprised this thing works at all
<RicBent> first PCB I ever did. also first SMD solder job
<daveshah> Congrats!
<tnt> GNDPLL must not be connected to ground.
<RicBent> welp, that isn't fixable anymore
<RicBent> got it to configure from SPi though :D
<tnt> You could always lift the pin(s) and reword that.
<tnt> Just be aware of it if you have issues using the PLLs.
<tnt> s/reword/rework/
<tnt> Board looks neatly laid out for a first PCB though.
<RicBent> heh, thanks!
rohitksingh has joined #yosys
emeb_mac has joined #yosys
<RicBent> put my board on GitHub is anybody is interested: https://github.com/RicBent/Hisame
<tpb> Title: GitHub - RicBent/Hisame: Development board for the Lattice iCE40 HX1K FPGA (at github.com)
fsasm has quit [Ping timeout: 265 seconds]
anticw has joined #yosys
anticw_ has quit [Ping timeout: 265 seconds]
tpb has quit [Remote host closed the connection]
tpb has joined #yosys