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 September 14th
<_whitenotifier-f> [YoWASP/nextpnr] whitequark pushed 1 commit to develop [+0/-0/±2] https://git.io/JUrFr
<_whitenotifier-f> [YoWASP/nextpnr] whitequark 7d954fa - Update dependencies.
esden has quit [Read error: Connection reset by peer]
tannewt has quit [Read error: Connection reset by peer]
esden has joined #nmigen
tannewt has joined #nmigen
jfng has quit [*.net *.split]
Degi has quit [Ping timeout: 264 seconds]
Degi has joined #nmigen
jaseg has quit [Ping timeout: 256 seconds]
jaseg has joined #nmigen
Degi has quit [Ping timeout: 256 seconds]
Degi has joined #nmigen
PyroPeter_ has joined #nmigen
PyroPeter has quit [Ping timeout: 246 seconds]
PyroPeter_ is now known as PyroPeter
electronic_eel has quit [Ping timeout: 260 seconds]
electronic_eel has joined #nmigen
_whitelogger has joined #nmigen
_whitelogger has joined #nmigen
PyroPeter_ has joined #nmigen
PyroPeter has quit [Ping timeout: 272 seconds]
PyroPeter_ is now known as PyroPeter
_whitelogger has joined #nmigen
emeb_mac has quit [Quit: Leaving.]
key2 has quit [Read error: Connection reset by peer]
key2 has joined #nmigen
jfng has joined #nmigen
Asu has joined #nmigen
jjeanthom has joined #nmigen
danfoster has quit [Read error: Connection reset by peer]
guan has quit [Read error: Connection reset by peer]
guan has joined #nmigen
jjeanthom has quit [Ping timeout: 272 seconds]
jimr has joined #nmigen
jimr has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
jimr has joined #nmigen
<FL4SHK> I'm now thinking about using techniques for making fast float dividers for making fast integer dividers
<FL4SHK> does anyone know why this isn't done?
<FL4SHK> I'm not yet making a float divider in particular, mind you
<FL4SHK> I did once, but it was only for round towards zero. Also, it used an integer divider for dividing the mantissas.
<FL4SHK> I've heard that you can get a float32 divide done in 6 cycles.
jimr has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<tpw_rules> isn't a float divider just an integer divider with a subtractor and barrel shifter?
<_whitenotifier-f> [nmigen] cestrauss commented on issue #439: fsm_state changes mid cycle - https://git.io/JUKjk
<FL4SHK> tpw_rules: that's a slow way to do it
jjeanthom has joined #nmigen
jjeanthom has quit [Ping timeout: 240 seconds]
<_whitenotifier-f> [nmigen] cestrauss commented on issue #439: fsm_state changes mid cycle - https://git.io/JU6gj
_whitelogger has joined #nmigen
emeb_mac has joined #nmigen
_whitelogger has joined #nmigen
Asu has quit [Quit: Konversation terminated!]
jjeanthom has joined #nmigen
FFY00 has quit [Remote host closed the connection]
FFY00 has joined #nmigen
FFY00 has quit [Excess Flood]
FFY00 has joined #nmigen
esden has quit [Ping timeout: 264 seconds]
esden has joined #nmigen
jjeanthom has quit [Ping timeout: 272 seconds]
jaseg has quit [Ping timeout: 272 seconds]
<d1b2> <EmilJ> vup: I think the critical warnings are a symptom of something bad. It is complaining that, for example, a 32-bit register wire [31:0] \$1071 ; is fed with 10-bit init value, but it only expects the init value to be 1-bit
<vup> yep agreed, however my verilog is not good enough to actually figure out what is going wrong
<FL4SHK> tpw_rules: so I think floating point operations in general are just going to be stuff tacked onto integer operations
<FL4SHK> with this in mind
<FL4SHK> I don't think an FPU is going to end up being very big
<tpw_rules> which is why the sentiment "does anybody know why nobody's used a fast float divider to make a fast integer divider" confuses me
<FL4SHK> well
<FL4SHK> I said that
<FL4SHK> because I was told you could maybe do a float divide in six cycles?
<FL4SHK> I just pinged ZipCPU
<FL4SHK> he's the guy who told me it's possible to do float divides quickly
<FL4SHK> I'm not currently sure it's possible to do IEEE float operations correctly if they're that fast
<tpw_rules> also who gets to define how long a cycle lasts
<FL4SHK> hmmmm
<FL4SHK> well, he was talking about using, perhaps, Newton-raphson division
<FL4SHK> and I'm not sure you're guaranteed correct results with something like that...
<d1b2> <EmilJ> vup: also rebuilding with the FIFO gave slightly worse slack :D it's slacking 2ns on things like hdmi/fifo/fifo/unbuffered/storage_reg/CLKARDCLK, hdmi/hdmi/encoder_b/n1q_m_reg[1]/C, hdmi/hdmi/timing_generator/x_reg[2]/C. Those aren't relevant to pushing data fast?
<FL4SHK> tpw_rules: so I was told that FPUs tend to take up a lot of LUTs
<FL4SHK> and if you do the integer unit plus extra stuff on top business, I just don't see it being a problem
<tpw_rules> i mean afaik it's been that way since the dawn of time
<FL4SHK> then 20 cycles should be reasonable for my float32 divide
<FL4SHK> it should end up being about like that if I use my long udiv thing I'm currently implementing
<FL4SHK> that thing takes one cycle to compute three quotient bits
<sorear> rocket-chip uses newton-raphson for float division, with some funny control logic where you can have multiple in-flight fdivs
<FL4SHK> does it improve speed?
<FL4SHK> my understanding is that it does
<FL4SHK> I was thinking of doing Newton-raphson for *integer* division
<sorear> alpha and ia64 had no integer divide hardware, software was expected to convert to float before dividing anything, ia64 also required software newton-raphson steps (although the loop logic was partly hardware)
<FL4SHK> but I am inexperienced with the stuff I need to do to do things correctly
<FL4SHK> well
<FL4SHK> My thinking is, if you can do Newton-raphson for floats, you can do it for fixed point
<FL4SHK> and if you have fixed point, you've already got an integer
<FL4SHK> all you need to do is shift...
<sorear> the key thing to understand rocket-chip is that the mandate of the research project was to develop a vector microprocessor, the scalar core is cobbled together out of parts primarily designed for vector use
<Lofty> sorear: I thought 32-bit integer multiply was performed as double-precision float, which can store all 32-bit integers precisely?