{"id":17198,"date":"2025-04-18T09:12:00","date_gmt":"2025-04-18T09:12:00","guid":{"rendered":"https:\/\/liquidinstruments.com\/?p=17198"},"modified":"2025-12-18T04:21:05","modified_gmt":"2025-12-18T04:21:05","slug":"moku-cloud-compile-getting-started-guide","status":"publish","type":"post","link":"https:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/","title":{"rendered":"Moku Compile: A getting started guide","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><em>Updated December 1st, 2025<\/em><\/p>\n<p>Moku Compile is an innovative feature available on the entire family of Moku FPGA-based test and measurement tools. Moku Compile allows you to deploy VHDL or Verilog code to a Moku device. This code can provide custom features and interact with the existing instruments to unlock new and unique instrumentation, possible due to Moku\u2019s instrument-on-chip architecture.<\/p>\n<p>This application note will provide a guide on how to get started with Moku Compile. By the end of this guide, you will have the fundamental knowledge to compile and deploy custom code to your Moku. Each of the following examples will work on any Moku device.<\/p>\n<p><span style=\"font-size: 28px; font-weight: bold;\">Overview<\/span><\/p>\n<p>Moku Compile enables you to design custom processing and features for implementation on Moku platforms. Compared to CPU- and application-specific integrated circuits (ASIC) based DSP approaches, FPGA platforms provide near ASIC-level latency and performance while still being software programmable, more like a traditional CPU.<\/p>\n<p>While there are many widely used software languages that can be employed to write software for CPU based designs, FPGA programming is generally limited to VHDL or Verilog. These require a large and complex local toolchain installation. The platforms available for deploying HDL code are usually limited to evaluation boards from FPGA vendors or a variety of limited functionality, open-source hardware boards. Moku Compile encompasses two features:<\/p>\n<ul>\n<li>Moku Cloud Compile, an integrated, cloud-based VHDL and Verilog compiler<\/li>\n<li>Moku Custom Instrument, an instrument available on Moku devices that deploys the compiled code.<\/li>\n<\/ul>\n<p>Moku Compile addresses the need for custom processing without the overhead of traditional FPGA design software on high-performance laboratory and research-grade hardware. Moku Cloud Compile compiles your custom code in the cloud and delivers a package ready to deploy to any Moku device.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter wp-image-17194 \" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/10\/Screenshot-2024-03-19-at-3.52.10-PM.png\" alt=\"Figure 1: Moku Cloud Compile deployment process\" width=\"971\" height=\"232\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/10\/Screenshot-2024-03-19-at-3.52.10-PM.png 1296w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/10\/Screenshot-2024-03-19-at-3.52.10-PM-300x72.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/10\/Screenshot-2024-03-19-at-3.52.10-PM-1024x245.png 1024w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/10\/Screenshot-2024-03-19-at-3.52.10-PM-768x184.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/10\/Screenshot-2024-03-19-at-3.52.10-PM-600x144.png 600w\" sizes=\"(max-width: 971px) 100vw, 971px\" \/><\/p>\n<p style=\"text-align: center;\">Figure 1: Moku Cloud Compile deployment process<\/p>\n<h2>Multi-Instrument Mode and Moku Compile<\/h2>\n<p><span class=\"TextRun SCXW256240162 BCX0\" lang=\"EN\" xml:lang=\"EN\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW256240162 BCX0\">Multi-Instrument Mode allows multiple instruments to be deployed and operate simultaneously. Multi-Instrument Mode presents multiple slots representing partitions of the FPGA on Moku. You can deploy a flexible arrangement of instruments into these slots. Figure 2 shows the Multi-Instrument Mode interface with an Oscilloscope deployed in Slot 1 and a Spectrum Analyzer deployed in Slot 2, while Slots 3 and 4 remain to be filled. Any of the Moku platform\u2019s ever-expanding list of instruments can fill the remaining slots, including custom designed bitstreams using Custom Instrument. A complete list of instruments is available <\/span><\/span><a class=\"Hyperlink SCXW256240162 BCX0\" href=\"https:\/\/liquidinstruments.com\/products\/integrated-instruments\/\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"TextRun Underlined SCXW256240162 BCX0\" lang=\"EN\" xml:lang=\"EN\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW256240162 BCX0\">he<\/span><span class=\"NormalTextRun SCXW256240162 BCX0\">r<\/span><span class=\"NormalTextRun SCXW256240162 BCX0\">e<\/span><\/span><\/a><span class=\"TextRun SCXW256240162 BCX0\" lang=\"EN\" xml:lang=\"EN\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW256240162 BCX0\">.<\/span><\/span><\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"alignnone wp-image-26590 size-large\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig2-1024x701.png\" alt=\"\" width=\"1024\" height=\"701\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig2-1024x701.png 1024w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig2-300x205.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig2-768x526.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig2-600x411.png 600w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig2.png 1360w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p style=\"text-align: center;\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">Figure 2: Building a test system with Multi-Instrument Mode.<\/p>\n<p data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">It is Moku Custom Instrument which occupies Slot 4 in Figure 3, where you can deploy your compiled designs. Custom Instrument can occupy any available slot in Multi-Instrument Mode and enables your designs to interact with other Moku instruments in addition to the ADC and DAC inputs and outputs.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"alignnone wp-image-26591 size-large\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig3-1024x697.png\" alt=\"\" width=\"1024\" height=\"697\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig3-1024x697.png 1024w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig3-300x204.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig3-768x523.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig3-600x408.png 600w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig3.png 1365w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><br \/>\n<span class=\"TextRun SCXW80573401 BCX0\" lang=\"EN\" xml:lang=\"EN\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW80573401 BCX0\">Figure 3: A Multi-Instrument Mode setup built with Moku Custom Instrument in Slot 4.<\/span><\/span><\/p>\n<h2>Setting up a Moku Cloud Compile account<\/h2>\n<p data-ccp-border-between=\"0px none #e5e7eb\" data-ccp-padding-between=\"0px\"><span data-contrast=\"none\">Before you can compile or deploy code to a Moku device, you must first create an online account. This is a simple process:<\/span><span data-ccp-props=\"{&quot;335557856&quot;:16777215,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:15460325,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:15460325,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:15460325,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:15460325,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:15460325,&quot;469789798&quot;:&quot;none&quot;,&quot;469789802&quot;:&quot;none&quot;,&quot;469789806&quot;:&quot;none&quot;,&quot;469789810&quot;:&quot;none&quot;,&quot;469789814&quot;:&quot;none&quot;}\">&nbsp;<\/span><\/p>\n<ol>\n<li data-leveltext=\"%1.\" data-font=\"Helvetica Neue\" data-listid=\"2\" data-list-defn-props=\"{&quot;335551500&quot;:2238514,&quot;335552541&quot;:0,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Helvetica Neue&quot;,&quot;469769242&quot;:[65533,0],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"none\">Set up a Moku Cloud Compil<\/span><span data-contrast=\"none\">e<\/span><span data-contrast=\"none\"> user account at <\/span><a href=\"http:\/\/compile.liquidinstruments.com\/\"><span data-contrast=\"none\">compile.liquidinstruments.com<\/span><\/a><span data-contrast=\"none\">.<\/span><span data-ccp-props=\"{&quot;335557856&quot;:16777215,&quot;335559738&quot;:260,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:15460325,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:15460325,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:15460325,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:15460325,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:15460325,&quot;469789798&quot;:&quot;none&quot;,&quot;469789802&quot;:&quot;none&quot;,&quot;469789806&quot;:&quot;none&quot;,&quot;469789810&quot;:&quot;none&quot;,&quot;469789814&quot;:&quot;none&quot;}\"> If you are using an older version of MokuOS (before v4.0), please use the legacy compiler site instead: <a href=\"https:\/\/compile-legacy.liquidinstruments.com\/\" target=\"_blank\" rel=\"noopener\">compile-legacy.liquidinstruments.com<\/a>.<\/span><\/li>\n<li data-leveltext=\"%1.\" data-font=\"Helvetica Neue\" data-listid=\"2\" data-list-defn-props=\"{&quot;335551500&quot;:2238514,&quot;335552541&quot;:0,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Helvetica Neue&quot;,&quot;469769242&quot;:[65533,0],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"none\">If you\u2019re a first-time user, you will need to select \u201cSign up.\u201d<\/span><span data-ccp-props=\"{&quot;335557856&quot;:16777215,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:15460325,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:15460325,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:15460325,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:15460325,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:15460325,&quot;469789798&quot;:&quot;none&quot;,&quot;469789802&quot;:&quot;none&quot;,&quot;469789806&quot;:&quot;none&quot;,&quot;469789810&quot;:&quot;none&quot;,&quot;469789814&quot;:&quot;none&quot;}\">&nbsp;<\/span><\/li>\n<li data-leveltext=\"%1.\" data-font=\"Helvetica Neue\" data-listid=\"2\" data-list-defn-props=\"{&quot;335551500&quot;:2238514,&quot;335552541&quot;:0,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Helvetica Neue&quot;,&quot;469769242&quot;:[65533,0],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"none\">The sign-up page requires only a user-selected username, valid email address, and user-defined password.<\/span><span data-ccp-props=\"{&quot;335557856&quot;:16777215,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:15460325,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:15460325,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:15460325,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:15460325,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:15460325,&quot;469789798&quot;:&quot;none&quot;,&quot;469789802&quot;:&quot;none&quot;,&quot;469789806&quot;:&quot;none&quot;,&quot;469789810&quot;:&quot;none&quot;,&quot;469789814&quot;:&quot;none&quot;}\">&nbsp;<\/span><\/li>\n<li data-leveltext=\"%1.\" data-font=\"Helvetica Neue\" data-listid=\"2\" data-list-defn-props=\"{&quot;335551500&quot;:2238514,&quot;335552541&quot;:0,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Helvetica Neue&quot;,&quot;469769242&quot;:[65533,0],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"none\">Once signed up and logged in, you will see the projects page, which initially will be empty, as shown in Figure 4.<\/span><span data-ccp-props=\"{&quot;335557856&quot;:16777215,&quot;335559739&quot;:260,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:15460325,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:15460325,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:15460325,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:15460325,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:15460325,&quot;469789798&quot;:&quot;none&quot;,&quot;469789802&quot;:&quot;none&quot;,&quot;469789806&quot;:&quot;none&quot;,&quot;469789810&quot;:&quot;none&quot;,&quot;469789814&quot;:&quot;none&quot;}\">&nbsp;<\/span><\/li>\n<\/ol>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"alignnone wp-image-23632\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/MCCAnnotatedProject.png\" alt=\"\" width=\"816\" height=\"427\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/MCCAnnotatedProject.png 946w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/MCCAnnotatedProject-300x157.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/MCCAnnotatedProject-768x402.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/MCCAnnotatedProject-600x314.png 600w\" sizes=\"(max-width: 816px) 100vw, 816px\" \/><br \/>\n<span class=\"TextRun SCXW65190371 BCX0\" lang=\"EN\" xml:lang=\"EN\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW65190371 BCX0\">Figure 4: The Moku Cloud Compile project creation screen.<\/span><\/span><span class=\"EOP SCXW65190371 BCX0\" data-ccp-props=\"{&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:15460325,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:15460325,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:15460325,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:15460325,&quot;469789798&quot;:&quot;none&quot;,&quot;469789802&quot;:&quot;none&quot;,&quot;469789806&quot;:&quot;none&quot;,&quot;469789810&quot;:&quot;none&quot;}\">&nbsp;<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2 aria-level=\"2\"><b><span data-contrast=\"auto\">Creating your first project<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:360,&quot;335559739&quot;:120}\">&nbsp;<\/span><\/h2>\n<p>Once you have an account and log in to Moku Cloud Compile, all your previous work and designs will be available. Additionally, you can create new projects, or rebuild previous designs to account for future enhancements to the Moku platform. The projects page can be seen in Figure 5. You can import existing code from the <a href=\"https:\/\/github.com\/liquidinstruments\/moku-examples\/tree\/main\/mc\" target=\"_blank\" rel=\"noopener\">Github<\/a>&nbsp;repository by clicking on <strong>Import Example<\/strong>. For now, start a new project by clicking on the <strong>Create Project<\/strong> button.<\/p>\n<p><img decoding=\"async\" class=\"wp-image-26592 size-large aligncenter\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig5-1024x743.png\" alt=\"\" width=\"1024\" height=\"743\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig5-1024x743.png 1024w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig5-300x218.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig5-768x558.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig5-600x436.png 600w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig5.png 1314w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p style=\"text-align: center;\">Figure 5: The Moku Cloud Compile project screen.&nbsp;<span data-ccp-props=\"{}\">&nbsp;<\/span><\/p>\n<p><span data-contrast=\"none\">Next, using the pop-up dialogue box shown in Figure 6, you can provide a name to your project and start coding your design.<\/span><\/p>\n<p><span data-ccp-props=\"{&quot;335557856&quot;:16777215,&quot;335559739&quot;:280,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:15460325,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:15460325,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:15460325,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:15460325,&quot;469789798&quot;:&quot;none&quot;,&quot;469789802&quot;:&quot;none&quot;,&quot;469789806&quot;:&quot;none&quot;,&quot;469789810&quot;:&quot;none&quot;}\"><img decoding=\"async\" class=\"aligncenter wp-image-23636\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/Screenshot-2025-04-17-at-11.17.50\u202fAM-1024x379.png\" alt=\"\" width=\"600\" height=\"222\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/Screenshot-2025-04-17-at-11.17.50\u202fAM-1024x379.png 1024w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/Screenshot-2025-04-17-at-11.17.50\u202fAM-300x111.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/Screenshot-2025-04-17-at-11.17.50\u202fAM-768x284.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/Screenshot-2025-04-17-at-11.17.50\u202fAM-600x222.png 600w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/Screenshot-2025-04-17-at-11.17.50\u202fAM.png 1246w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/span><\/p>\n<p style=\"text-align: center;\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">Figure 6: New project dialogue box.<\/p>\n<p data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\"><span data-contrast=\"none\">You will then arrive at the project configuration screen, shown in Figure 7. <\/span><span data-contrast=\"none\">Notice the drop-down menu for <\/span><b><span data-contrast=\"none\">build configuration<\/span><\/b><span data-contrast=\"none\"> toward the bottom left of the screen.<\/span><\/p>\n<p data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\"><img decoding=\"async\" class=\"wp-image-26593 size-large aligncenter\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig7-1024x596.png\" alt=\"\" width=\"1024\" height=\"596\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig7-1024x596.png 1024w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig7-300x175.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig7-768x447.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig7-600x349.png 600w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig7.png 1467w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p style=\"text-align: center;\" data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">Figure 7: Project configuration screen.<\/p>\n<p>Before building a design, you must first specify the hardware and MokuOS version that you are using. Once you open the build configuration dropdown, the <strong>Hardware Model<\/strong> drop-down will allow you to specify any of the current Moku devices. Once you select the appropriate device, the drop-down for <strong>Number of slots<\/strong> will populate as appropriate. Moku:Go and Moku:Lab have options for two or three slots. Finally, you must specify the current MokuOS version that you are running on your Moku device. If you are unsure which <strong>MokuOS Version<\/strong> you are using, you can find this information in the bottom right of the Moku app, seen in Figure 8. Finally, select <em>CustomInstrument<\/em> under the <strong>Target Interface<\/strong> if this is your first Cloud Compile project (the <em>CustomWrapper<\/em> entity is available to ensure compatibility with older projects).<\/p>\n<p>Note: You will need to rebuild your design each time you update MokuOS on your device or if you want to deploy your code to different Moku hardware. This is easily accomplished by opening the project, changing the hardware and MokuOS selections, selecting build, and downloading the new resulting bitstream.<\/p>\n<p data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\"><img decoding=\"async\" class=\"wp-image-26594 size-large aligncenter\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig8-1024x665.png\" alt=\"\" width=\"1024\" height=\"665\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig8-1024x665.png 1024w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig8-300x195.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig8-768x499.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig8-600x390.png 600w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig8.png 1089w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p style=\"text-align: center;\" data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">Figure 8: Device selection screen, showing MokuOS version number in the bottom right corner.<\/p>\n<h2>Building your design<\/h2>\n<p>The entity <em>CustomInstrument<\/em> is your way to interface your HDL code with the Moku hardware. The entity defines the interface and variables that custom designs need to implement. When you create a new file on Moku Cloud Compile, the code will begin with this entity already defined; there is no need to make any changes. Note that old code or examples may use the entity <em>CustomWrapper<\/em>. This is similar in function and designed for compatibility for older code versions, all new designs should use <em>CustomInstrument<\/em>.<\/p>\n<p>While Moku Cloud Compile designs can be deployed as standalone instruments via Multi-Instrument Mode, most designs will yield their true benefit when deployed in conjunction with other Moku instruments.<\/p>\n<h2><b><span data-contrast=\"none\">Your first project<\/span><\/b><span data-ccp-props=\"{}\">&nbsp;<\/span><span data-ccp-props=\"{}\">&nbsp;<\/span><\/h2>\n<p>In this first project, we will design a custom instrument that will take two inputs mapped via Multi-Instrument Mode into InputA and InputB and perform basic combinatorial arithmetic. The addition of these two inputs (InputA + InputB) will be output on OutputA, as shown in Figure 9. The subtraction of the two inputs will be output on OutputB, as shown in Figure 10.<\/p>\n<p><span data-ccp-props=\"{&quot;335557856&quot;:16777215,&quot;335559739&quot;:280}\"><img decoding=\"async\" class=\" wp-image-23639 aligncenter\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/Combined-figures-1024x535.png\" alt=\"\" width=\"936\" height=\"489\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/Combined-figures-1024x535.png 1024w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/Combined-figures-300x157.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/Combined-figures-768x401.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/Combined-figures-600x314.png 600w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/Combined-figures.png 1200w\" sizes=\"(max-width: 936px) 100vw, 936px\" \/><br \/>\n<\/span><\/p>\n<h2><b><span data-contrast=\"none\">Entering VHDL code<\/span><\/b><span data-ccp-props=\"{}\">&nbsp;<\/span><\/h2>\n<p>We will program this example using VHDL, although Verilog could be used as well. There are two methods for inserting HDL code into your project. First, you can enter the code within the Moku Cloud Compile interface by clicking on the button highlighted in Figure 11. You must first create a file to store this code. In this case, we will create a single file called <em>Adder.vhd<\/em>.<\/p>\n<p><img decoding=\"async\" class=\"wp-image-26595 size-full aligncenter\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig11.png\" alt=\"\" width=\"531\" height=\"232\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig11.png 531w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig11-300x131.png 300w\" sizes=\"(max-width: 531px) 100vw, 531px\" \/><\/p>\n<p style=\"text-align: center;\" data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">Figure 11: Create a VHDL file within the project.<\/p>\n<p data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\"><span data-contrast=\"none\">This is the file where we will enter the code for our VHDL design. Once the file is created, you will see a blank template available for customization as shown in Figure 12.<\/span><span data-ccp-props=\"{&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:15460325,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:15460325,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:15460325,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:15460325,&quot;469789798&quot;:&quot;none&quot;,&quot;469789802&quot;:&quot;none&quot;,&quot;469789806&quot;:&quot;none&quot;,&quot;469789810&quot;:&quot;none&quot;}\">&nbsp;<\/span><\/p>\n<p data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\"><img decoding=\"async\" class=\"wp-image-26596 size-large aligncenter\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig12-1024x594.png\" alt=\"\" width=\"1024\" height=\"594\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig12-1024x594.png 1024w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig12-300x174.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig12-768x445.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig12-600x348.png 600w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig12.png 1470w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p style=\"text-align: center;\" data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">Figure 12: Entering code into the file template.&nbsp;<\/p>\n<p data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">For this first project, you can copy and paste the complete code directly into your Adder.vhd file, and save when complete. For purposes of this simple example, you can overwrite all current code in the Adder.vhd file and include the code below.<\/p>\n<pre><code><\/code><\/pre>\n<p data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\"><span style=\"color: #0000ff;\">library ieee;&nbsp;<\/span><\/p>\n<pre><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre><code><\/code><\/pre>\n<p data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\"><span style=\"color: #0000ff;\">architecture Behavioural of CustomInstrument is&nbsp;<\/span><\/p>\n<pre><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre><code><\/code><\/pre>\n<p data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\"><span style=\"color: #0000ff;\">begin&nbsp;<\/span><\/p>\n<pre><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre><code><\/code><\/pre>\n<p data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\"><span style=\"color: #0000ff;\">&nbsp;&nbsp;&nbsp;&nbsp; OutputA &lt;= InputA + InputB;&nbsp;<\/span><\/p>\n<pre><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre><code><\/code><\/pre>\n<p data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\"><span style=\"color: #0000ff;\">&nbsp;&nbsp;&nbsp;&nbsp; OutputB &lt;= InputA &#8211; InputB;&nbsp;<\/span><\/p>\n<pre><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre><code><\/code><\/pre>\n<p data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\"><span style=\"color: #0000ff;\">end architecture;&nbsp;<\/span><\/p>\n<pre><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<h2 data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">Uploading VHDL code<\/h2>\n<p data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">The Moku Cloud Compile user interface also allows you to directly upload .vhd or .v files that you have already created. This feature is particularly useful if you have a complex project with many files, or if you like to work with a specific text editor. Figure 13 shows the button to press in order to upload your own VHDL code from a file already created.<\/p>\n<p data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\"><img decoding=\"async\" class=\"wp-image-26597 size-full aligncenter\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig13.png\" alt=\"\" width=\"591\" height=\"290\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig13.png 591w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig13-300x147.png 300w\" sizes=\"(max-width: 591px) 100vw, 591px\" \/><\/p>\n<p style=\"text-align: center;\" data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">Figure 13: Uploading VHDL code within the Moku Cloud Compile interface.<\/p>\n<h2 data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">Generating a bitstream from VHDL code<\/h2>\n<p data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">To build your VHDL design, you simply need to save all individual VHDL files in the Moku Cloud. Make sure that your build configuration is correct, and then select Build in the upper right hand side of the project window. Building your project will run through the process shown in Figure 14. Any errors in the build process will be highlighted, with a description of the issue in the Build Logs<br \/>\n<img decoding=\"async\" class=\" wp-image-23643 aligncenter\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/MCCPhases-1024x111.png\" alt=\"\" width=\"950\" height=\"103\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/MCCPhases-1024x111.png 1024w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/MCCPhases-300x33.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/MCCPhases-768x83.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/MCCPhases-1536x166.png 1536w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/MCCPhases-600x65.png 600w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/MCCPhases.png 1864w\" sizes=\"(max-width: 950px) 100vw, 950px\" \/><\/p>\n<p style=\"text-align: center;\" data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">Figure 14: Phases of the Moku Cloud Compile build process.<\/p>\n<p style=\"text-align: left;\" data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">Once the code compilation is complete, the \u201cIP,\u201d \u201cSynthesis,\u201d \u201cRoute,\u201d and \u201cBitstream\u201d icons should all be green. It is likely you will see many compiler or synthesizer warnings, which appear as yellow text in the build log. These can mostly be disregarded for our purpose. However, any errors would need attention as they will halt the build process.<\/p>\n<h2 data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">Saving the bitstream for future use<\/h2>\n<p data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">You can save this bitstream to your computer for future use and deployment in a variety of Multi-Instrument Mode configurations without rebuilding the design. You will first need to expand the dropdown for <strong>Latest Build<\/strong> in the bottom left of the screen below the <strong>Build Configuration<\/strong>. Then, as shown in Figure 15, you simply need to download the bitstream.tar file and save it to a known location for import into the Moku app. Do not unzip or untar this file, although it can be renamed to describe its functionality.<\/p>\n<p style=\"text-align: center;\" data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\"><img decoding=\"async\" class=\"alignnone wp-image-23802 \" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/2-1024x535.png\" alt=\"Figure 15: Downloading the bitstream.\" width=\"686\" height=\"358\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/2-1024x535.png 1024w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/2-300x157.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/2-768x401.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/2-600x314.png 600w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/2.png 1200w\" sizes=\"(max-width: 686px) 100vw, 686px\" \/><\/p>\n<p style=\"text-align: center;\" data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">Figure 15: Downloading the bitstream.<\/p>\n<h2 style=\"text-align: left;\" data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">Deploying your design<\/h2>\n<p style=\"text-align: left;\" data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">Compiled bitstreams are deployed using Custom Instrument and are typically used in conjunction with the other instruments available on the Moku via Multi-Instrument Mode. Even in cases where the bitstream is designed to stand alone, you must access the design\u2019s functionality through Multi-Instrument Mode on your Moku device.<\/p>\n<h2 style=\"text-align: left;\" data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">Multi-Instrument Mode configuration<\/h2>\n<p style=\"text-align: left;\" data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">Moku Custom Instrument can reside in any available slot on the Moku. Slot choice will be driven by the larger chain of instruments and functionality you wish to design within Moku. For the purposes of this first example, we can use the Multi-Instrument Mode configuration on Moku:Go shown in Figure 16.<\/p>\n<p style=\"text-align: center;\" data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\"><img decoding=\"async\" class=\"alignnone wp-image-26598 size-large\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig16-1024x704.png\" alt=\"\" width=\"1024\" height=\"704\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig16-1024x704.png 1024w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig16-300x206.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig16-768x528.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig16-600x413.png 600w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig16.png 1354w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p style=\"text-align: center;\" data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">Figure 16: Multi-Instrument Mode configuration.<\/p>\n<p style=\"text-align: left;\" data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">In Slot 1, we have the Moku <a href=\"https:\/\/liquidinstruments.com\/products\/integrated-instruments\/oscilloscope\/\" target=\"_blank\" rel=\"noopener\">Oscilloscope<\/a> <span style=\"font-weight: 400;\">that has Output A and Output B routed to Input A and Input B of Slot 2, containing Custom Instrument. Output A and Output B of Custom Instrument are routed back to Input A and Input B of Slot 1 by default. This setup will allow us to validate the performance of the design with a single Moku:Go device.<\/span><\/p>\n<h2 style=\"text-align: left;\" data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">Deploying the bitstream<\/h2>\n<p style=\"text-align: left;\" data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">Once you have configured Multi-Instrument Mode, and built and downloaded your Moku Compile bitstream, you are ready to deploy your bitstream. To do so, click on the three dots below the Moku Custom Instrument icon. Click \u201cBrowse bitstreams\u201d to open the Moku Compile Bitstream Browser, as seen in Fig 17. This feature can link to your Moku Cloud Compile account to directly download bitstreams to your device. This procedure is explained below. For now, click<strong> Local bitstream\u2026<\/strong> and navigate to the file you downloaded earlier. Once loaded, click <strong>Apply changes<\/strong>&nbsp;in the top right of Multi-Instrument Mode and your custom instrument will run.<\/p>\n<p style=\"text-align: center;\" data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\"><img decoding=\"async\" class=\"wp-image-26599 size-large aligncenter\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig17-1024x702.png\" alt=\"\" width=\"1024\" height=\"702\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig17-1024x702.png 1024w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig17-300x206.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig17-768x527.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig17-600x411.png 600w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig17.png 1362w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>Figure 17: The Moku Compile Bitstream Browser.<\/p>\n<h2 data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">Linking your Cloud Compile account<\/h2>\n<p>If you wish to use Bitstream Browser to download your bitstreams directly to your device, you first need an API key from the Moku Cloud Compile website. After logging in, click the letter in the top right corner (your initial), then <strong>Preferences<\/strong> from the dropdown menu, as seen in Fig 18.<\/p>\n<div id=\"attachment_26600\" style=\"width: 1034px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" aria-describedby=\"caption-attachment-26600\" class=\"wp-image-26600 size-large\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig18-1024x650.png\" alt=\"\" width=\"1024\" height=\"650\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig18-1024x650.png 1024w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig18-300x190.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig18-768x488.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig18-600x381.png 600w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig18.png 1046w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><p id=\"caption-attachment-26600\" class=\"wp-caption-text\">Figure 18. Moku Cloud Compile preferences menu.<\/p><\/div>\n<p>On the left-hand side menu, click&nbsp; <strong>API Keys<\/strong>. This allows you to see all of the keys you\u2019ve created. Click <strong>Create API Key<\/strong>, then enter a name. Enable all the boxes with <strong>Select all.<\/strong> When you are ready, click <strong>Create<\/strong>, as seen in Fig 19.<\/p>\n<div id=\"attachment_26601\" style=\"width: 1034px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" aria-describedby=\"caption-attachment-26601\" class=\"wp-image-26601 size-large\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig19-1024x662.png\" alt=\"\" width=\"1024\" height=\"662\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig19-1024x662.png 1024w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig19-300x194.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig19-768x497.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig19-600x388.png 600w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig19.png 1044w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><p id=\"caption-attachment-26601\" class=\"wp-caption-text\">Figure 19. API key creation menu.<\/p><\/div>\n<p>You will then be shown a pop-up with your API key. Click <strong>Copy<\/strong> and paste this key somewhere, as you will not be able to view it again. Once copied, close the menu to return to the API Keys menu, where you will see the name of your new key listed.<\/p>\n<p>Return to the Multi-Instrument Mode screen on your Moku device, and set the configuration as per Fig 16 in the previous section. Select <strong>Browse bitstreams<\/strong>, and then click <strong>Set an API key <\/strong>as seen in Fig 20. Copy and paste the key you obtained, then click <strong>Accept<\/strong>.<\/p>\n<div id=\"attachment_26602\" style=\"width: 1034px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" aria-describedby=\"caption-attachment-26602\" class=\"wp-image-26602 size-large\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig20-1024x702.png\" alt=\"\" width=\"1024\" height=\"702\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig20-1024x702.png 1024w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig20-300x206.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig20-768x527.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig20-600x412.png 600w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig20.png 1363w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><p id=\"caption-attachment-26602\" class=\"wp-caption-text\">Figure 20. API key information in the bitstream browser.<\/p><\/div>\n<p style=\"text-align: left;\"><span style=\"font-weight: 400;\">After doing this, you\u2019ll see your existing projects begin to populate on the left-hand side, displaying the latest build information. View &#8220;MyFirstProject,\u201d which should have been compiled recently, as seen in Fig 21. Click <strong>Use bitstream<\/strong> to load it onto your Moku. After uploading, you should return to the Multi-Instrument mode configuration screen. Click <strong>Apply changes<\/strong> to configure your Moku before continuing to the next section.&nbsp;&nbsp;<\/span><\/p>\n<h2 style=\"text-align: left;\" data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">&nbsp;<\/h2>\n<h2 style=\"text-align: left;\" data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\"><img decoding=\"async\" class=\"size-full wp-image-26605 aligncenter\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig21-1.png\" alt=\"\" width=\"938\" height=\"633\" data-wp-editing=\"1\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig21-1.png 938w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig21-1-300x202.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig21-1-768x518.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/04\/Fig21-1-600x405.png 600w\" sizes=\"(max-width: 938px) 100vw, 938px\" \/><\/h2>\n<p style=\"text-align: center;\">Figure 21: Selecting a bitstream with the bitstream browser.<\/p>\n<h2 style=\"text-align: left;\" data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">Results<\/h2>\n<p style=\"text-align: left;\" data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">We will use the signal generator functionality within the Moku Oscilloscope to demonstrate the Moku Cloud Compile adder functionality. To verify the Moku Cloud Compile design functions as expected, place a simple 2 VDC signal on both output channels. Input A on the Oscilloscope should read the addition of the two signals with a steady 4 V signal. Input B of the Oscilloscope should read the difference of the two signals with a steady 0 V signal as shown in Figure 22.<\/p>\n<p data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\"><img decoding=\"async\" class=\" wp-image-23648 aligncenter\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/MCCTraceData-1024x633.png\" alt=\"\" width=\"844\" height=\"522\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/MCCTraceData-1024x633.png 1024w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/MCCTraceData-300x186.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/MCCTraceData-768x475.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/MCCTraceData-1536x950.png 1536w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/MCCTraceData-2048x1266.png 2048w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/MCCTraceData-600x371.png 600w\" sizes=\"(max-width: 844px) 100vw, 844px\" \/><\/p>\n<p style=\"text-align: center;\" data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">Figure 22: Sample DC results for adder.<\/p>\n<p data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">You also can change the signal type to \u201csine,\u201d and experiment with different effects. Combining two sine waves of different frequencies will generate beat notes, whereas changing the phase of two identical sine waves will result in constructive or destructive interference. You can see an example of this in Figure 23. You can also select the \u201cnoise\u201d signal type if you wish to add artificial noise to a generated signal.<\/p>\n<p style=\"text-align: center;\" data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\"><img decoding=\"async\" class=\"alignnone wp-image-23649\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/Screenshot-2025-04-17-at-11.38.39\u202fAM-1024x753.png\" alt=\"\" width=\"907\" height=\"667\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/Screenshot-2025-04-17-at-11.38.39\u202fAM-1024x753.png 1024w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/Screenshot-2025-04-17-at-11.38.39\u202fAM-300x221.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/Screenshot-2025-04-17-at-11.38.39\u202fAM-768x565.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/Screenshot-2025-04-17-at-11.38.39\u202fAM-1536x1130.png 1536w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/Screenshot-2025-04-17-at-11.38.39\u202fAM-2048x1506.png 2048w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/03\/Screenshot-2025-04-17-at-11.38.39\u202fAM-600x441.png 600w\" sizes=\"(max-width: 907px) 100vw, 907px\" \/><\/p>\n<p style=\"text-align: center;\" data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">Figure 23: Sample beat note results for adder.<\/p>\n<h2 data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">Conclusion<\/h2>\n<p data-ccp-border-top=\"0px none #e5e7eb\" data-ccp-padding-top=\"0px\" data-ccp-border-bottom=\"0px none #e5e7eb\" data-ccp-padding-bottom=\"0px\">While the example presented here was very simple, this application note is intended to help you quickly get started with Moku Cloud Compile and leverage the true flexibility of the reconfigurable Moku platform.<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>Updated December 1st, 2025 Moku Compile is an innovative feature available on the entire family of Moku FPGA-based test and measurement tools. Moku Compile allows you to deploy VHDL or Verilog code to a Moku device. This code can provide custom features and interact with the existing instruments to unlock new and unique instrumentation, possible [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":40,"featured_media":17195,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[5],"tags":[324],"class_list":["post-17198","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-application-notes","tag-moku-cloud-compile","site-category-matlab","site-category-moku-cloud-compile","site-category-mokupro"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.0 (Yoast SEO v27.0) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Moku Cloud Compile Getting Started Guide - Liquid Instruments<\/title>\n<meta name=\"description\" content=\"Updated December 1st, 2025 Moku Compile is an innovative feature available on the entire family of Moku FPGA-based test and measurement tools. Moku\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Moku Compile: A getting started guide\" \/>\n<meta property=\"og:description\" content=\"Updated December 1st, 2025 Moku Compile is an innovative feature available on the entire family of Moku FPGA-based test and measurement tools. Moku\" \/>\n<meta property=\"og:url\" content=\"https:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/\" \/>\n<meta property=\"og:site_name\" content=\"Liquid Instruments\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/LiquidInstruments\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-18T09:12:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-18T04:21:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/10\/Screenshot-2024-03-19-at-3.53.26-PM.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1420\" \/>\n\t<meta property=\"og:image:height\" content=\"798\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"jpatterson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@liquidinstrmnts\" \/>\n<meta name=\"twitter:site\" content=\"@liquidinstrmnts\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"jpatterson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/\"},\"author\":{\"name\":\"jpatterson\",\"@id\":\"https:\/\/liquidinstruments.com\/#\/schema\/person\/a90cfa3df7e1cd3895cac4a51dff60b5\"},\"headline\":\"Moku Compile: A getting started guide\",\"datePublished\":\"2025-04-18T09:12:00+00:00\",\"dateModified\":\"2025-12-18T04:21:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/\"},\"wordCount\":2435,\"publisher\":{\"@id\":\"https:\/\/liquidinstruments.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/10\/Screenshot-2024-03-19-at-3.53.26-PM.png\",\"keywords\":[\"moku cloud compile\"],\"articleSection\":[\"Application notes\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/\",\"url\":\"https:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/\",\"name\":\"Moku Cloud Compile Getting Started Guide - Liquid Instruments\",\"isPartOf\":{\"@id\":\"https:\/\/liquidinstruments.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/10\/Screenshot-2024-03-19-at-3.53.26-PM.png\",\"datePublished\":\"2025-04-18T09:12:00+00:00\",\"dateModified\":\"2025-12-18T04:21:05+00:00\",\"description\":\"Updated December 1st, 2025 Moku Compile is an innovative feature available on the entire family of Moku FPGA-based test and measurement tools. Moku\",\"breadcrumb\":{\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/#primaryimage\",\"url\":\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/10\/Screenshot-2024-03-19-at-3.53.26-PM.png\",\"contentUrl\":\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/10\/Screenshot-2024-03-19-at-3.53.26-PM.png\",\"width\":1420,\"height\":798},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/liquidinstruments.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Moku Compile: A getting started guide\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/liquidinstruments.com\/#website\",\"url\":\"https:\/\/liquidinstruments.com\/\",\"name\":\"Liquid Instruments\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/liquidinstruments.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/liquidinstruments.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/liquidinstruments.com\/#organization\",\"name\":\"Liquid Instruments\",\"url\":\"https:\/\/liquidinstruments.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/liquidinstruments.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/i0.wp.com\/liquidinstruments.com\/wp-content\/uploads\/2020\/10\/BrandMark-Preferred-RGB-Color.png?fit=1000%2C924&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/liquidinstruments.com\/wp-content\/uploads\/2020\/10\/BrandMark-Preferred-RGB-Color.png?fit=1000%2C924&ssl=1\",\"width\":1000,\"height\":924,\"caption\":\"Liquid Instruments\"},\"image\":{\"@id\":\"https:\/\/liquidinstruments.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/LiquidInstruments\/\",\"https:\/\/x.com\/liquidinstrmnts\",\"https:\/\/www.instagram.com\/liquidinstruments\/\",\"https:\/\/www.linkedin.com\/company\/liquidinstruments\/\",\"https:\/\/www.youtube.com\/c\/LiquidInstruments\",\"https:\/\/vimeo.com\/liquidinstruments\"],\"hasMerchantReturnPolicy\":{\"@type\":\"MerchantReturnPolicy\",\"merchantReturnLink\":\"https:\/\/liquidinstruments.com\/support\/warranty-repairs-and-service\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/liquidinstruments.com\/#\/schema\/person\/a90cfa3df7e1cd3895cac4a51dff60b5\",\"name\":\"jpatterson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/liquidinstruments.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3f4addf937f4e6300e74bf8a6d4d655c30b9302eec44ad3c439471b26ee5139b?s=96&d=wavatar&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3f4addf937f4e6300e74bf8a6d4d655c30b9302eec44ad3c439471b26ee5139b?s=96&d=wavatar&r=g\",\"caption\":\"jpatterson\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Moku Cloud Compile Getting Started Guide - Liquid Instruments","description":"Updated December 1st, 2025 Moku Compile is an innovative feature available on the entire family of Moku FPGA-based test and measurement tools. Moku","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:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/","og_locale":"en_US","og_type":"article","og_title":"Moku Compile: A getting started guide","og_description":"Updated December 1st, 2025 Moku Compile is an innovative feature available on the entire family of Moku FPGA-based test and measurement tools. Moku","og_url":"https:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/","og_site_name":"Liquid Instruments","article_publisher":"https:\/\/www.facebook.com\/LiquidInstruments\/","article_published_time":"2025-04-18T09:12:00+00:00","article_modified_time":"2025-12-18T04:21:05+00:00","og_image":[{"width":1420,"height":798,"url":"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/10\/Screenshot-2024-03-19-at-3.53.26-PM.png","type":"image\/png"}],"author":"jpatterson","twitter_card":"summary_large_image","twitter_creator":"@liquidinstrmnts","twitter_site":"@liquidinstrmnts","twitter_misc":{"Written by":"jpatterson","Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/#article","isPartOf":{"@id":"https:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/"},"author":{"name":"jpatterson","@id":"https:\/\/liquidinstruments.com\/#\/schema\/person\/a90cfa3df7e1cd3895cac4a51dff60b5"},"headline":"Moku Compile: A getting started guide","datePublished":"2025-04-18T09:12:00+00:00","dateModified":"2025-12-18T04:21:05+00:00","mainEntityOfPage":{"@id":"https:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/"},"wordCount":2435,"publisher":{"@id":"https:\/\/liquidinstruments.com\/#organization"},"image":{"@id":"https:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/10\/Screenshot-2024-03-19-at-3.53.26-PM.png","keywords":["moku cloud compile"],"articleSection":["Application notes"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/","url":"https:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/","name":"Moku Cloud Compile Getting Started Guide - Liquid Instruments","isPartOf":{"@id":"https:\/\/liquidinstruments.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/#primaryimage"},"image":{"@id":"https:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/10\/Screenshot-2024-03-19-at-3.53.26-PM.png","datePublished":"2025-04-18T09:12:00+00:00","dateModified":"2025-12-18T04:21:05+00:00","description":"Updated December 1st, 2025 Moku Compile is an innovative feature available on the entire family of Moku FPGA-based test and measurement tools. Moku","breadcrumb":{"@id":"https:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/#primaryimage","url":"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/10\/Screenshot-2024-03-19-at-3.53.26-PM.png","contentUrl":"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/10\/Screenshot-2024-03-19-at-3.53.26-PM.png","width":1420,"height":798},{"@type":"BreadcrumbList","@id":"https:\/\/liquidinstruments.com\/application-notes\/moku-cloud-compile-getting-started-guide\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/liquidinstruments.com\/"},{"@type":"ListItem","position":2,"name":"Moku Compile: A getting started guide"}]},{"@type":"WebSite","@id":"https:\/\/liquidinstruments.com\/#website","url":"https:\/\/liquidinstruments.com\/","name":"Liquid Instruments","description":"","publisher":{"@id":"https:\/\/liquidinstruments.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/liquidinstruments.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/liquidinstruments.com\/#organization","name":"Liquid Instruments","url":"https:\/\/liquidinstruments.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/liquidinstruments.com\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/liquidinstruments.com\/wp-content\/uploads\/2020\/10\/BrandMark-Preferred-RGB-Color.png?fit=1000%2C924&ssl=1","contentUrl":"https:\/\/i0.wp.com\/liquidinstruments.com\/wp-content\/uploads\/2020\/10\/BrandMark-Preferred-RGB-Color.png?fit=1000%2C924&ssl=1","width":1000,"height":924,"caption":"Liquid Instruments"},"image":{"@id":"https:\/\/liquidinstruments.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/LiquidInstruments\/","https:\/\/x.com\/liquidinstrmnts","https:\/\/www.instagram.com\/liquidinstruments\/","https:\/\/www.linkedin.com\/company\/liquidinstruments\/","https:\/\/www.youtube.com\/c\/LiquidInstruments","https:\/\/vimeo.com\/liquidinstruments"],"hasMerchantReturnPolicy":{"@type":"MerchantReturnPolicy","merchantReturnLink":"https:\/\/liquidinstruments.com\/support\/warranty-repairs-and-service\/"}},{"@type":"Person","@id":"https:\/\/liquidinstruments.com\/#\/schema\/person\/a90cfa3df7e1cd3895cac4a51dff60b5","name":"jpatterson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/liquidinstruments.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/3f4addf937f4e6300e74bf8a6d4d655c30b9302eec44ad3c439471b26ee5139b?s=96&d=wavatar&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3f4addf937f4e6300e74bf8a6d4d655c30b9302eec44ad3c439471b26ee5139b?s=96&d=wavatar&r=g","caption":"jpatterson"}}]}},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/posts\/17198","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/users\/40"}],"replies":[{"embeddable":true,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/comments?post=17198"}],"version-history":[{"count":29,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/posts\/17198\/revisions"}],"predecessor-version":[{"id":27066,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/posts\/17198\/revisions\/27066"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/media\/17195"}],"wp:attachment":[{"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/media?parent=17198"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/categories?post=17198"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/tags?post=17198"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}