UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Explorer
Explorer
614 Views
Registered: ‎05-15-2014

IP modules without axi?

Today I ran into my typical problem with IP.  Almost everything in the library has an AXI wrapper!  AXI is fine for a lot of things, but in signal processing, some of us learned how to string blocks together with synchronous clocking such that FIFOs and handshaking (with their attendant real estate and power consumption) is not needed.

Today's example.  The FIR compiler sounds like a wonderful tool.  I have a product that needs several FIR filters with clock speeds ranging from 3.6 MHz down to 300 kHz.  The ability of the compiler to optimize this and to overclock DSP blocks to pass multiple channels through a DSP block all sounds wonderful.  It eliminates a lot of detail grunt work.  Until you realize that each resulting DSP block is going to consume a few hundred LUTs for AXI stream interfaces that would accomplish absolutely nothing in my applicaton (except maybe get in the way and make me add more interface code to connect to them).

I also need two channels of CIC decimating filtering.  Same problem.  There's more AXI in those than filter!

So why can't we have a checkbox that enables or disables the generation of the interface?

I tried persuing an alternate approach--let it desing the thing and then edit out the AXI from the resulting verilog file.  No joy.  It doesn't produce a usable, editable verilog file.  Foiled again.  Guess I'd better start desiging an optimized FIR filter of my own from prmatives.  Basically I can't really use most of the signal processing IP, because of its bloated interface.  And this has nothing to do with the fact that the Arm processor uses AXI, because this doesn't even connect to the processor.  It is just a set of RF signal processing blocks.

5 Replies
Scholar dgisselq
Scholar
593 Views
Registered: ‎05-21-2015

Re: IP modules without axi?

You might find some usable Verilog filtering code in this repository: https://github.com/ZipCPU/dspfilters  None of the code there uses any AXI IP.

Scholar brimdavis
Scholar
559 Views
Registered: ‎04-26-2012

Re: IP modules without axi?

@whelm   "AXI is fine for a lot of things, but in signal processing, some of us learned how to string blocks together with synchronous clocking such that FIFOs and handshaking (with their attendant real estate and power consumption) is not needed."

Yes! The everything-is-AXIS syndrome is quite annoying, e.g. Vivado SysGen changed the 'Complex Multiply' to only support AXIS, and moved the 'simple' pipelined complex multiply to 'Product'.

I've found that using a simple AXIS subset (data,valid,last) with no backpressure, along with simple shims (e.g. error flag on !READY | skid buffer | small fifo) to interface to any Xilinx IP cores that require the full control set, works out fairly well without adding much overhead to one's own code.

> Guess I'd better start desiging an optimized FIR filter of my own from prmatives. 

There's an example of a full rate systolic FIR, inferencing DSP48s, over on this thread:

   https://forums.xilinx.com/t5/DSP-IP-and-Tools/Help-converting-floating-point-coeff-to-fixed-point/m-p/852671/highlight/true#M7899

I've used the UG901 DSP48 inference examples ["Even Symmetric Systolic FIR"] to write similar code in the past.

-Brian

 

Explorer
Explorer
496 Views
Registered: ‎05-15-2014

Re: IP modules without axi?

Yes, it is frustrating.  Any competent designer of streaming protocols for things like SDR knows how to flow signals synchronously through succesive blocks.  The ADC or logic that is the signal source never stops supplying data at a fixed rate (and the DAC or logic that ultimately consumes the output never stops accepting data at a fixed rate).  In between it is quite easy for any decent designer to flow that data through without back pressure and without any ready signals.  The whole concept of asynchronous flow control in signal processing is a mark of ignorant, sloppy or lazy designers, and Xilinx should be ashamed of themselves for supporting it, let alone forcing it on users.  A DSP block needs only an input clock, input data, and possibly an output clock (either as an input or an output).  Anything beyond that is sloppy design.  They could at least make the AXI interface an optionally selectable feature.

0 Kudos
Observer sumanthe
Observer
152 Views
Registered: ‎03-17-2011

Re: IP modules without axi?

Is it possible to generate netlist using ISE (FIR compiler v5.0 without support to AXI) and use that in Vivado in anyway ?

I have one DSP design module using FIR's, DDS and other DSP IPs (without AXI) targetted for Spartan6 and now required to port the design to Ultrascale+ .

Problem here is when generating netlist in ISE can't target to Ultrascle+ and Vivado dont' support Spartan6.

Taking EDIF output  from ISE using in Vivado for Ultrascale+ work ? 

If required I can create a new thread.

 

0 Kudos
Explorer
Explorer
144 Views
Registered: ‎09-13-2011

Re: IP modules without axi?

If you know what cycle your sending body has valid data and you know your receiving body can accept in that cycle you don't need the asynchronous flow control in AXIS, just connect tvalid to tvalid and tie tready to high. AXIS is really a very small interface, fits easily with old style FIFOs too with few logic added, you can just do away with the things you don't need and the synthesis tool will remove the logic behind.
The FIR-compiler is great, unfortuately it is extremely slow trying to simulate the output from it, that's the main problem I have with it.

0 Kudos