{"id":9822,"date":"2015-09-02T09:15:00","date_gmt":"2015-09-02T16:15:00","guid":{"rendered":"https:\/\/blog.digilentinc.com\/?p=9822"},"modified":"2015-09-01T14:06:28","modified_gmt":"2015-09-01T21:06:28","slug":"converting-from-ucf-to-xdc-file","status":"publish","type":"post","link":"https:\/\/digilent.com\/blog\/converting-from-ucf-to-xdc-file\/","title":{"rendered":"Converting from UCF to XDC file"},"content":{"rendered":"<p>A little while ago, I wrote <a href=\"https:\/\/digilent.com\/blog\/index.php\/the-constraints-file-also-known-as-magical-moving-stairs\/\">a post<\/a> introducing everyone to the constraints file. The file that maps nets to physical pins in an FPGA design. If you missed that post, you can check it out here. Part of the reason I wrote that post was because of the increasing number of Forum questions regarding constraints files, and converting projects from <a href=\"http:\/\/www.xilinx.com\/products\/design-tools\/ise-design-suite.html\">Xilinx ISE<\/a> to <a href=\"http:\/\/www.xilinx.com\/products\/design-tools\/vivado.html\">Xilinx Vivado<\/a>.<\/p>\n<figure id=\"attachment_9825\" aria-describedby=\"caption-attachment-9825\" style=\"width: 1081px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.xilinx.com\/products\/design-tools\/vivado.html\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9825 size-full\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/08\/ise-and-vivado.jpg\" alt=\"Xilinx ISE and Vivado side by side.\" width=\"1081\" height=\"363\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/08\/ise-and-vivado.jpg 1081w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/08\/ise-and-vivado-600x201.jpg 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/08\/ise-and-vivado-1024x344.jpg 1024w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/08\/ise-and-vivado-1078x363.jpg 1078w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/08\/ise-and-vivado-800x269.jpg 800w\" sizes=\"auto, (max-width: 1081px) 100vw, 1081px\" \/><\/a><figcaption id=\"caption-attachment-9825\" class=\"wp-caption-text\">Xilinx ISE and Vivado side by side.<\/figcaption><\/figure>\n<p>If the project contains no IPs, then all you have to do is convert the UCF file into a XDC file. However, if you don&#8217;t understand what the file is for or have never worked with one, it can be a little confusing. So I wrote the post introducing the constraints file, UCF and XDC being constraint files.<\/p>\n<figure id=\"attachment_9824\" aria-describedby=\"caption-attachment-9824\" style=\"width: 1024px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/digilent.com\/blog\/Products\/Detail.cfm?NavPath=2,1301,1319&amp;Prod=NEXYS4DDR\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9824 size-full\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/08\/FSIOP6AIDU2PPKC.jpg\" alt=\"A side by side image of the XDC and UCF files for the Nexys 4 DDR.\" width=\"1024\" height=\"402\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/08\/FSIOP6AIDU2PPKC.jpg 1024w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/08\/FSIOP6AIDU2PPKC-600x236.jpg 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/08\/FSIOP6AIDU2PPKC-800x314.jpg 800w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption id=\"caption-attachment-9824\" class=\"wp-caption-text\">A side by side image of the XDC and UCF files for the <a href=\"https:\/\/digilent.com\/blog\/Products\/Detail.cfm?NavPath=2,1301,1319&amp;Prod=NEXYS4DDR\">Nexys 4 DDR<\/a>.<\/figcaption><\/figure>\n<p>However, I discovered that it might be useful to write a guide on how to convert from UCF to XDC file. There are a few reasons that you may have to do this. For example, if you upgrade your board from an ISE-compatible board to one that&#8217;s only compatible with Vivado,\u00a0like the changing from <a href=\"https:\/\/digilent.com\/blog\/Products\/Detail.cfm?NavPath=2,400,897&amp;Prod=NEXYS3\">Nexys 3<\/a> to <a href=\"https:\/\/digilent.com\/blog\/Products\/Detail.cfm?NavPath=2,400,1288&amp;Prod=BASYS3\">Basys 3<\/a>, or <a href=\"https:\/\/digilent.com\/blog\/Products\/Detail.cfm?NavPath=2,400,790&amp;Prod=BASYS2\">Basys 2<\/a> to Basys 3. Alternatively, you could be upgrading software by choice, like with the Nexys 4 DDR, which is compatible with both ISE and Vivado. And lastly, you could be trying to use an old demo written for a different board than the one you have.<\/p>\n<p>Either way the steps are the same:<\/p>\n<ol>\n<li>Download the Master XDC for the new board.<\/li>\n<\/ol>\n<figure id=\"attachment_9826\" aria-describedby=\"caption-attachment-9826\" style=\"width: 813px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/digilent.com\/blog\/Products\/Detail.cfm?NavPath=2,1301,1319&amp;Prod=NEXYS4DDR\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9826 size-full\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/08\/xdcfile.png\" alt=\"The bottom of the Nexys4DDR product page showing the XDC file.\" width=\"813\" height=\"294\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/08\/xdcfile.png 813w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/08\/xdcfile-600x217.png 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/08\/xdcfile-800x289.png 800w\" sizes=\"auto, (max-width: 813px) 100vw, 813px\" \/><\/a><figcaption id=\"caption-attachment-9826\" class=\"wp-caption-text\">The bottom of the Nexys 4 DDR product page showing the XDC file.<\/figcaption><\/figure>\n<p>2.\u00a0Find all the nets in use in the old UCF file.<\/p>\n<figure id=\"attachment_9827\" aria-describedby=\"caption-attachment-9827\" style=\"width: 405px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.instructables.com\/id\/How-to-convert-from-UCF-to-XDC-file\/\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9827 size-full\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/08\/1-comment-line.jpg\" alt=\"Nets in use are the uncommented lines. \" width=\"405\" height=\"180\" \/><\/a><figcaption id=\"caption-attachment-9827\" class=\"wp-caption-text\">Nets in use are the un-commented lines.<\/figcaption><\/figure>\n<p>3.\u00a0Find those same components in the new XDC file.<\/p>\n<figure id=\"attachment_9828\" aria-describedby=\"caption-attachment-9828\" style=\"width: 784px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.instructables.com\/id\/How-to-convert-from-UCF-to-XDC-file\/\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9828 size-full\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/08\/5-findstuff.jpg\" alt=\"You can find the components based on the commented headers.\" width=\"784\" height=\"747\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/08\/5-findstuff.jpg 784w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/08\/5-findstuff-600x572.jpg 600w\" sizes=\"auto, (max-width: 784px) 100vw, 784px\" \/><\/a><figcaption id=\"caption-attachment-9828\" class=\"wp-caption-text\">You can find the components based on the commented headers.<\/figcaption><\/figure>\n<p>4.\u00a0Un-comment those nets.<\/p>\n<p>5.\u00a0Change the net names to match the old file.<\/p>\n<figure id=\"attachment_9830\" aria-describedby=\"caption-attachment-9830\" style=\"width: 698px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.instructables.com\/id\/How-to-convert-from-UCF-to-XDC-file\/\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9830 size-full\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/08\/4-changing-next-names.jpg\" alt=\"The switches uncommented and net names changed. \" width=\"698\" height=\"256\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/08\/4-changing-next-names.jpg 698w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/08\/4-changing-next-names-600x220.jpg 600w\" sizes=\"auto, (max-width: 698px) 100vw, 698px\" \/><\/a><figcaption id=\"caption-attachment-9830\" class=\"wp-caption-text\">The switches un-commented and net names changed.<\/figcaption><\/figure>\n<p>To view the full, more detailed instructions you can view the <a href=\"http:\/\/www.instructables.com\/id\/How-to-convert-from-UCF-to-XDC-file\/\">instructable here<\/a>.<\/p>\n<div class='watch-action'><div class='watch-position align-left'><div class='action-like'><a class='lbg-style6 like-9822 jlk' data-task='like' data-post_id='9822' data-nonce='4d1b41d1d7' rel='nofollow'><img src='https:\/\/digilent.com\/blog\/wp-content\/plugins\/wti-like-post-pro\/images\/pixel.gif' title='Like' \/><span class='lc-9822 lc'>+1<\/span><\/a><\/div><div class='action-unlike'><a class='unlbg-style6 unlike-9822 jlk' data-task='unlike' data-post_id='9822' data-nonce='4d1b41d1d7' rel='nofollow'><img src='https:\/\/digilent.com\/blog\/wp-content\/plugins\/wti-like-post-pro\/images\/pixel.gif' title='Unlike' \/><span class='unlc-9822 unlc'>0<\/span><\/a><\/div><\/div> <div class='status-9822 status align-left'><\/div><\/div><div class='wti-clear'><\/div>","protected":false},"excerpt":{"rendered":"<p>How and why you&#8217;d convert UCF files to XDC files.<\/p>\n","protected":false},"author":18,"featured_media":9824,"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,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[35,1563],"tags":[453],"ppma_author":[4466],"class_list":["post-9822","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-fpga","category-guide","tag-vivado"],"jetpack_featured_media_url":"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2015\/08\/FSIOP6AIDU2PPKC.jpg","jetpack_sharing_enabled":true,"authors":[{"term_id":4466,"user_id":18,"is_guest":0,"slug":"kaitlyn","display_name":"Kaitlyn Franz","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/9276021eaa44781ce19f364cfca46ada25e1500769cf4803a095a5bae83c912a?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\/9822","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\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/comments?post=9822"}],"version-history":[{"count":0,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/9822\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/media\/9824"}],"wp:attachment":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/media?parent=9822"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/categories?post=9822"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/tags?post=9822"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=9822"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}