Re: GSoC'16 | JPEG Encoder
Martin Strubel <[email protected]> Wed, 02 Mar 2016 16:16:08 +0100
| Newsgroups | gmane.comp.python.myhdl |
|---|---|
| Message-ID | <[email protected]> |
Hi all, > > I wrote an inline complex multiplier based around a single DSP which > really gets into the guts of the DSP core. It's hard to see how one > would do this in plain VHDL with a hope that it would be inferred > correctly (the difficulty is in things like flicking control registers > mid pipeline from multiply-add to multiply-accumulate to > multiply-deccumulate). > I never had troubles getting the right thing instanced when staying below the 18 bit of the classic multiplier primitive. Above that, it can get funky on some toolchains WRT timing, but the nice thing about MyHDL is that it allows you to swap out the primitives in a much more configurable/reusable way than on the VHDL level. For the pipeline control, I typically use VLIW microcode that can be adapted easily if one of the MAC primitives needs to use a higher delay within the pipeline. So on the high level 'synthesis', you spell out the ops done in the pipeline in Python and the architecture (FPGA vendor) specific translator rolls out the rest. So a DCT is just a "hardware applet". If you spell it out in pure (vendor independent) VHDL, the synth tools always did it right so far, it just wasn't always optimal for their architecture and this is where the manual optimizations get nasty and way less reusable than in MyHDL. Greetings, - Strubi ------------------------------------------------------------------------------ Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140