<tnt>
Oh wait actually you probably want to use the 'usb' branch of that repo.
<Sprite_tm>
Cool, thanks. Lemme read the arch doc first, the microcode thing is new to me...
<Sprite_tm>
Hm, that looks sane, although a bit unconventional... Say I were to plan on throwing this into an ECP5 next to a riscv core and port tinyusb (https://github.com/hathach/tinyusb) to it, anything else I'd need to know?
<tnt>
(1) there is a few instanciated ice40 primitives. Basically the 2 IOs buffers and a few RAMs / ROMs. The RAM / ROM can probably be replaced by inferrence, but one being a bit special (DP with different width), yosys wasn't inferring it optimally which might not matter on a ECP5, but on an iCE40 the extra cost was a bit much so I went with instanciation.
<tnt>
But really it shouldn't be too hard, I don't think it's "that" special except for what's described in "Special handling for Control Endpoints". (which you can actually ignore if you want to, it just made it easier for me to implement them in a spec compliant way, ...).
<Sprite_tm>
Check. According to the tinyusb guys, their HAL is written in a pretty abstract way so it should map onto most USB hardwares. I think it's a nice way to get a whole bunch of dev drivers 'for free', hence the idea to use that.
<Sprite_tm>
Yeah, I saw that, that actually looks like a nice feature.
<tnt>
Yup I'd definitely be interested to see tinyusb working with my core for sure :)
<Sprite_tm>
Tbh, your USB thing is a lot more sane than some unnamed USB IP from a company that rymes with 'blynopsis', so it shouldn't be too hard to port :P
<tnt>
I actually had never worked with USB on microcontrollers before writing that core so I didn't have really much idea of how this worked in other devs.
<Sprite_tm>
It's... errm... let's say that it probably helps you could create this from scratch and didn't have to have a bunch of different modes in which various users use it to make things extremely complicated. I'm halfway sure some commercial IP is plagued by that.
<tnt>
Hehe, yeah probably.
emeb_mac has quit [Ping timeout: 246 seconds]
<Sprite_tm>
Check, copy-pasted to my project, I'll probably see if I can get it to work this weekend. Will keep you updated.
<tnt>
Sprite_tm: you used the version in the 'usb' branch right ? (it has a couple of fixes not yet in master ...)
<tnt>
Sprite_tm: this replaces all the instanciated RAM with inferred versions. (tested on ice40 hw)
<tnt>
The hw inferred for the ecp5 is sort of wasteful for the usb_ep_buf.v ... but I have no idea how to write a variable port size ram with different clock in a way that yosys maps it optimally for the ecp5.
<tnt>
Pretty sure if you want to do it well you have to instanciate PDPW16KD yourself.
<Sprite_tm>
tnt: Thanks! If any, it's enough to get started with; I'll optimize later when I run out of BRAM :P
_whitelogger has joined ##openfpga
hstone has quit [Remote host closed the connection]
cr1901_modern1 has joined ##openfpga
cr1901_modern has quit [Ping timeout: 245 seconds]
cr1901_modern has joined ##openfpga
cr1901_modern1 has quit [Ping timeout: 245 seconds]
danilonc has joined ##openfpga
rohitksingh has joined ##openfpga
emeb has joined ##openfpga
genii has joined ##openfpga
dh73 has joined ##openfpga
rohitksingh has quit [Ping timeout: 245 seconds]
yorick has joined ##openfpga
rohitksingh has joined ##openfpga
Asu has quit [Ping timeout: 246 seconds]
Asu has joined ##openfpga
Asu has quit [Ping timeout: 245 seconds]
flea86 has quit [Quit: Goodbye and thanks for all the dirty sand ;-)]
m4ssi has quit [Remote host closed the connection]
Asu has joined ##openfpga
Asu has quit [Ping timeout: 244 seconds]
Asu has joined ##openfpga
Miyu has quit [Ping timeout: 246 seconds]
rohitksingh has quit [Ping timeout: 245 seconds]
rohitksingh has joined ##openfpga
rohitksingh has quit [Ping timeout: 272 seconds]
Morn_ has quit [Quit: ZNC 1.6.5+deb1+deb9u2 - http://znc.in]
Morn_ has joined ##openfpga
rohitksingh has joined ##openfpga
Asu` has joined ##openfpga
Asu has quit [Ping timeout: 245 seconds]
rohitksingh has quit [Ping timeout: 268 seconds]
wpwrak has quit [Ping timeout: 245 seconds]
emeb_mac has joined ##openfpga
Asu has joined ##openfpga
Asu` has quit [Ping timeout: 258 seconds]
<tnt>
Somehow I feel some of the HFTRIM bits aren't wired right.