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: 
Observer prateek33
Observer
646 Views
Registered: ‎05-21-2018

Add custom filter to XAPP1231

I have gone through XAPP1231 and was able to implement on my ZC702. The next thing I wish to do is add my own custom filter along with the given 3 (Sobel, Fast corners and pasteurize). What all changes should I make to add my custom filter?

0 Kudos
5 Replies
604 Views
Registered: ‎01-22-2015

Re: Add custom filter to XAPP1231

@prateek33

 

I think you have cited the wrong XAPP.  Do you mean XAPP1167?

 

If you have made a mistake with the XAPP number, then you should consider closing this post and opening another in the Video part of the Xilinx Forum.

 

Cheers,

Mark

0 Kudos
Observer prateek33
Observer
599 Views
Registered: ‎05-21-2018

Re: Add custom filter to XAPP1231

No, I do mean https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841851/XAPP1231+-+Partial+Reconfiguration+of+a+Hardware+Accelerator+with+Vivado+Design+Suite. In Section 3. He creates 3 Filters, I would like to add one of my own filters to the list. What changes must I make to accommodate this?

0 Kudos
Xilinx Employee
Xilinx Employee
527 Views
Registered: ‎11-17-2008

Re: Add custom filter to XAPP1231

@prateek33,

 

Essentially you'll need to do three things:

 

1.  Create your code for the new filter and synthesize it as an out-of-context checkpoint.

2.  Implement a new configuration using the existing locked static design, generating a new partial bitstream.

3.  Modify the software code and runtime environment to understand the new filter that is now available.

 

Hopefully you've been looking through not only the application note but this wiki page as well:

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841851/XAPP1231+-+Partial+Reconfiguration+of+a+Hardware+Accelerator+with+Vivado+Design+Suite

 

For the first two items, replicate the path the scripts take for the sobel filter.  The code to be synthesized by HLS must have the same ports so that it will plug into the same spot, or you could code in RTL or whatever.  Then the implementation scripts (design.tcl) will need to see a new child run, loading in the locked static checkpoint and the post-synthesis checkpoint to implement this new filter.  Follow the same options for partial bitstream generation.  Figure 5 in the app note illustrates this.  Then from the software perspective, you'll need to update the software code and device tree to identify new filters and load them in from their memory storage location.  The last part of the wiki shows details here.

 

It might be easier to start by simply replacing one of the existing filters, then expand the number of filters available.

 

thanks,

david.

0 Kudos
Highlighted
Observer prateek33
Observer
513 Views
Registered: ‎05-21-2018

Re: Add custom filter to XAPP1231

@davidd,

The software part is where I've been having the most trouble. What are the changes in the SDK code is where I'm struggling.

0 Kudos
Xilinx Employee
Xilinx Employee
492 Views
Registered: ‎11-17-2008

Re: Add custom filter to XAPP1231

@prateek33,

 

Well, to be honest, I'm a hardware guy not a software guy, so I'm not the best person to guide you through these changes.  But I would start again with the wiki page (step 6) and examine the corresponding code in filter.c and filter.h.  The former is the source code that is shown on the wiki page is is where the partial bitstreams are fetched, and the latter is the data file that stores the number and size of the partial bin files.  These files are found in software/xsdk/filter_lib in the design archive.

 

thanks,

david.

0 Kudos