{"id":40527,"date":"2026-02-02T13:32:30","date_gmt":"2026-02-02T13:32:30","guid":{"rendered":"https:\/\/imperix.com\/doc\/?p=40527"},"modified":"2026-04-06T13:38:16","modified_gmt":"2026-04-06T13:38:16","slug":"aurora-link-with-opal-rt-via-sfp","status":"publish","type":"post","link":"https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp","title":{"rendered":"Aurora link with OPAL-RT via SFP"},"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\/aurora-link-with-opal-rt-via-sfp\/#Case-study\" >Case study<\/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\/aurora-link-with-opal-rt-via-sfp\/#Required-software\" >Required software<\/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\/aurora-link-with-opal-rt-via-sfp\/#Downloads\" >Downloads<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp\/#OP4510-project\" >OP4510 project<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp\/#Simulink-model\" >Simulink model<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp\/#Two-SFP-interfaces\" >Two SFP interfaces<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp\/#Import-in-RT-LAB\" >Import in RT-LAB<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp\/#Communication-chain\" >Communication chain<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp\/#Overview\" >Overview<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp\/#Vivado-project\" >Vivado project<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp\/#ModulesIPs-description\" >Modules\/IPs description<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp\/#Aurora-parameters\" >Aurora parameters<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp\/#Experimental-validation\" >Experimental validation<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp\/#Physical-setup\" >Physical setup<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp\/#Software-side-setup\" >Software-side setup<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp\/#Real-time-monitoring\" >Real-time monitoring<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n\n<p>This page presents a practical example of Aurora communication with OPAL-RT simulators, specifically the OP4510 and OP4512. It provides a ready-to-use user application, along with an FPGA design specifically configured for interfacing OPAL-RT simulators.<\/p>\n\n\n\n<p>To demonstrate the setup, this page also includes pre-configured fully functional RT-LAB project for the OPAL-RT simulator implementing a simple loopback example. In this example, a three-phase sine wave is transmitted from the imperix controller, multiplied by two in the simulator, and sent back to the controller.<\/p>\n\n\n\n<p>To support a broader range of use cases, the RT-LAB project deployed on the OPAL-RT target instantiates two SFP interfaces. The first interface is managed by <a href=\"https:\/\/www.opal-rt.com\/software\/software-toolboxes\/ehs\/\">eHS<\/a>, OPAL-RT\u2019s FPGA-based electrical toolbox and solver, while the second interface is controlled by the simulator\u2019s CPU.<\/p>\n\n\n\n<p>For broader technical background, a general introduction to <a href=\"https:\/\/imperix.com\/doc\/help\/sfp-communication-with-third-party-devices\">SFP communication with third-party devices<\/a> is available. That page covers fundamental SFP considerations, describes the full communication chain, and provides guidance on implementing the imperix-side drivers.<\/p>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">Similar pages are available for Plexim and Typhoon devices in <a href=\"https:\/\/imperix.com\/doc\/help\/aurora-link-with-plexim-via-sfp\">Aurora link with Plexim via SFP<\/a> and <a href=\"https:\/\/imperix.com\/doc\/help\/aurora-link-with-typhoon-via-sfp\">Aurora link with Typhoon via SFP<\/a>.<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Case-study\"><\/span>Case study<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>This case study demonstrates a straightforward signal processing loop:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The controller generates a three-phase sine wave and transmits it to an OPAL-RT OP4510 via SFP.<\/li>\n\n\n\n<li>Upon receipt, the OP4510 applies a gain of two to the three signals \u2013 doubling the amplitude of the sine wave \u2013 and returns them to the controller, also via SFP.<\/li>\n\n\n\n<li>Finally, the original transmitted values and the received return signals are compared in real-time in Cockpit, showing the proper operation of the system.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"514\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_aurora_loopback_example_op4510-1024x514.png\" alt=\"Illustration of the loopback example.\" class=\"wp-image-40743\" style=\"aspect-ratio:1.9922474487777866;width:415px;height:auto\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_aurora_loopback_example_op4510-1024x514.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_aurora_loopback_example_op4510-300x151.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_aurora_loopback_example_op4510-768x386.png 768w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_aurora_loopback_example_op4510-1536x771.png 1536w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_aurora_loopback_example_op4510.png 2003w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"required-software\"><span class=\"ez-toc-section\" id=\"Required-software\"><\/span>Required software<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Vivado Design Suite<\/strong> (version <strong>2022.1<\/strong> is recommended)<br>The <a href=\"https:\/\/imperix.com\/doc\/help\/vivado-design-suite-installation?currentThread=getting-started-with-fpga-programming\">Xilinx installation page<\/a> details the installation procedure.<\/li>\n\n\n\n<li><strong>FPGA<\/strong> <strong>sandbox template 3.10<\/strong> or later.<br>Available on the <a href=\"https:\/\/imperix.com\/doc\/help\/download-and-update-imperix-ip-for-fpga-sandbox?currentThread=getting-started-with-fpga-programming\">FPGA download<\/a> page.<\/li>\n\n\n\n<li><strong>C++ or ACG SDK version 2024.3<\/strong> or later.<br>Available on the <a href=\"https:\/\/imperix.com\/downloads\/\">SDK download<\/a> page.<\/li>\n<\/ul>\n\n\n\n<p>On the third-party side, this project has been tested with an <strong>OP4510<\/strong>, <strong>RT-LAB 2024.1.6.55<\/strong> and <strong>Matlab 2022B<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"downloads\"><span class=\"ez-toc-section\" id=\"Downloads\"><\/span>Downloads<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>As explained in the <a href=\"https:\/\/imperix.com\/doc\/help\/sfp-communication-with-third-party-devices#setup-overview\">setup overview<\/a>, the SFP communication requires the three following software parts:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The <strong>user application<\/strong>, running in the imperix controller&#8217;s CPU and provided as a Simulink or PLECS script.<\/li>\n\n\n\n<li>The <strong>FPGA bitstream<\/strong>, loaded in the imperix controller&#8217;s FPGA and provided as generation scripts.<\/li>\n\n\n\n<li>The <strong>third-party application<\/strong>, running in the OP4510 and provided as an RT-LAB archive.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\">User application<\/td><td class=\"has-text-align-center\" data-align=\"center\">FPGA bitstream<\/td><td class=\"has-text-align-center\" data-align=\"center\">OP4510 application<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong><a href=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/aurora_ix_template.slx\">aurora_ix_template.slx<\/a><\/strong><br><a href=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/aurora_ix_template.plecs\"><strong>aurora_ix_template.plecs<\/strong><\/a><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong><a href=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/aurora_ix_opalrt_gen_scripts.zip\" type=\"link\" id=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/aurora_ix_opalrt_gen_scripts.zip\" target=\"_blank\" rel=\"noreferrer noopener\">aurora_ix_opalrt_gen_scripts.zip<\/a><\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong><a href=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/aurora_ix_opalrt_rtlab.zip\">aurora_ix_opalrt_rtlab.zip<\/a><\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Further details on Aurora communication for the OP4510 and OP4512 from OPAL-RT are provided below.<\/p>\n\n\n\n<div class=\"wp-block-file aligncenter\"><a href=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/OPAL_RT_Aurora_Documentation.pdf\" class=\"wp-block-file__button wp-element-button\" download>Download <strong>OPAL_RT_Aurora_Documentation.pdf<\/strong><\/a><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"rtbox-application\"><span class=\"ez-toc-section\" id=\"OP4510-project\"><\/span>OP4510 project<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The OP4510 project is provided as a ZIP archive that can be imported in RT-Lab, which contains the OP4510&#8217;s model, firmware, eHS model and configuration files.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"simulink-model\"><span class=\"ez-toc-section\" id=\"Simulink-model\"><\/span>Simulink model<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The Simulink model contains the two main subsystems:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>SC_Console<\/strong> (left) to control and monitor signals in real-time.<\/li>\n\n\n\n<li><strong>SM_Controller<\/strong> (right) that contains the OP4510 control program.<\/li>\n<\/ul>\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\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"431\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_simulink_model_sc_console-1024x431.png\" alt=\"Screenshot of the OP4510 Simulink model (1\/2).\" class=\"wp-image-40782\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_simulink_model_sc_console-1024x431.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_simulink_model_sc_console-300x126.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_simulink_model_sc_console-768x323.png 768w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_simulink_model_sc_console.png 1052w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong>SC_Console <\/strong>subsystem<br>in the OP4510&#8217;s Simulink model<\/figcaption><\/figure>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"674\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_simulink_model_sm_controller_highlighted-1024x674.png\" alt=\"Screenshot of the OP4510 Simulink model (2\/2).\" class=\"wp-image-40793\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_simulink_model_sm_controller_highlighted-1024x674.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_simulink_model_sm_controller_highlighted-300x197.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_simulink_model_sm_controller_highlighted-768x505.png 768w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_simulink_model_sm_controller_highlighted.png 1094w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">SM_Controller subsystem<br>in the OP4510&#8217;s Simulink model<\/figcaption><\/figure>\n<\/div><\/div>\n<\/div>\n\n\n\n<p>The SM_Controller subsystem contains two SFP interfaces to access SFP either from <strong>eHS<\/strong> (on port <strong>SFP CH00<\/strong>) or from the <strong>simulator&#8217;s<\/strong> <strong>CPU<\/strong> (on port <strong>SFP CH02<\/strong>). These interfaces are described in the subsequent sections.<\/p>\n\n\n\n<p>Real-time variables can be defined in the SC_Console subsystem as constants and passed to the control logic of the SM_Controller subsystem (see the <em>to_eHS<\/em> ports in the screenshots above). Although this example doesn\u2019t use that mechanism, the related ports and blocks are kept for easier future expansion of the model.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Two-SFP-interfaces\"><\/span>Two SFP interfaces<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>To support different usage scenarios, this project provides two simultaneous SFP interfaces, enabling communication either with <a href=\"https:\/\/www.opal-rt.com\/software\/software-toolboxes\/ehs\/\">eHS<\/a> \u2013 the FPGA-based electrical toolbox and solver from OPAL-RT \u2013 or with the simulator\u2019s CPU. The characteristics of each interface are summarized in the table below.<\/p>\n\n\n\n<p>Additional details on using both interfaces can be found in the OPAL-RT documentation available in the <a href=\"#downloads\">Downloads<\/a> section.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Interface name<\/strong><\/td><td><strong>Location<\/strong><\/td><td><strong>Timestep<\/strong><\/td><td><strong>Use case(s)<\/strong><\/td><td><strong>SFP port<\/strong><\/td><\/tr><tr><td>eHS<\/td><td>FPGA<\/td><td>A few FPGA cycles (depends on the simulated circuit)<\/td><td>Simulation of power circuits only (in <a href=\"https:\/\/www.opal-rt.com\/software\/software-toolboxes\/ehs\/\">eHS<\/a>)<\/td><td>SFP CH00<\/td><\/tr><tr><td>CPU<\/td><td>CPU<\/td><td>CPU period<\/td><td>Simulation of power circuits or any other use (in Simulink)<\/td><td>SFP CH02<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>From the imperix controller perspective, the choice of interface has no impact. In both cases, the values are expected to be doubled in the OP4510.<\/p>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">Both communication interfaces run simultaneously. In this example, the imperix controller has only one port dedicated to the Aurora communication with the OP4510, meaning that one of the two OP4510&#8217;s ports should be left unconnected and simply returns zeroes as incoming values.<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">eHS interface<\/h4>\n\n\n\n<p>The eHS circuit is designed from the <a href=\"https:\/\/opal-rt.atlassian.net\/wiki\/spaces\/PSED\/pages\/67505185\/The+Workbench\">Schematic Editor<\/a> of OPAL-RT and directly embedded in the Simulink model, as shown in the right capture of the <a href=\"#simulink-model\">Simulink model<\/a> section above. Double-click on the <strong>eHS &#8216;OpCtrl&#8217;<\/strong> block to open the eHS circuit in the Schematic Editor.<\/p>\n\n\n\n<p>In the eHS circuit, controlled voltage sources are fed by the incoming SFP values and placed in series with 0.5\u03a9 resistors. The current flowing through the resistors is sent back to the imperix controller.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"492\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_ehs_circuit-1024x492.png\" alt=\"Screenshot of the eHS circuit in the Schematic Editor.\" class=\"wp-image-40814\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_ehs_circuit-1024x492.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_ehs_circuit-300x144.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_ehs_circuit-768x369.png 768w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_ehs_circuit.png 1468w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<h4 class=\"wp-block-heading\">CPU interface<\/h4>\n\n\n\n<p>For the CPU-based SFP control method, the incoming values are simply manually multiplied by two. As the &#8216;DataOut Recv&#8217; and &#8216;DataIn Send&#8217; blocks manipulate the data as unsigned integers, a datatype conversion is applied upon reception and before transmission in the OP4510.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"893\" height=\"173\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_simulink_model_sm_controller_cpu_based.png\" alt=\"Zoom on the SFP interface controlled from the OP4510 CPU.\" class=\"wp-image-40820\" style=\"aspect-ratio:5.162242492569438;width:703px;height:auto\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_simulink_model_sm_controller_cpu_based.png 893w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_simulink_model_sm_controller_cpu_based-300x58.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_simulink_model_sm_controller_cpu_based-768x149.png 768w\" sizes=\"auto, (max-width: 893px) 100vw, 893px\" \/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"import-in-rtlab\"><span class=\"ez-toc-section\" id=\"Import-in-RT-LAB\"><\/span>Import in RT-LAB<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>To import the project, click on <strong>File<\/strong> &gt; <strong>Import<\/strong>. Then, in the Import window, expand <strong>RT-LAB<\/strong>, select <strong>Existing RT-LAB Project<\/strong> and click <strong>Next<\/strong>. In the next window, select <strong>Select archive file<\/strong> and navigate to the location where the archive is locally stored. Finally, press <strong>Finish<\/strong>.<\/p>\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\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"449\" height=\"638\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_rtlab_step_1.png\" alt=\"\" class=\"wp-image-41176\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_rtlab_step_1.png 449w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_rtlab_step_1-211x300.png 211w\" sizes=\"auto, (max-width: 449px) 100vw, 449px\" \/><\/figure>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"477\" height=\"682\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_rtlab_step_3.png\" alt=\"Import of the project in RT-LAB (2\/2).\" class=\"wp-image-40802\" style=\"aspect-ratio:0.6994281733476532;width:373px\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_rtlab_step_3.png 477w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_rtlab_step_3-210x300.png 210w\" sizes=\"auto, (max-width: 477px) 100vw, 477px\" \/><\/figure>\n<\/div><\/div>\n<\/div>\n\n\n\n<p>Once the model is imported, double-click on it in the <strong>Project Explorer<\/strong> to open it. Navigate to <strong>Models<\/strong> and double-click on the model. Then, in the main panel, successively click on <strong>Build<\/strong>, <strong>Load<\/strong> and <strong>Execute<\/strong>.<\/p>\n\n\n\n<p>During the loading phase, a new Simulink model is automatically created based on the SC_Console subsystem. This model is intended to be used when the code is running to control the constants and monitor data in real-time.<\/p>\n\n\n\n<p>Open the scope when the code is running to observe the data exchanged between the imperix controller and the OP4510. Change the monitored interface (eHS or CPU-based) by setting the dedicated constant in the console.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Communication-chain\"><\/span>Communication chain<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Overview\"><\/span>Overview<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The overview of the communication chain is presented in the <a href=\"https:\/\/imperix.com\/doc\/help\/sfp-communication-with-third-party-devices#setup-overview\">setup overview<\/a>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"478\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/pn109_driver_communication_chain_opalrt-1024x478.png\" alt=\"\" class=\"wp-image-44906\" style=\"aspect-ratio:2.1201330134276213;width:673px;height:auto\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/pn109_driver_communication_chain_opalrt-1024x478.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/pn109_driver_communication_chain_opalrt-300x140.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/pn109_driver_communication_chain_opalrt-768x358.png 768w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/pn109_driver_communication_chain_opalrt-1536x717.png 1536w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/pn109_driver_communication_chain_opalrt-2048x955.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p>The main clock domain always runs at 250 MHz, while the frequency of the Aurora clock domain varies with the configuration of the Aurora IP. In this example, the frequency is 125 MHz with the configuration presented in the <a href=\"#aurora-parameters\">Aurora parameters<\/a> section.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Vivado-project\"><\/span>Vivado project<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The Vivado project is provided in the form of generation scripts. As explained in the <a href=\"https:\/\/imperix.com\/doc\/help\/sfp-communication-with-third-party-devices#generate-the-bitstream\">PN109<\/a> , the scripts automatically create and open the project illustrated below. The bitstream can be directly generated by simply pressing&nbsp;<strong>Generate Bitstream<\/strong>&nbsp;in the left navigation bar in the Vivado environment.<\/p>\n\n\n\n<p>As provided in this example source files, the driver supports the exchange of up to&nbsp;<strong>50 signals<\/strong>&nbsp;in each direction and the Aurora communication is linked to the&nbsp;<strong>SFP 0 (UP)<\/strong>&nbsp;port of the imperix controller.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"298\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_vivado_project_opalrt-1024x298.png\" alt=\"\" class=\"wp-image-41375\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_vivado_project_opalrt-1024x298.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_vivado_project_opalrt-300x87.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_vivado_project_opalrt-768x223.png 768w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_vivado_project_opalrt-1536x446.png 1536w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_vivado_project_opalrt-2048x595.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p>Once generated, the bitstream can be loaded onto the imperix controller using <a href=\"https:\/\/imperix.com\/doc\/help\/cockpit-user-guide?currentThread=b-box-4\">Cockpit<\/a>. A reboot is required for the bitstream change to take effect.<\/p>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">To increase the number of exchanged signals or change the SFP port used for the Aurora communication, please refer to <a href=\"https:\/\/imperix.com\/doc\/help\/sfp-communication-with-third-party-devices#how-to-exchange-more-signals\">How to exchange more signals<\/a> and <a href=\"https:\/\/imperix.com\/doc\/help\/sfp-communication-with-third-party-devices#how-to-assign-a-different-sfp-port\">How to assign a different SFP port<\/a>.<\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"ModulesIPs-description\"><\/span>Modules\/IPs description<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The Vivado project contains the following VHDL modules and IPs.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><th><strong>Module name<\/strong><\/th><th><strong>Type<\/strong><\/th><th><strong>Description<\/strong><\/th><\/tr><tr><td>sbio_256_registers<\/td><td>VHDL module<\/td><td>Instantiates and provides access to SBIO bus registers in the FPGA. More information is provided <a href=\"https:\/\/imperix.com\/doc\/help\/getting-started-with-fpga-control-development#SBIO_BUS\">here<\/a>.<\/td><\/tr><tr><td>convert_16b_to_32b<\/td><td>VHDL module<\/td><td>Converts the 16-bit words of the SBIO bus back into the 32-bit words of the payload.<\/td><\/tr><tr><td>aurora_ix_opalrt_driver<\/td><td>VHDL module<\/td><td>Custom driver provided by imperix to communicate with the OP4510 from OPAL-RT ; mainly acts are a parallel-to-serial transmitter and serial-to-parallel receiver.<\/td><\/tr><tr><td>convert_32b_to_16b<\/td><td>VHDL module<\/td><td>Converts the 32-bit words received from the OP4510 through the driver into 16-bit words compatible with the SBIO bus.<\/td><\/tr><tr><td>latcher<\/td><td>VHDL module<\/td><td>Ensures data coherency by preventing the update of the SBI registers while the CPU is reading.<\/td><\/tr><tr><td>AXI4-Stream Data FIFO<\/td><td>Vivado IP<br>(Xilinx)<\/td><td>Handles the clock domain crossing between the main 250 MHz domain of the imperix firmware and the Aurora clock domain ; buffers the frame in the transmission direction.<\/td><\/tr><tr><td>Aurora 8B10B<\/td><td>Vivado IP<br>(Xilinx)<\/td><td>Handles the Aurora communication and interfaces with the underlying hardware logic.<\/td><\/tr><tr><td>Utility Vector Logic<\/td><td>Vivado IP<br>(Xilinx)<\/td><td>Converts the active-high reset signal from the <code>sync_pulse<\/code> into an active-low reset signal for the FIFOs.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"aurora-parameters\"><span class=\"ez-toc-section\" id=\"Aurora-parameters\"><\/span>Aurora parameters<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The included Aurora IP comes with the correct configuration pre-applied for interfacing with OPAL-RT simulators. When creating a project from scratch, the Aurora IP must be configured in Vivado with the specific parameters listed below.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Protocol<\/strong><\/td><td>Aurora 8B10B<\/td><td><strong><strong>Interface<\/strong><\/strong><\/td><td>Framing<\/td><\/tr><tr><td><strong>Line Width (Bytes)<\/strong><\/td><td>4<\/td><td><strong><strong>Flow Control<\/strong><\/strong><\/td><td>None<\/td><\/tr><tr><td><strong><strong>Line Rate (Gbps)<\/strong><\/strong><\/td><td>5<\/td><td><strong><strong>Little Endian Support<\/strong><\/strong><\/td><td>Yes<\/td><\/tr><tr><td><strong><strong>Dataflow Mode<\/strong><\/strong><\/td><td>Duplex<\/td><td><strong><strong>CRC<\/strong><\/strong><\/td><td>Yes<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Experimental-validation\"><\/span>Experimental validation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Physical-setup\"><\/span>Physical setup<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The physical setup is straightforward:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Connect both devices to the network, so that they can be configured and monitored from the PC.<\/li>\n\n\n\n<li>Connect the imperix controller to the OP4510 with an SFP cable. As provided, this example considers the port <strong>SFP 0 (UP)<\/strong> on the controller and <strong>SFP CH00<\/strong> (eHS) or <strong>SFP CH02<\/strong> (CPU) on the OP4510.<\/li>\n\n\n\n<li>Turn on the two devices.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Software-side-setup\"><\/span>Software-side setup<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>To experimentally validate the system:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Download the three software parts available in the <a href=\"#downloads\">downloads<\/a> section.<\/li>\n\n\n\n<li>Import the project in RT-LAB. Build, load and execute it on the OP4510, as explained in the <a href=\"#import-in-rtlab\">Import in RT-LAB<\/a> section above.<\/li>\n\n\n\n<li><a href=\"https:\/\/imperix.com\/doc\/help\/sfp-communication-with-third-party-devices#generate-the-bitstream\">Generate the bitstream<\/a> for the imperix controller.<\/li>\n\n\n\n<li>Load the bitstream on the imperix controller via Cockpit.<\/li>\n\n\n\n<li>Build the <a href=\"https:\/\/imperix.com\/doc\/help\/sfp-communication-with-third-party-devices#user-application-template\">user application template<\/a> and launch it on the imperix controller via Cockpit.<\/li>\n\n\n\n<li>Use Cockpit to monitor the exchanged signals.<\/li>\n<\/ol>\n\n\n\n<p>The whole system should now be running.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Real-time-monitoring\"><\/span>Real-time monitoring<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Connect to the imperix controller with Cockpit. Add a <a href=\"https:\/\/imperix.com\/doc\/help\/scope-module?currentThread=imperix-cockpit\">scope<\/a> in the project (from the&nbsp;<strong>Modules tab<\/strong>&nbsp;in the top bar) and drag-and-drop the variables of interest.<\/p>\n\n\n\n<p>The exchanged signals can now be monitored in real-time in Cockpit. As expected, the amplitude of the transmitted signals is multiplied by two in the simulator.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"616\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn111_cockpit-1024x616.png\" alt=\"Screenshot of Cockpit while exchanging signals over the SFP communication.\" class=\"wp-image-40895\" style=\"aspect-ratio:1.6623869562347349\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn111_cockpit-1024x616.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn111_cockpit-300x181.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn111_cockpit-768x462.png 768w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn111_cockpit.png 1110w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p>The exchanged signals can also be monitored from the OP4510, as described in the <a href=\"#import-in-rtlab\">Import in RT-LAB<\/a> section. If the real-time signals stay at 0, ensure that the constant in the real-time console selects the right interface (1 for eHS, 0 for CPU).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"786\" height=\"557\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_op4510_scope.png\" alt=\"Screenshot of the OP4510 console while exchanging signals over the SFP communication.\" class=\"wp-image-40791\" style=\"aspect-ratio:1.4111543450064852;width:698px;height:auto\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_op4510_scope.png 786w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_op4510_scope-300x213.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn110_op4510_scope-768x544.png 768w\" sizes=\"auto, (max-width: 786px) 100vw, 786px\" \/><\/figure>\n<\/div>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This page presents a practical example of Aurora communication with OPAL-RT simulators, specifically the OP4510 and OP4512. It provides a ready-to-use user application, along with&#8230;<\/p>\n","protected":false},"author":17,"featured_media":41336,"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":[108],"related-products":[50,31,166,110],"guidedreadings":[],"tutorials":[174],"user-manuals":[],"coauthors":[82],"class_list":["post-40527","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-help","tag-fpga-programming","software-environments-fpga","provided-results-experimental","related-products-acg-sdk","related-products-b-board-pro","related-products-b-box-rcp-3-0","related-products-tpi","tutorials-sfp-communication-with-third-party-devices"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Aurora link with OPAL-RT via SFP - imperix<\/title>\n<meta name=\"description\" content=\"This page presents how to exchange data between imperix controllers and OPAL-RT devices using an Aurora communication over SFP.\" \/>\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\/aurora-link-with-opal-rt-via-sfp\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Aurora link with OPAL-RT via SFP - imperix\" \/>\n<meta property=\"og:description\" content=\"This page presents how to exchange data between imperix controllers and OPAL-RT devices using an Aurora communication over SFP.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp\" \/>\n<meta property=\"og:site_name\" content=\"imperix\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-02T13:32:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-06T13:38:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn109_driver_communication_chain_3_2_opalrt-scaled.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1707\" \/>\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=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/aurora-link-with-opal-rt-via-sfp#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/aurora-link-with-opal-rt-via-sfp\"},\"author\":{\"name\":\"Fran\u00e7ois Ledent\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/person\\\/1a0c3f44c7b64b1fd38dec245646aa8c\"},\"headline\":\"Aurora link with OPAL-RT via SFP\",\"datePublished\":\"2026-02-02T13:32:30+00:00\",\"dateModified\":\"2026-04-06T13:38:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/aurora-link-with-opal-rt-via-sfp\"},\"wordCount\":1759,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/aurora-link-with-opal-rt-via-sfp#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/pn109_driver_communication_chain_3_2_opalrt-scaled.png\",\"keywords\":[\"FPGA programming\"],\"articleSection\":[\"Product notes\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/aurora-link-with-opal-rt-via-sfp#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/aurora-link-with-opal-rt-via-sfp\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/aurora-link-with-opal-rt-via-sfp\",\"name\":\"Aurora link with OPAL-RT via SFP - imperix\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/aurora-link-with-opal-rt-via-sfp#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/aurora-link-with-opal-rt-via-sfp#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/pn109_driver_communication_chain_3_2_opalrt-scaled.png\",\"datePublished\":\"2026-02-02T13:32:30+00:00\",\"dateModified\":\"2026-04-06T13:38:16+00:00\",\"description\":\"This page presents how to exchange data between imperix controllers and OPAL-RT devices using an Aurora communication over SFP.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/aurora-link-with-opal-rt-via-sfp#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/aurora-link-with-opal-rt-via-sfp\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/aurora-link-with-opal-rt-via-sfp#primaryimage\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/pn109_driver_communication_chain_3_2_opalrt-scaled.png\",\"contentUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/pn109_driver_communication_chain_3_2_opalrt-scaled.png\",\"width\":2560,\"height\":1707},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/aurora-link-with-opal-rt-via-sfp#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\":\"Aurora link with OPAL-RT via SFP\"}]},{\"@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":"Aurora link with OPAL-RT via SFP - imperix","description":"This page presents how to exchange data between imperix controllers and OPAL-RT devices using an Aurora communication over SFP.","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\/aurora-link-with-opal-rt-via-sfp","og_locale":"en_US","og_type":"article","og_title":"Aurora link with OPAL-RT via SFP - imperix","og_description":"This page presents how to exchange data between imperix controllers and OPAL-RT devices using an Aurora communication over SFP.","og_url":"https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp","og_site_name":"imperix","article_published_time":"2026-02-02T13:32:30+00:00","article_modified_time":"2026-04-06T13:38:16+00:00","og_image":[{"width":2560,"height":1707,"url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn109_driver_communication_chain_3_2_opalrt-scaled.png","type":"image\/png"}],"author":"Fran\u00e7ois Ledent","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Fran\u00e7ois Ledent","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp#article","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp"},"author":{"name":"Fran\u00e7ois Ledent","@id":"https:\/\/imperix.com\/doc\/#\/schema\/person\/1a0c3f44c7b64b1fd38dec245646aa8c"},"headline":"Aurora link with OPAL-RT via SFP","datePublished":"2026-02-02T13:32:30+00:00","dateModified":"2026-04-06T13:38:16+00:00","mainEntityOfPage":{"@id":"https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp"},"wordCount":1759,"commentCount":0,"publisher":{"@id":"https:\/\/imperix.com\/doc\/#organization"},"image":{"@id":"https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn109_driver_communication_chain_3_2_opalrt-scaled.png","keywords":["FPGA programming"],"articleSection":["Product notes"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp#respond"]}]},{"@type":"WebPage","@id":"https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp","url":"https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp","name":"Aurora link with OPAL-RT via SFP - imperix","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/#website"},"primaryImageOfPage":{"@id":"https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp#primaryimage"},"image":{"@id":"https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn109_driver_communication_chain_3_2_opalrt-scaled.png","datePublished":"2026-02-02T13:32:30+00:00","dateModified":"2026-04-06T13:38:16+00:00","description":"This page presents how to exchange data between imperix controllers and OPAL-RT devices using an Aurora communication over SFP.","breadcrumb":{"@id":"https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp#primaryimage","url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn109_driver_communication_chain_3_2_opalrt-scaled.png","contentUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/pn109_driver_communication_chain_3_2_opalrt-scaled.png","width":2560,"height":1707},{"@type":"BreadcrumbList","@id":"https:\/\/imperix.com\/doc\/help\/aurora-link-with-opal-rt-via-sfp#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":"Aurora link with OPAL-RT via SFP"}]},{"@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\/40527","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=40527"}],"version-history":[{"count":146,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/40527\/revisions"}],"predecessor-version":[{"id":44907,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/40527\/revisions\/44907"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/media\/41336"}],"wp:attachment":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/media?parent=40527"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/categories?post=40527"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tags?post=40527"},{"taxonomy":"software-environments","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/software-environments?post=40527"},{"taxonomy":"provided-results","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/provided-results?post=40527"},{"taxonomy":"related-products","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/related-products?post=40527"},{"taxonomy":"guidedreadings","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/guidedreadings?post=40527"},{"taxonomy":"tutorials","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tutorials?post=40527"},{"taxonomy":"user-manuals","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/user-manuals?post=40527"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/coauthors?post=40527"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}