Hi Franco, Thanks for this. I don't *think* such a block exists in the library, though I could be wrong. One thing high on the agenda is to reorganize the libraries in mlib_devel to make it easier to add blocks in without git conflicts. Hopefully we (cough, Brian) will get round to this soon[ish]. Then that would be a great time to add this block.
In any case, thanks for sharing. Jack On Mon, 29 Oct 2018 at 14:43 Franco <francocuro...@gmail.com> wrote: > Hi CAPER community, > > No, this is no a question about CASPER blocks, instead I wanted to share > my own design of an efficient complex multiplication block using Xilinx > DSP48E1. It is efficient in the sense that it only uses 3 DSP blocks, > instead of 4 (as it's done in the CASPER library). This is achieved using > the formula from "Understanding Digital Signal Processing ed. 2" book, page > 487, where it shows a procedure to do complex multiplications using only 3 > real multipliers. The block have some caveats: > > - It only works in ROACH2 (or any FPGA that has DSP48E1 blocks) > - The maximum bitwidths for the inputs are a=18, b=18 (instead of a=18, > b=25 from cmult_dsp48e) > - It doesn't support conjugation > - it has 2 extra delays to sync the input signals. > > Aside from that, the block is functionally equivalent to cmult_dsp48e, I > simulated it for 100 random complex number and the results are the same. I > attached an image of the block if you want to see how it's implemented, or > you can steal the block from my fork of mlib_devel (cmult_dsp48e1 block): > > https://github.com/FrancoCalan/mlib_devel/blob/roach2/calan_library/calan_lib.slx > > I think the block is very useful for models with high demand of complex > multiplications (beamformer, interferometry), in fact the idea came from > the implementation of a beamformer in ROACH2 once I run out of DSP blocks. > > Cheers, > > Franco Curotto > > PD: I apologize in advance if this type of block is already implemented in > the CASPER library, but I couldn't find it there, not in the roach2 branch > anyways. > > -- > You received this message because you are subscribed to the Google Groups " > casper@lists.berkeley.edu" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to casper+unsubscr...@lists.berkeley.edu. > To post to this group, send email to casper@lists.berkeley.edu. > -- You received this message because you are subscribed to the Google Groups "casper@lists.berkeley.edu" group. To unsubscribe from this group and stop receiving emails from it, send an email to casper+unsubscr...@lists.berkeley.edu. To post to this group, send email to casper@lists.berkeley.edu.