clifford changed the topic of #yosys to: Yosys Open SYnthesis Suite: http://www.clifford.at/yosys/ -- Channel Logs: https://irclog.whitequark.org/yosys
pie__ has joined #yosys
pie_ has quit [Read error: Connection reset by peer]
digshadow has quit [Ping timeout: 260 seconds]
jkiv has joined #yosys
<ZipCPU> emeb: Is it? Thanks! Let me go double check on it ...
<ZipCPU> Sure is ...
jkiv has quit [Quit: Leaving]
jkiv has joined #yosys
<emeb> ZipCPU: Nice article though - I've been doing FPGA & ASIC DSP for many years and have used variations of those polynomial interpolators in a lot of places.
<ZipCPU> Out of curiosity, have you ever seen this approach before?
<emeb> The ones I did were similar = a set of CSD-based FIR filters to compute the coefficient terms, then a chain of multiply/add functions to compute the polynomial.
<emeb> I usually did 4th-order interpolators based on a paper published back in the 90's by some Finnish guys.
<ZipCPU> yeah, the 3rd and 4th order filters do get a quite rapid increase in performance--but there is (of course) a cost associated with them
<emeb> Here's an open paper from Jussi Vesma who did the one I used - http://www.cs.tut.fi/kurssit/TLT-5806/Interpol.pdf
* ZipCPU looks it up, and is surprised to find a full paper with no login required
<emeb> I know, right?
<jkiv> > Interpol.pdf
<jkiv> evening, all
<ZipCPU> Interpol via Wikipedia ... The International Criminal Police Organization
<jkiv> (well, depending on where you are.)
<emeb> When I first started working with those we were building ASIC-based video modems, so we had a lot of gates to throw around. Now of course you can buy FPGAs with equivalent performance for a few dollars.
<ZipCPU> Somehow I don't think that's what Interpol is referencing here. :D
* ZipCPU goes back to browsing the article ... it has a fascinating introduction
<emeb> Lately I've done interpolators running at audio rates on DSP microcontrollers, but those are based on sinc (bandlimited) interpolation as described by J.O. Smith -> https://ccrma.stanford.edu/~jos/resample/
<tpb> Title: Digital Audio Resampling Home Page (at ccrma.stanford.edu)
<ZipCPU> I've looked at sinc interpolation. Never really liked it much. Just don't trust it at the interval edges.
<emeb> hmm
<emeb> It has much better frequency response than polynomial interpolation.
<emeb> better for audio
<ZipCPU> Piecewise polynomials, on the other hand ... don't nearly require as much memory, can be done with less computation, ...
<emeb> but sinc interpolation is not appropriate for hardware implementation
<ZipCPU> Yes. I see your point there. The filter I presented today can be a component of an ideal audio filter, but won't be that on its own.
<emeb> Right - you can put a nice "cleanup" FIR filter after it to get rid of the unwanted portion of the spectrum
<ZipCPU> "Interpolation is generally considered as a time domain polynomial fitting problem which is not very practical for DSP applications. This is because the time-domain characteristics of the signal are not known usually. What is known is the frequency band of the signal." ... nice
<ZipCPU> emed: Actually, in another design of mine, I have "cleanup" filters both before and after the polynomial filter for just that purpose.
<emeb> Makes sense.
<ZipCPU> Those cleanup filters are typically a combination of a CIC filter and something else, so its a cascaded rough filter with a further cleanup filter.
<emeb> When I do RF / SDR stuff I usually don't use any of these techniques though - Mainly I use CIC filters.
<ZipCPU> You know, that's the one thing I haven't really discussed how to build on the blog: a good CIC filter.
<emeb> They can't get you arbitrary resampling ratios, but usually you can work around that.
<emeb> CICs are worth a mention.
<emeb> At first they seem like magic until you look at all the little tricks that go into them.
<ZipCPU> I don't know ... I used a series of block averages as an anti-aliasing filter when doing a 1024/1023 resampler ...
<ZipCPU> "At first they seem like magic until you look at all the little tricks that go into them" <---- heheh! Good. See Clark's third law too.
<emeb> Yeah - they are sufficiently advanced.
<emeb> But the basic trick is just the old rectangular window implemented with a sum, delay and difference. Replace the delay with a rate change and whammo...
<ZipCPU> It is amazing how simple they become.
<emeb> Yeah - I have a 2-channel 256x decimation CIC that fits into a Lattice LP4k with room to spare.
<tpb> Title: GitHub - emeb/iceRadio: C and Verilog sources for STM32F303 + iCE5LP4K Software Defined Radio (at github.com)
<ZipCPU> I should hope room to spare! The goal is usually to do more than just filtering within an FPGA application ...
<ZipCPU> Oh, you're the guy doing the iceRadio work?
<emeb> That's me.
<ZipCPU> Welcome to the channel/discussion/forum! It's a pleasure meeting you.
* jkiv stars
<emeb> Thanks! Good to be here.
* ZipCPU browses ebrombaugh.studionebula.com/radio/iceRadio/index.html
<ZipCPU> emeb: Is the circuit board for iceRadio of your own design?
<emeb> ZipCPU: Yes
<ZipCPU> Cool.
<emeb> OK - nice chatting. Gotta run
<ZipCPU> Sure! It's getting late here, and ... I'm still reading that article. (Good article)
xrexeon has quit [Ping timeout: 248 seconds]
<ZipCPU> emeb: When you get back, just wanted to share that that was an awesome article. Thanks!
<emeb> ZipCPU: the interpolator one? Yeah - worth saving.
<awygle> oo, iceradio
<jkiv> any tips for reducing LUT use? lol
<jkiv> initial version of my project was < 7860 req for 8k. after "optimizing" I find myself at 8000+
<jkiv> haha
gaussalpha has quit [Ping timeout: 276 seconds]
<emeb> perhaps you optimized for something other than utilization?
<emeb> :)
digshadow has joined #yosys
emeb has quit [Quit: Leaving.]
m_w has quit [Quit: leaving]
emeb_mac has joined #yosys
proteusguy has quit [Remote host closed the connection]
cemerick_ has quit [Ping timeout: 256 seconds]
gaussalpha has joined #yosys
jkiv has quit [Ping timeout: 276 seconds]
digshadow has quit [Ping timeout: 240 seconds]
dys has joined #yosys
AlexDaniel has quit [Ping timeout: 256 seconds]
dys has quit [Remote host closed the connection]
digshadow has joined #yosys
emeb_mac has quit [Quit: emeb_mac]
xerpi has joined #yosys
dmin7 has joined #yosys
xrexeon has joined #yosys
indy has quit [Read error: Connection reset by peer]
indy has joined #yosys
mjo_uk_ has quit []
mjo-uk has joined #yosys
xerpi has quit [Quit: Leaving]
leviathan has joined #yosys
leviathan has quit [Read error: Connection reset by peer]
leviathanch has joined #yosys
GuzTech has joined #yosys
eduardo_ has joined #yosys
eduardo__ has quit [Ping timeout: 276 seconds]
cemerick has joined #yosys
cemerick_ has joined #yosys
cemerick has quit [Ping timeout: 240 seconds]
cemerick_ has quit [Ping timeout: 240 seconds]
dmin7 has quit [Ping timeout: 256 seconds]
xerpi has joined #yosys
AlexDaniel has joined #yosys
proteusguy has joined #yosys
dmin7 has joined #yosys
xrexeon has quit [Remote host closed the connection]
promach_ has joined #yosys
xerpi has quit [Quit: Leaving]
emeb has joined #yosys
cemerick_ has joined #yosys
jkiv has joined #yosys
cemerick has joined #yosys
cemerick_ has quit [Ping timeout: 248 seconds]
jkiv has quit [Ping timeout: 264 seconds]
gaussbeta has joined #yosys
gaussalpha has quit [Remote host closed the connection]
cemerick_ has joined #yosys
cemerick has quit [Ping timeout: 268 seconds]
cemerick_ has quit [Ping timeout: 264 seconds]
cemerick has joined #yosys
cemerick_ has joined #yosys
cemerick has quit [Ping timeout: 264 seconds]
gaussbeta has quit [Ping timeout: 260 seconds]
cemerick_ has quit [Ping timeout: 268 seconds]
cemerick_ has joined #yosys
indy has quit [Quit: ZNC - http://znc.sourceforge.net]
indy has joined #yosys
cemerick has joined #yosys
cemerick_ has quit [Ping timeout: 240 seconds]
mjo-uk has quit []
cemerick has quit [Ping timeout: 264 seconds]
gaussalpha has joined #yosys
gaussalpha has quit [Read error: Connection reset by peer]
gaussalpha has joined #yosys
gaussalpha has quit [Remote host closed the connection]
jkiv has joined #yosys
dmin7 has quit [Ping timeout: 268 seconds]
jkiv has quit [Remote host closed the connection]
promach_ has quit [Ping timeout: 256 seconds]
cemerick has joined #yosys
leviathanch has quit [Remote host closed the connection]
GuzTech has quit [Ping timeout: 268 seconds]
cemerick has quit [Ping timeout: 240 seconds]
tpb has quit [Remote host closed the connection]
tpb has joined #yosys
cemerick has joined #yosys