{"id":9926,"date":"2015-09-10T20:00:37","date_gmt":"2015-09-11T03:00:37","guid":{"rendered":"https:\/\/blog.digilentinc.com\/?p=9926"},"modified":"2021-06-16T16:02:04","modified_gmt":"2021-06-16T23:02:04","slug":"14-steps-to-running-digital-filters-on-zybo","status":"publish","type":"post","link":"https:\/\/digilent.com\/blog\/14-steps-to-running-digital-filters-on-zybo\/","title":{"rendered":"14 Steps to Running Digital Filters on ZYBO"},"content":{"rendered":"<p>The <a href=\"https:\/\/digilent.com\/blog\/zybo\">ZYBO<\/a> board is a powerful beast. It can do so many things &#8212; we&#8217;ve put up a lot of projects and have more coming soon. <a href=\"http:\/\/www.instructables.com\/id\/Digital-Filters-on-Zybo-Board\/?ALLSTEPS\">This project<\/a> by Instructables team <span class=\"author\"><a title=\"view JeetS2's profile\" href=\"http:\/\/www.instructables.com\/member\/JeetS2\/\" rel=\"author\">JeetS2<\/a>\u00a0shows how to run a digital filter on the ZYBO. It takes 14 steps to get you able to acquire audio data, process it, and then make it something you could listen to on your headphones.\u00a0<\/span><\/p>\n<p>You&#8217;ll need a ZYBO board, an\u00a0AUX cable, headphones or speakers, and potentiometers. You&#8217;ll also need access to Vivado and to have the drivers already installed on your ZYBO board. The Instructable contains a \u00a0zip file to extract all the necessary files you&#8217;ll need for the project.<\/p>\n<p>With that done, what are the steps you need to take?<\/p>\n<ol>\n<ol>\n<ol>\n<li>Set up and add the Zynq IP block.<\/li>\n<li>Configure the Zynq block.<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-10162\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/09\/ZYBO-digital-filter-import-settings-600x476.jpg\" alt=\"ZYBO-digital-filter-import-settings\" width=\"600\" height=\"476\" data-wp-pid=\"10162\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/09\/ZYBO-digital-filter-import-settings-600x476.jpg 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/09\/ZYBO-digital-filter-import-settings.jpg 620w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/li>\n<li>Add custom Verilog modules.<\/li>\n<li>Create custom VHDL modules.<\/li>\n<li>Create and package IP block.<\/li>\n<li>Add the IP block to the repository.<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-10163\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/09\/ZYBO-digital-filter-adding-ip-block-600x557.jpg\" alt=\"ZYBO-digital-filter-adding-ip-block\" width=\"600\" height=\"557\" data-wp-pid=\"10163\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/09\/ZYBO-digital-filter-adding-ip-block-600x557.jpg 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/09\/ZYBO-digital-filter-adding-ip-block.jpg 620w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/li>\n<li>Run connection automation and connect IP blocks.<\/li>\n<li>Generate the HDL wrapper.<\/li>\n<li>Add and edit the constraints file.<\/li>\n<li>Generate the bitstream and exporting hardware.<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-10161\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/09\/ZYBO-digital-filter-generate-bitstream-600x325.jpg\" alt=\"ZYBO-digital-filter-generate-bitstream\" width=\"600\" height=\"325\" data-wp-pid=\"10161\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/09\/ZYBO-digital-filter-generate-bitstream-600x325.jpg 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/09\/ZYBO-digital-filter-generate-bitstream.jpg 1024w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/09\/ZYBO-digital-filter-generate-bitstream-800x434.jpg 800w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/li>\n<li>Set up the SDK and generate the board support package.<\/li>\n<li>Set up the code.<\/li>\n<li>Set up the debugger.<\/li>\n<li>Run the debugger.<\/li>\n<\/ol>\n<\/ol>\n<\/ol>\n<p>You can find more detail in the Instructable. Why would you want to do this? The task the team was trying to accomplish was to design and develop\u00a0real-time digital filters for bass guitar, but there are plenty of other audio applications. Let us know in the comments if you have know of any!<\/p>\n<div class='watch-action'><div class='watch-position align-left'><div class='action-like'><a class='lbg-style6 like-9926 jlk' data-task='like' data-post_id='9926' data-nonce='1cb2a57891' rel='nofollow'><img src='https:\/\/digilent.com\/blog\/wp-content\/plugins\/wti-like-post-pro\/images\/pixel.gif' title='Like' \/><span class='lc-9926 lc'>0<\/span><\/a><\/div><div class='action-unlike'><a class='unlbg-style6 unlike-9926 jlk' data-task='unlike' data-post_id='9926' data-nonce='1cb2a57891' rel='nofollow'><img src='https:\/\/digilent.com\/blog\/wp-content\/plugins\/wti-like-post-pro\/images\/pixel.gif' title='Unlike' \/><span class='unlc-9926 unlc'>0<\/span><\/a><\/div><\/div> <div class='status-9926 status align-left'>Be the 1st to vote.<\/div><\/div><div class='wti-clear'><\/div>","protected":false},"excerpt":{"rendered":"<p>A practical guide to making a digital filter for processing audio signals on the ZYBO.<\/p>\n","protected":false},"author":7,"featured_media":10164,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[35,1563],"tags":[104,144,453],"ppma_author":[4464],"class_list":["post-9926","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-fpga","category-guide","tag-project-2","tag-tutorial-2","tag-vivado"],"jetpack_featured_media_url":"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/09\/ZYBO-digital-filter-all.jpg","authors":[{"term_id":4464,"user_id":7,"is_guest":0,"slug":"amber_mear","display_name":"Amber Mear","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/d0fc56ab4035f79884675bde2a948e84c1d14dd33b730b4c142dde6f1a962395?s=96&d=mm&r=g","1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":"","9":"","10":""}],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/9926","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/comments?post=9926"}],"version-history":[{"count":0,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/9926\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/media\/10164"}],"wp:attachment":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/media?parent=9926"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/categories?post=9926"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/tags?post=9926"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=9926"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}