{"id":40124,"date":"2026-01-21T08:27:38","date_gmt":"2026-01-21T08:27:38","guid":{"rendered":"https:\/\/imperix.com\/doc\/?p=40124"},"modified":"2026-04-16T07:42:23","modified_gmt":"2026-04-16T07:42:23","slug":"upgrade-of-the-imperix-firmware-ip","status":"publish","type":"post","link":"https:\/\/imperix.com\/doc\/help\/upgrade-of-the-imperix-firmware-ip","title":{"rendered":"Upgrade of the imperix firmware IP"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 ez-toc-wrap-right-text counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/imperix.com\/doc\/help\/upgrade-of-the-imperix-firmware-ip\/#Do-I-need-to-upgrade\" >Do I need to upgrade?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/imperix.com\/doc\/help\/upgrade-of-the-imperix-firmware-ip\/#How-to-upgrade-the-imperix-firmware-IP\" >How to upgrade the imperix firmware IP<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/imperix.com\/doc\/help\/upgrade-of-the-imperix-firmware-ip\/#Upgrading-a-project-from-Gen-3-to-Gen-4\" >Upgrading a project from Gen 3 to Gen 4<\/a><\/li><\/ul><\/nav><\/div>\n\n<p>This page describes how to upgrade the imperix IP in an existing sandbox project, whether to restore compatibility with a newer SDK version or to access recent improvements. It also covers migration from a design targeting a Gen 3 controller (B-Box 3, B-Box Micro, B-Board PRO, TPI8032) to Gen 4 (B-Box 4).<\/p>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\"><strong>Note on FPGA development for imperix controllers<\/strong><br>Customizing the FPGA firmware involves instantiating the <a href=\"https:\/\/imperix.com\/doc\/help\/imperix-ip-user-guide\">imperix firmware IP<\/a> within AMD\/Xilinx Vivado to edit the surrounding programmable logic, known as the sandbox. For step-by-step instructions on creating the required FPGA sandbox template, refer to the <a href=\"https:\/\/imperix.com\/doc\/help\/getting-started-with-fpga-control-development?currentThread=getting-started-with-fpga-programming\">getting started<\/a>\u00a0guide.<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Do-I-Need-to-Upgrade?\"><span class=\"ez-toc-section\" id=\"Do-I-need-to-upgrade\"><\/span>Do I need to upgrade?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Upgrading is <strong>not always mandatory<\/strong>. Starting with SDK 2024.3, upgrading the SDK&nbsp;no longer requires re-generating the FPGA bitstream.<\/p>\n\n\n\n<p>An upgrade is only needed if:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The current firmware IP is incompatible with the target SDK version (see table below)<\/li>\n\n\n\n<li>Access to new features and improvements is desired (see change logs on the <a href=\"https:\/\/imperix.com\/doc\/help\/download-and-update-imperix-ip-for-fpga-sandbox\">download<\/a> page)<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>SDK Version<\/th><th>Compatible imperix IP<\/th><th>Minimal Vivado version required<\/th><\/tr><\/thead><tbody><tr><td>2026.1<\/td><td>3.10 Rev. 3 (Gen 3) \/ 4.0 Rev. 0 (Gen 4)<\/td><td>2023.2<\/td><\/tr><tr><td>2025.1, 2025.2, 2026.1<\/td><td>3.10 Rev. 1<\/td><td>2022.1<\/td><\/tr><tr><td>2024.3, 2025.1, 2025.2, 2026.1<\/td><td>3.10 Rev. 0<\/td><td>2022.1<\/td><\/tr><tr><td>2024.2<\/td><td>3.9 Rev. 5<\/td><td>2022.1<\/td><\/tr><tr><td>2024.1<\/td><td>3.9 Rev. 4<\/td><td>2022.1<\/td><\/tr><tr><td>3.8.x.x<\/td><td>3.8 Rev. 1<\/td><td>2022.1<\/td><\/tr><tr><td>3.7.x.x<\/td><td>3.7 Rev. 1<\/td><td>2021.1<\/td><\/tr><tr><td>3.6.x.x<\/td><td>3.6 Rev. 1<\/td><td>2019.2<\/td><\/tr><tr><td>3.4.x.x \/ 3.5.x.x<\/td><td>3.4 Rev. 1<\/td><td>2019.2<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Which-Procedure-Should-I-Follow?\"><span class=\"ez-toc-section\" id=\"How-to-upgrade-the-imperix-firmware-IP\"><\/span>How to upgrade the imperix firmware IP<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The table below indicate which procedure to follow to update the imperix firmware IP to the latest version.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Procedure A<\/strong> \u2013 Simple file replacement. The imperix firmware IP is pin-compatible; no block design changes needed.<\/li>\n\n\n\n<li><strong>Procedure B<\/strong> \u2013 Interface changes require reconnecting signals in the block design.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>imperix firmware IP version<\/th><th>SDK Version<\/th><th>Upgrade required<br>for SDK 2026.1?<\/th><th>Procedure to follow<\/th><\/tr><\/thead><tbody><tr><td>3.10 Rev. 0\u20132<\/td><td>2024.3 to 2025.2<\/td><td>No<\/td><td>Procedure A<\/td><\/tr><tr><td>3.9 Rev. 5<\/td><td>2024.2<\/td><td>Yes<\/td><td>Procedure A<\/td><\/tr><tr><td>3.9 Rev. 4 and older<\/td><td>2024.1 and older<\/td><td>Yes<\/td><td>Procedure A then Procedure B<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>How to find the current imperix IP version<\/strong><\/h3>\n\n\n\n<p> In Vivado, go to Reports \u2192 Report IP Status and look for the IMPERIX_FW IP. The version is shown in the &#8220;Current Version&#8221; column. If no revision number is displayed, the revision is 0.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"365\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_ip_table-1024x365.png\" alt=\"\" class=\"wp-image-42048\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_ip_table-1024x365.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_ip_table-300x107.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_ip_table-768x274.png 768w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_ip_table.png 1447w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">In this screenshot the imperix firmware IP version is <strong>4.0 Rev. 0<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"Procedure-A:-Update-imperix-Files-(Pin-Compatible)\">Procedure A: Update imperix files<\/h3>\n\n\n\n<p>From 3.9 Rev. 4 onwards, the imperix IP is pin-compatible, so no block design changes are needed. The procedure only consists of updating the source files and clicking &#8220;Generate Bitstream.&#8221;<\/p>\n\n\n\n<p><strong>Steps:<\/strong><\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Recommended: <strong>back up the entire project<\/strong> before making any changes.<\/li>\n\n\n\n<li><strong>Download<\/strong> the <code>FPGA_Sandbox_template_*.zip<\/code> for the target SDK version from the <a href=\"https:\/\/imperix.atlassian.net\/wiki\/spaces\/ctrl\/pages\/3716448265\">Downloads page<\/a> and unzip it.<\/li>\n\n\n\n<li><strong>Replace IP folders:<\/strong> In <code>&lt;project_dir&gt;\/ix_repo\/<\/code>, replace the <code>interfaces<\/code> and <code>ips<\/code> folders with those from the downloaded template.<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"486\" height=\"195\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_ix_repo.png\" alt=\"\" class=\"wp-image-42054\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_ix_repo.png 486w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_ix_repo-300x120.png 300w\" sizes=\"auto, (max-width: 486px) 100vw, 486px\" \/><\/figure>\n<\/div>\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li><strong>Replace constraints file:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Copy the new constraints file to <code>&lt;project_dir&gt;\/constraints\/<\/code><\/li>\n\n\n\n<li>If custom modifications were made (e.g., USR pins), <strong>transfer those changes to the new file<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"479\" height=\"195\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_constraints.png\" alt=\"\" class=\"wp-image-42056\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_constraints.png 479w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_constraints-300x122.png 300w\" sizes=\"auto, (max-width: 479px) 100vw, 479px\" \/><\/figure>\n<\/div>\n\n\n<ol start=\"5\" class=\"wp-block-list\">\n<li><strong>Update Vivado project:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Open the Vivado project<\/li>\n\n\n\n<li>Remove the old constraints file from Sources<\/li>\n\n\n\n<li>Add the new constraints file<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"423\" height=\"375\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_remove_constraints.png\" alt=\"\" class=\"wp-image-42082\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_remove_constraints.png 423w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_remove_constraints-300x266.png 300w\" sizes=\"auto, (max-width: 423px) 100vw, 423px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"338\" height=\"473\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_add_sources.png\" alt=\"\" class=\"wp-image-42061\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_add_sources.png 338w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_add_sources-214x300.png 214w\" sizes=\"auto, (max-width: 338px) 100vw, 338px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"397\" height=\"275\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_updated_constraints.png\" alt=\"\" class=\"wp-image-42062\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_updated_constraints.png 397w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_updated_constraints-300x208.png 300w\" sizes=\"auto, (max-width: 397px) 100vw, 397px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<ol start=\"6\" class=\"wp-block-list\">\n<li><strong>Upgrade the IP:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Open the <strong>Report IP Status<\/strong><\/li>\n\n\n\n<li>Right-click the imperix IP block \u2192 <strong>Upgrade IP<\/strong><\/li>\n\n\n\n<li>Warnings during upgrade are to be expected<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"233\" height=\"135\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_report_status.png\" alt=\"\" class=\"wp-image-42066\" style=\"aspect-ratio:1.726060606060606;width:257px;height:auto\"\/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"234\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_upgrade_ip.png\" alt=\"\" class=\"wp-image-42067\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_upgrade_ip.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_upgrade_ip-300x69.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_upgrade_ip-768x176.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"Procedure-B:-Update-Block-Design-(Interface-Changes)\">Procedure B: Update block design<\/h3>\n\n\n\n<p>Versions prior to 3.9 Rev. 4 introduced interface changes that are not pin-compatible. The procedure involves reconnecting signals in the block design and updating HDL files.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Back up the entire project<\/strong> before making any changes.<\/li>\n\n\n\n<li><strong>Connect <\/strong>the new <code>BBOX<\/code> interface to the top-level interface port.<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"249\" height=\"128\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_BBOX_interface.png\" alt=\"\" class=\"wp-image-42086\" style=\"aspect-ratio:1.9455535390199636;width:315px;height:auto\"\/><\/figure>\n<\/div>\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>Update the top-level ports<\/strong> for <code>private_in<\/code> and <code>private_out<\/code> to match the new sizes.<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"692\" height=\"160\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_private.png\" alt=\"\" class=\"wp-image-42090\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_private.png 692w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_private-300x69.png 300w\" sizes=\"auto, (max-width: 692px) 100vw, 692px\" \/><\/figure>\n<\/div>\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li><strong>Regenerate <\/strong>the HDL wrapper:\n<ul class=\"wp-block-list\">\n<li>Delete <code>top_wrapper.vhd<\/code><\/li>\n\n\n\n<li>Close the project<\/li>\n\n\n\n<li>Reopen the project<\/li>\n\n\n\n<li>Right-click block design \u2192 <strong>Create HDL Wrapper<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<ol start=\"5\" class=\"wp-block-list\">\n<li><strong>Update HDL files<\/strong> in <code>&lt;project_dir&gt;\/hdl\/<\/code>:\n<ul class=\"wp-block-list\">\n<li>Replace <code>AXIS_interface.vhd<\/code> with the new version<\/li>\n\n\n\n<li>Add <code>sbio_interconnect.vhd<\/code> and <code>sbio_registers.vhd<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Add sources in Vivado:<\/strong> Add the new <code>.vhd<\/code> files to the project sources.<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"396\" height=\"253\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_add_vhd.png\" alt=\"\" class=\"wp-image-42095\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_add_vhd.png 396w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_add_vhd-300x192.png 300w\" sizes=\"auto, (max-width: 396px) 100vw, 396px\" \/><\/figure>\n<\/div>\n\n\n<ol start=\"7\" class=\"wp-block-list\">\n<li><strong>If using AXI-Stream interface:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Click <strong>Refresh Changed Modules<\/strong> in Vivado<\/li>\n\n\n\n<li>Connect the <code>SBIO_BUS<\/code> interface between the imperix IP and AXIS_interface<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"673\" height=\"289\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_refresh.png\" alt=\"\" class=\"wp-image-42096\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_refresh.png 673w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_refresh-300x129.png 300w\" sizes=\"auto, (max-width: 673px) 100vw, 673px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"706\" height=\"494\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_connect_sbio.png\" alt=\"\" class=\"wp-image-42097\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_connect_sbio.png 706w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_connect_sbio-300x210.png 300w\" sizes=\"auto, (max-width: 706px) 100vw, 706px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<ol start=\"8\" class=\"wp-block-list\">\n<li><strong>If using SBI\/SBO registers:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Add the <code>sbio_registers<\/code> module to the block diagram<\/li>\n\n\n\n<li>Connect existing logic to <code>sbio_registers<\/code> (which now provides the SBI\/SBO interfaces)<\/li>\n\n\n\n<li>Connect <code>SBIO_BUS<\/code> from the imperix IP to <code>sbio_registers<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"354\" height=\"114\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_add_sbio_registers.png\" alt=\"\" class=\"wp-image-42099\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_add_sbio_registers.png 354w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_add_sbio_registers-300x97.png 300w\" sizes=\"auto, (max-width: 354px) 100vw, 354px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"708\" height=\"559\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_connect_sbio_registers.png\" alt=\"\" class=\"wp-image-42100\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_connect_sbio_registers.png 708w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_connect_sbio_registers-300x237.png 300w\" sizes=\"auto, (max-width: 708px) 100vw, 708px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<ol start=\"9\" class=\"wp-block-list\">\n<li><strong>If multiple SBIO interfaces are needed<\/strong>\n<ul class=\"wp-block-list\">\n<li>Add <code>sbio_interconnect<\/code> to the block diagram<\/li>\n\n\n\n<li>Connect it to the <code>SBIO_BUS<\/code> port of the imperix IP<\/li>\n\n\n\n<li>Use the interconnect&#8217;s multiple output ports for the relevant modules<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"726\" height=\"772\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_sbio_interconnect.png\" alt=\"\" class=\"wp-image-42105\" style=\"width:690px;height:auto\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_sbio_interconnect.png 726w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_sbio_interconnect-282x300.png 282w\" sizes=\"auto, (max-width: 726px) 100vw, 726px\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"Upgrading-a-Project-from-Gen-3-to-Gen-4\"><span class=\"ez-toc-section\" id=\"Upgrading-a-project-from-Gen-3-to-Gen-4\"><\/span>Upgrading a project from Gen 3 to Gen 4<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>This guide covers the migration of an existing FPGA sandbox project from Gen 3 (imperix IP 3.10+) to Gen 4 (imperix IP 4.0) hardware.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"Migration-Procedure\">Migration Procedure<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Back up the entire project<\/strong> before making any changes.<\/li>\n\n\n\n<li><strong>Change the Target Device<\/strong>\n<ul class=\"wp-block-list\">\n<li>Open the project in Vivado 2023.2 or later<\/li>\n\n\n\n<li>Go to <strong>Settings \u2192 General \u2192 Project device<\/strong><\/li>\n\n\n\n<li>Change the device from <code>xc7z030fbg676-3<\/code> to <code>xczu7ev-ffvc1156-2-i<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"891\" height=\"542\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_change_device.png\" alt=\"\" class=\"wp-image-42115\" style=\"aspect-ratio:1.643971538612181;width:621px;height:auto\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_change_device.png 891w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_change_device-300x182.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_change_device-768x467.png 768w\" sizes=\"auto, (max-width: 891px) 100vw, 891px\" \/><\/figure>\n<\/div>\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>Replace the imperix IP<\/strong>\n<ul class=\"wp-block-list\">\n<li>Navigate to the project directory: <code>&lt;project_dir&gt;\/ix_repo\/ips\/<\/code><\/li>\n\n\n\n<li>Delete the existing imperix IP folder<\/li>\n\n\n\n<li>Copy the imperix IP from the Gen 4 template (<code>ix_repo\/ips\/<\/code>) into the project<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Refresh IP Repositories<\/strong>\n<ul class=\"wp-block-list\">\n<li>In Vivado, open the <strong>IP Catalog<\/strong><\/li>\n\n\n\n<li>Right-click and select <strong>Refresh All Repositories<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"554\" height=\"503\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_refresh_catalog.png\" alt=\"\" class=\"wp-image-42121\" style=\"aspect-ratio:1.1014608765259155;width:392px;height:auto\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_refresh_catalog.png 554w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_refresh_catalog-300x272.png 300w\" sizes=\"auto, (max-width: 554px) 100vw, 554px\" \/><\/figure>\n<\/div>\n\n\n<ol start=\"5\" class=\"wp-block-list\">\n<li><strong>Upgrade IPs<\/strong>\n<ul class=\"wp-block-list\">\n<li>Open the <strong>IP Status<\/strong> window (Reports \u2192 Report IP Status)<\/li>\n\n\n\n<li>Click <strong>Rerun<\/strong> to refresh the status<\/li>\n\n\n\n<li>Select all outdated IPs and click <strong>Upgrade Selected<\/strong><\/li>\n\n\n\n<li>Warnings during upgrade are to be expected<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"222\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_upgrade_ip_bb4-1024x222.png\" alt=\"\" class=\"wp-image-42124\" style=\"aspect-ratio:4.612876637054676;width:761px;height:auto\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_upgrade_ip_bb4-1024x222.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_upgrade_ip_bb4-300x65.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_upgrade_ip_bb4-768x167.png 768w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_upgrade_ip_bb4-1536x334.png 1536w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_upgrade_ip_bb4.png 1810w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<ol start=\"6\" class=\"wp-block-list\">\n<li><strong>Replace the Constraints File<\/strong>\n<ul class=\"wp-block-list\">\n<li>If custom modifications were made to the constraints file, those changes must be manually transferred to the new file.<\/li>\n\n\n\n<li>Copy the constraints file from the Gen 4 template (<code>constraints\/<\/code>) to the project&#8217;s <code>constraints\/<\/code> folder, replacing the old file<\/li>\n\n\n\n<li>In Vivado, go to the <strong>Sources<\/strong> tab<\/li>\n\n\n\n<li>Remove the old constraints file from the project<\/li>\n\n\n\n<li>Add the new constraints file<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"368\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_constraints_bb4.png\" alt=\"\" class=\"wp-image-42131\" style=\"width:475px;height:auto\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_constraints_bb4.png 525w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_constraints_bb4-300x210.png 300w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/figure>\n<\/div>\n\n\n<ol start=\"7\" class=\"wp-block-list\">\n<li><strong>Update Block Design Ports<\/strong><\/li>\n<\/ol>\n\n\n\n<p style=\"padding-left:var(--wp--preset--spacing--60)\">The Gen 4 design has different external ports. Several ports from Gen 3 no longer exist or have changed sizes, and new ports must be created.<\/p>\n\n\n\n<figure class=\"wp-block-table aligncenter has-small-font-size\" style=\"margin-right:var(--wp--preset--spacing--80);margin-left:var(--wp--preset--spacing--80)\"><table class=\"has-fixed-layout\" style=\"border-width:1px\"><thead><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>Action<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Signals \/ Ports<\/strong><\/td><\/tr><\/thead><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>Remove<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><code>flt<\/code>, <code>gpi<\/code>, <code>gpo<\/code>, <code>pwm<\/code>, <code>private_in<\/code>, <code>private_out<\/code><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>Keep<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><code>BBOX<\/code>, <code>DDR<\/code>, <code>FIXED_IO<\/code><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>Create<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><code>private_in<\/code>, <code>din<\/code>, <code>dout<\/code>, <code>private_io<\/code>, <code>private_out<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p style=\"padding-left:var(--wp--preset--spacing--60)\">There are two options for this step:<\/p>\n\n\n\n<p style=\"padding-right:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--60)\"><strong>Option A:  Automated Script (Recommended)<\/strong><\/p>\n\n\n\n<p style=\"padding-right:0;padding-left:var(--wp--preset--spacing--60)\">If no custom use of external ports (such as <code>gpi<\/code> or <code>pwm<\/code>) was made, the provided Tcl script can automate the port changes.<br> 1. Download the migration script:<\/p>\n\n\n\n<div class=\"wp-block-file aligncenter\"><a href=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/gen3_to_gen4_migration.zip\" class=\"wp-block-file__button wp-element-button\" download>Download <strong>gen3_to_gen4_migration.zip<\/strong><\/a><\/div>\n\n\n\n<p style=\"padding-right:0;padding-left:var(--wp--preset--spacing--60)\"><br> 2. Unzip it and place it in the <code>scripts\/<\/code> folder at the root of the project<br> 3. In the Vivado Tcl Console, run:<\/p>\n\n\n<pre class=\"wp-block-code\" style=\"margin-top:0;margin-bottom:0;padding-right:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--70)\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"Tcl\" data-shcb-language-slug=\"tcl\"><span><code class=\"hljs language-tcl shcb-code-table shcb-line-numbers\"><span class='shcb-loc'><span><span class=\"hljs-keyword\">cd<\/span> &#91;get_property DIRECTORY &#91;current_project]]\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-keyword\">source<\/span> ..\/..\/scripts\/gen3_to_gen4_migration.tcl\n<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Tcl<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">tcl<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p style=\"padding-left:var(--wp--preset--spacing--60)\">The script will remove obsolete ports, create and connect new external ports, and regenerate the HDL wrapper.<\/p>\n\n\n\n<p style=\"padding-left:var(--wp--preset--spacing--60)\"><strong>Option B:  Manual Update<\/strong><\/p>\n\n\n\n<p style=\"padding-left:var(--wp--preset--spacing--60)\">1. In the block design, delete the obsolete ports listed above<br>2. On the IXIP block, right-click the <code>private_in<\/code>, <code>din<\/code>, <code>dout<\/code>, <code>private_io<\/code>, and <code>private_out<\/code> pins and select            <strong>Make External<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"825\" height=\"723\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_make_externalv3.png\" alt=\"\" class=\"wp-image-42194\" style=\"aspect-ratio:1.141096511101042;width:629px;height:auto\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_make_externalv3.png 825w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_make_externalv3-300x263.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/PN174_make_externalv3-768x673.png 768w\" sizes=\"auto, (max-width: 825px) 100vw, 825px\" \/><\/figure>\n<\/div>\n\n\n<p style=\"padding-left:var(--wp--preset--spacing--60)\">3. Rename each new port by removing the <code>_0<\/code> suffix<br>4. In the <strong>Sources<\/strong> tab, delete the existing <code>top_wrapper.vhd<\/code> (or <code>.v<\/code>)<br>5. Right-click on the block design file and select <strong>Create HDL Wrapper<\/strong><br>6. Wait for Vivado to finish updating<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"Additional-Considerations\">Additional considerations<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Accessing additional ADC channels with the AXI4-Stream interface<\/h4>\n\n\n\n<p>Gen 4 provides 24 ADC channels compared to 16 on Gen 3. To access the additional channels replace <code>AXIS_interface.vhd<\/code> with <code>AXIS_interface_24adc.vhd<\/code><\/p>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">The original <code>AXIS_interface.vhd<\/code> remains compatible but only provides access to 16 of the 24 channels.<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Updating the PWM port width<\/h4>\n\n\n\n<p>The <code>sb_pwm<\/code> port has been extended from 32-bit to 48-bit. If the design uses this port, update the signal width to avoid warnings.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"Aurora-Users:-Manual-Migration-Required\">Using SFP port with Aurora IP<\/h4>\n\n\n\n<p>If the Gen 3 project uses Aurora for SFP communication, manual work is required to port the design. The Aurora IP configuration and interfaces have evolved between device families, so parameter settings and connections will likely need adjustment.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Final verification<\/h4>\n\n\n\n<p>After completing the migration, we recommend to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Run Validate Design on the block design<\/li>\n\n\n\n<li>Run synthesis and review any warnings<\/li>\n\n\n\n<li>Verify that all custom logic connections are intact<\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"Legacy-IPs-for-older-SDKs\">Legacy IPs for older SDKs<\/h1>\n\n\n\n<p>For users who need to maintain older projects.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><th class=\"has-text-align-left\" data-align=\"left\"><strong>C++ or ACG SDK<\/strong><\/th><th class=\"has-text-align-left\" data-align=\"left\"><strong>imperix IP version<\/strong><\/th><th class=\"has-text-align-left\" data-align=\"left\"><strong>Minimal Vivado version required<\/strong><\/th><th class=\"has-text-align-left\" data-align=\"left\"><strong>Download<\/strong><\/th><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">3.4.x.x<br>3.5.x.x<\/td><td class=\"has-text-align-left\" data-align=\"left\">3.4 Rev. 1<\/td><td class=\"has-text-align-left\" data-align=\"left\">2019.2<\/td><td class=\"has-text-align-left\" data-align=\"left\"><a href=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/sandbox_sources_3.4_3.5_2019.2.zip\"><u>sandbox_sources_3.4.zip<\/u><\/a><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">3.6.x.x<\/td><td class=\"has-text-align-left\" data-align=\"left\">3.6 Rev. 1<\/td><td class=\"has-text-align-left\" data-align=\"left\">2019.2<\/td><td class=\"has-text-align-left\" data-align=\"left\"><a href=\"https:\/\/cdn.imperix.com\/doc\/wp-content\/uploads\/2021\/06\/sandbox_sources_3.6.zip\"><u>sandbox_sources_3.6.zip<\/u><\/a><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">3.7.x.x<\/td><td class=\"has-text-align-left\" data-align=\"left\">3.7 Rev. 1<\/td><td class=\"has-text-align-left\" data-align=\"left\">2021.1<\/td><td class=\"has-text-align-left\" data-align=\"left\"><a href=\"https:\/\/cdn.imperix.com\/doc\/wp-content\/uploads\/2021\/06\/sandbox_sources_3.7_v2.zip\"><u>sandbox_sources_3.7.zip<\/u><\/a><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">3.8.x.x<\/td><td class=\"has-text-align-left\" data-align=\"left\">3.8 Rev. 1<\/td><td class=\"has-text-align-left\" data-align=\"left\">2022.1<\/td><td class=\"has-text-align-left\" data-align=\"left\"><a href=\"https:\/\/cdn.imperix.com\/doc\/wp-content\/uploads\/2021\/06\/sandbox_sources_3.8.zip\"><u>sandbox_sources_3.8.zip<\/u><\/a><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><em>internal only<\/em><\/td><td class=\"has-text-align-left\" data-align=\"left\">3.9 Rev. 1 to 3<\/td><td class=\"has-text-align-left\" data-align=\"left\">2022.1<\/td><td class=\"has-text-align-left\" data-align=\"left\"><em>internal only<\/em><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">2024.1<\/td><td class=\"has-text-align-left\" data-align=\"left\">3.9 Rev. 4<\/td><td class=\"has-text-align-left\" data-align=\"left\">2022.1<\/td><td class=\"has-text-align-left\" data-align=\"left\"><a href=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/06\/FPGA_Sandbox_template_3.9rev4.zip\"><u>Sandbox_template_3.9rev4.zip<\/u><\/a><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">2024.2<\/td><td class=\"has-text-align-left\" data-align=\"left\">3.9 Rev. 5<\/td><td class=\"has-text-align-left\" data-align=\"left\">2022.1<\/td><td class=\"has-text-align-left\" data-align=\"left\"><a href=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/FPGA_Sandbox_template_3.9rev5.zip\"><u>Sandbox_template_3.9rev5.zip<\/u><\/a><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This page describes how to upgrade the imperix IP in an existing sandbox project, whether to restore compatibility with a newer SDK version or to&#8230;<\/p>\n","protected":false},"author":17,"featured_media":2995,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[3],"tags":[17],"software-environments":[106],"provided-results":[],"related-products":[50,31,32,92,166,110],"guidedreadings":[],"tutorials":[],"user-manuals":[142],"coauthors":[82],"class_list":["post-40124","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-help","tag-fpga-programming","software-environments-fpga","related-products-acg-sdk","related-products-b-board-pro","related-products-b-box-rcp","related-products-b-box-micro","related-products-b-box-rcp-3-0","related-products-tpi","user-manuals-going-further-with-fpga-programming"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Upgrade of the imperix firmware IP - imperix<\/title>\n<meta name=\"description\" content=\"This page details how to upgrade an existing FPGA design for imperix devices when updating the source firmware and files.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/imperix.com\/doc\/help\/upgrade-of-the-imperix-firmware-ip\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Upgrade of the imperix firmware IP - imperix\" \/>\n<meta property=\"og:description\" content=\"This page details how to upgrade an existing FPGA design for imperix devices when updating the source firmware and files.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/imperix.com\/doc\/help\/upgrade-of-the-imperix-firmware-ip\" \/>\n<meta property=\"og:site_name\" content=\"imperix\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-21T08:27:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-16T07:42:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/3_2_ratio_PN116.png\" \/>\n\t<meta property=\"og:image:width\" content=\"450\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Fran\u00e7ois Ledent\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fran\u00e7ois Ledent\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/upgrade-of-the-imperix-firmware-ip#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/upgrade-of-the-imperix-firmware-ip\"},\"author\":{\"name\":\"Fran\u00e7ois Ledent\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/person\\\/1a0c3f44c7b64b1fd38dec245646aa8c\"},\"headline\":\"Upgrade of the imperix firmware IP\",\"datePublished\":\"2026-01-21T08:27:38+00:00\",\"dateModified\":\"2026-04-16T07:42:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/upgrade-of-the-imperix-firmware-ip\"},\"wordCount\":1213,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/upgrade-of-the-imperix-firmware-ip#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/3_2_ratio_PN116.png\",\"keywords\":[\"FPGA programming\"],\"articleSection\":[\"Product notes\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/upgrade-of-the-imperix-firmware-ip#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/upgrade-of-the-imperix-firmware-ip\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/upgrade-of-the-imperix-firmware-ip\",\"name\":\"Upgrade of the imperix firmware IP - imperix\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/upgrade-of-the-imperix-firmware-ip#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/upgrade-of-the-imperix-firmware-ip#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/3_2_ratio_PN116.png\",\"datePublished\":\"2026-01-21T08:27:38+00:00\",\"dateModified\":\"2026-04-16T07:42:23+00:00\",\"description\":\"This page details how to upgrade an existing FPGA design for imperix devices when updating the source firmware and files.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/upgrade-of-the-imperix-firmware-ip#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/upgrade-of-the-imperix-firmware-ip\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/upgrade-of-the-imperix-firmware-ip#primaryimage\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/3_2_ratio_PN116.png\",\"contentUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/3_2_ratio_PN116.png\",\"width\":450,\"height\":300,\"caption\":\"imperix firmware IP and user HDL code\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/upgrade-of-the-imperix-firmware-ip#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Knowledge base\",\"item\":\"https:\\\/\\\/imperix.com\\\/doc\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Product notes\",\"item\":\"https:\\\/\\\/imperix.com\\\/doc\\\/category\\\/help\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Upgrade of the imperix firmware IP\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#website\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/\",\"name\":\"imperix\",\"description\":\"power electronics\",\"publisher\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/imperix.com\\\/doc\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\",\"name\":\"imperix\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/imperix_logo.png\",\"contentUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/imperix_logo.png\",\"width\":350,\"height\":120,\"caption\":\"imperix\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/person\\\/1a0c3f44c7b64b1fd38dec245646aa8c\",\"name\":\"Fran\u00e7ois Ledent\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2021b1358e31ad6f0aa701e6470e41e82025de794c9a6b2014338cbea729454b?s=96&d=mm&r=g6a16fb4ee9f5452cba63eb2a62f66a0f\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2021b1358e31ad6f0aa701e6470e41e82025de794c9a6b2014338cbea729454b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2021b1358e31ad6f0aa701e6470e41e82025de794c9a6b2014338cbea729454b?s=96&d=mm&r=g\",\"caption\":\"Fran\u00e7ois Ledent\"},\"description\":\"Fran\u00e7ois is an electrical engineer working mainly on power applications and low-level FPGA developments. On the knowledge base, he is the author of several articles on a broad range of applications.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/francois-ledent\\\/\"],\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/author\\\/ledent\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Upgrade of the imperix firmware IP - imperix","description":"This page details how to upgrade an existing FPGA design for imperix devices when updating the source firmware and files.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/imperix.com\/doc\/help\/upgrade-of-the-imperix-firmware-ip","og_locale":"en_US","og_type":"article","og_title":"Upgrade of the imperix firmware IP - imperix","og_description":"This page details how to upgrade an existing FPGA design for imperix devices when updating the source firmware and files.","og_url":"https:\/\/imperix.com\/doc\/help\/upgrade-of-the-imperix-firmware-ip","og_site_name":"imperix","article_published_time":"2026-01-21T08:27:38+00:00","article_modified_time":"2026-04-16T07:42:23+00:00","og_image":[{"width":450,"height":300,"url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/3_2_ratio_PN116.png","type":"image\/png"}],"author":"Fran\u00e7ois Ledent","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Fran\u00e7ois Ledent","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/imperix.com\/doc\/help\/upgrade-of-the-imperix-firmware-ip#article","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/help\/upgrade-of-the-imperix-firmware-ip"},"author":{"name":"Fran\u00e7ois Ledent","@id":"https:\/\/imperix.com\/doc\/#\/schema\/person\/1a0c3f44c7b64b1fd38dec245646aa8c"},"headline":"Upgrade of the imperix firmware IP","datePublished":"2026-01-21T08:27:38+00:00","dateModified":"2026-04-16T07:42:23+00:00","mainEntityOfPage":{"@id":"https:\/\/imperix.com\/doc\/help\/upgrade-of-the-imperix-firmware-ip"},"wordCount":1213,"commentCount":0,"publisher":{"@id":"https:\/\/imperix.com\/doc\/#organization"},"image":{"@id":"https:\/\/imperix.com\/doc\/help\/upgrade-of-the-imperix-firmware-ip#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/3_2_ratio_PN116.png","keywords":["FPGA programming"],"articleSection":["Product notes"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/imperix.com\/doc\/help\/upgrade-of-the-imperix-firmware-ip#respond"]}]},{"@type":"WebPage","@id":"https:\/\/imperix.com\/doc\/help\/upgrade-of-the-imperix-firmware-ip","url":"https:\/\/imperix.com\/doc\/help\/upgrade-of-the-imperix-firmware-ip","name":"Upgrade of the imperix firmware IP - imperix","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/#website"},"primaryImageOfPage":{"@id":"https:\/\/imperix.com\/doc\/help\/upgrade-of-the-imperix-firmware-ip#primaryimage"},"image":{"@id":"https:\/\/imperix.com\/doc\/help\/upgrade-of-the-imperix-firmware-ip#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/3_2_ratio_PN116.png","datePublished":"2026-01-21T08:27:38+00:00","dateModified":"2026-04-16T07:42:23+00:00","description":"This page details how to upgrade an existing FPGA design for imperix devices when updating the source firmware and files.","breadcrumb":{"@id":"https:\/\/imperix.com\/doc\/help\/upgrade-of-the-imperix-firmware-ip#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/imperix.com\/doc\/help\/upgrade-of-the-imperix-firmware-ip"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imperix.com\/doc\/help\/upgrade-of-the-imperix-firmware-ip#primaryimage","url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/3_2_ratio_PN116.png","contentUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/3_2_ratio_PN116.png","width":450,"height":300,"caption":"imperix firmware IP and user HDL code"},{"@type":"BreadcrumbList","@id":"https:\/\/imperix.com\/doc\/help\/upgrade-of-the-imperix-firmware-ip#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Knowledge base","item":"https:\/\/imperix.com\/doc\/"},{"@type":"ListItem","position":2,"name":"Product notes","item":"https:\/\/imperix.com\/doc\/category\/help"},{"@type":"ListItem","position":3,"name":"Upgrade of the imperix firmware IP"}]},{"@type":"WebSite","@id":"https:\/\/imperix.com\/doc\/#website","url":"https:\/\/imperix.com\/doc\/","name":"imperix","description":"power electronics","publisher":{"@id":"https:\/\/imperix.com\/doc\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/imperix.com\/doc\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/imperix.com\/doc\/#organization","name":"imperix","url":"https:\/\/imperix.com\/doc\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imperix.com\/doc\/#\/schema\/logo\/image\/","url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/imperix_logo.png","contentUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/imperix_logo.png","width":350,"height":120,"caption":"imperix"},"image":{"@id":"https:\/\/imperix.com\/doc\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/imperix.com\/doc\/#\/schema\/person\/1a0c3f44c7b64b1fd38dec245646aa8c","name":"Fran\u00e7ois Ledent","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/2021b1358e31ad6f0aa701e6470e41e82025de794c9a6b2014338cbea729454b?s=96&d=mm&r=g6a16fb4ee9f5452cba63eb2a62f66a0f","url":"https:\/\/secure.gravatar.com\/avatar\/2021b1358e31ad6f0aa701e6470e41e82025de794c9a6b2014338cbea729454b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2021b1358e31ad6f0aa701e6470e41e82025de794c9a6b2014338cbea729454b?s=96&d=mm&r=g","caption":"Fran\u00e7ois Ledent"},"description":"Fran\u00e7ois is an electrical engineer working mainly on power applications and low-level FPGA developments. On the knowledge base, he is the author of several articles on a broad range of applications.","sameAs":["https:\/\/www.linkedin.com\/in\/francois-ledent\/"],"url":"https:\/\/imperix.com\/doc\/author\/ledent"}]}},"_links":{"self":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/40124","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/users\/17"}],"replies":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/comments?post=40124"}],"version-history":[{"count":43,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/40124\/revisions"}],"predecessor-version":[{"id":45279,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/40124\/revisions\/45279"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/media\/2995"}],"wp:attachment":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/media?parent=40124"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/categories?post=40124"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tags?post=40124"},{"taxonomy":"software-environments","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/software-environments?post=40124"},{"taxonomy":"provided-results","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/provided-results?post=40124"},{"taxonomy":"related-products","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/related-products?post=40124"},{"taxonomy":"guidedreadings","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/guidedreadings?post=40124"},{"taxonomy":"tutorials","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tutorials?post=40124"},{"taxonomy":"user-manuals","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/user-manuals?post=40124"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/coauthors?post=40124"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}