<daveshah>
but there are plenty of other Verilog SDRAM options out there
reportings has joined ##openfpga
reportingsjr has quit [Ping timeout: 240 seconds]
<kitten_nb_five>
tnt: maybe this was the wrong word (non-native english-speaker here). i want to know if we are sure the hardware-pin-mapping is correct and if there is anything special (it seems like no) that i must consider for using the DRAM. For learning purpuouses i am trying to write my own simple controller, the simulation seems fine but it does not work, the DRAM draws no current while it should be drawing like 100mA or so in auto-refresh
_whitelogger has joined ##openfpga
<daveshah>
Been a while since I've looked at DRAM commands, but I'm not sure if auto-refresh will significantly increase current other than for the short time to refresh the row
<daveshah>
have you actually tried writing something and reading it back?
<kitten_nb_five>
daveshah: if i read the datasheet correctly (do you want a link?) it says refresh-current is 100mA, so...
<kitten_nb_five>
no, i did not try Read/Write, i think i will do this next
<kitten_nb_five>
(and i am doing refreshes continously)
<daveshah>
Yeah but autorefresh only lasts a few 10s of ns
<kitten_nb_five>
now that you say this... yeah...
<kitten_nb_five>
i should try implementing simple read/write i think. lot more fun to come...
<kitten_nb_five>
afaik there is only a config-register on DRAM, nothing like a vendor code or something i could read to check my stuff?
<kitten_nb_five>
(i am a software guy, ICs with SPI and I2C and stuff usually have something like this...)
<omnitechnomancer>
It should be reasonably easy to use a state machine to write a set of values in a burst then read it back and check it?
<kitten_nb_five>
i hacked together some write()-stuff, but for read() i am struggeling. i based my design on a FSM that is triggered by negedge of the DRAM-clock. however for reading i need to sample on the posedge of this clock. not sure how to handle this. we don't have CS# of the DRAM, it is hardwired to GND, so timing is a bit hairy.
asy_ has joined ##openfpga
mwk has quit [Ping timeout: 240 seconds]
mwk has joined ##openfpga
Gracana has joined ##openfpga
Gracana has left ##openfpga [##openfpga]
<omnitechnomancer>
Can you do clever things with DDR input modes?
Gracana has joined ##openfpga
<Gracana>
Hi folks, I've done a couple ice40 boards but I'd like to make life easier on myself and keep all the components on the top of the PCB so I can reflow the boards on a hotplate. Is that a bad idea? Think I could get away with it in an ecp5 design? I know it won't make for good decap placement, but I'm hoping it'll be ok for designs without super demanding high-speed I/O.
<Gracana>
I guess I can just give it a shot and see how poorly it works, but comments/advice from people with more experience would be nice.
<agg>
i just assembled a new ecp5 board with cabga256 where i did only top-side decoupling to make life easier, but i hadn't got around to seeing how bad it is yet
<agg>
with wide power planes going to the power balls i'm optimistic it will reasonable
<Gracana>
oh, that's good to hear
<Gracana>
How many layers does your board have?
<agg>
4
<Gracana>
how much of the signals were you able to escape?
<agg>
I escaped all the ones I needed for the design, which is jtag, qspi flash, 24 top i/o, 19 right i/o, 31 left i/o
<agg>
(no ddr memory, 8 lvds pairs)
<Gracana>
Ah ok, a lot left on the table but still very cool. I hope it works.
<agg>
there's a decent bit of room to escape more signals if I needed to, but this got everything I wanted
<Gracana>
good!
<agg>
Gracana: so with 72% of this LFE5U-45F-6BG256 running 100MHz LFSRs, an IO wired to 3v3 shows 200mVpp and 40mVrms ripple
<agg>
there are no doubt tougher tests to subject it
<agg>
(I hadn't looked into the 3v3 ripple under load specifically, but everything else I've tested so far has worked fine, btw)
<Gracana>
That's quite respectable. Sounds good enough for me to try it out.
<agg>
with the fpga in reset it's about 16mVpp and 3mVrms, so most of that is from the fpga logic ticking over
<Gracana>
Can I see a picture of your board layout?
<agg>
sorry, it's an unreleased work project, so shouldn't really share photos
<Gracana>
oh ok, no problem
<agg>
it's not especially exciting though, I basically have a lot of decoupling caps right next to the fpga in all the spots I don't have traces coming out on the top layer
<agg>
and they via directly to the power plane from there
<Gracana>
What I'm mostly curious about is how many decoupling caps you omitted vs a full layout with decaps for every supply pad
<agg>
I had 2x 10n 1v1, 6x 100n 1v1, 2x 10µ 1v1, 1x 10n 2v5, 2x 100n 2v5, 1x 10µ 2v5, 100n for each VCCIO (13x), and another 3x 10µ on the vccio rails but not super close
<Gracana>
nice, you've got them all and more.. that sounds about as good as it can get within the design constraints
<agg>
if I was doing them on the underside i'd have had more smaller valued capacitors per ball ideally
<agg>
but yea it didn't seem like a huge compromise in number of capacitors, the worry is just in the inductance between them and the balls
<Gracana>
Well, I'll have to give the layout a try and see what I can come up with. My design will need more IO (for a 32 bit bus) and I'm still a little worried about switching large portions of an I/O bank on/off at the same time, but otoh my bus speed can be pretty low, with some series termination.
OmniMancer has quit [Quit: Leaving.]
renze has quit [Ping timeout: 260 seconds]
ejcspii has joined ##openfpga
renze has joined ##openfpga
<kitten_nb_five>
ok, my stuff still does not work, the DRAM always returns 16'h00 on read. i will try to hook up the logic analyzer to the mess, maybe i'll see something. oh men...
kitten_nb_five has quit [Ping timeout: 260 seconds]
z0ttel has joined ##openfpga
ejcspii has quit [Remote host closed the connection]
ejcspii has joined ##openfpga
emeb_mac has joined ##openfpga
ejcspii has quit [Ping timeout: 240 seconds]
ejcspii has joined ##openfpga
kitten_nb_five has joined ##openfpga
ejcspii has quit [Remote host closed the connection]
ejcspii has joined ##openfpga
ejcspii has quit [Ping timeout: 240 seconds]
kristianpaul has quit [Read error: Connection reset by peer]
kristianpaul has joined ##openfpga
kitten_nb_five has quit [Quit: Leaving]
Asu has quit [Quit: Konversation terminated!]
Asu has joined ##openfpga
Asu has quit [Quit: Konversation terminated!]
kristianpaul has quit [Read error: Connection reset by peer]