Moku:Pro Does not implement Cloud Compile tool on any slot

Hello,

I am trying to get basically a hello-world started for the MCC feature on my lab group’s Moku:Pro (running firmware 591). Something which does the bare minimum: just maps an input to an output and does not even try to fix scaling.

I have compiled and successfully built the following Top.vhd:

Library IEEE;
USE IEEE.std_logic_1164.ALL;
USE IEEE.numeric_std.ALL;

-- Library Moku;
-- USE Moku.Support.clip;

entity CustomWrapper is
    port (
        Clk : in std_logic;
        Reset : in std_logic;

        -- Input and Output use is platform-specific. These ports exist on all
        -- platforms but may not be externally connected.
        InputA : in signed(15 downto 0);
        InputB : in signed(15 downto 0);

        OutputA : out signed(15 downto 0);
        OutputB : out signed(15 downto 0);
        OutputC : out signed(15 downto 0);
        OutputD : out signed(15 downto 0);

        Control0 : in std_logic_vector(31 downto 0);
        Control1 : in std_logic_vector(31 downto 0);
        Control2 : in std_logic_vector(31 downto 0);
        Control3 : in std_logic_vector(31 downto 0);
        Control4 : in std_logic_vector(31 downto 0);
        Control5 : in std_logic_vector(31 downto 0);
        Control6 : in std_logic_vector(31 downto 0);
        Control7 : in std_logic_vector(31 downto 0);
        Control8 : in std_logic_vector(31 downto 0);
        Control9 : in std_logic_vector(31 downto 0)
    );
end entity;

architecture Behavioural of CustomWrapper is
begin
    OutputA <= InputA;
    OutputB <= InputA;
    OutputC <= InputA;
    OutputD <= InputA;
end architecture;

The code appears to build successfully and results in a bitstream file. However, when I try to configure a slot in multi-instrument mode to use cloud compile, it will not implement it. I.e. it appears as if I can upload the bitstream to the device, but the device refuses to implement the MCC tool in any slot.

So I can configure it in the following way (making sure that I have uploaded the tar.gz file bitstream first):

After I hit Apply it just shows up as so:

Is there some part of the process which I am not doing correctly? Why would the instrument fail to implement?

Hi Trajectory989,

Thank you for sharing the code. The issue with the cloud compile slot disappearing is because of the duplicated entity definition of the CustomWrapper.
By design, the CustomWrapper is already defined in the project, and you would be expected to code in the architecture part, dictating how the system should behave. The entity definition is provided in the documentation to inform users of the port definitions needed for your custom designs. Please refer to Getting Started | Moku Cloud Compile for examples on using Cloud compile. In your example of passing the input to output, a working code can be shown as below:

Library IEEE;
USE IEEE.std_logic_1164.ALL;
USE IEEE.numeric_std.ALL;

-- Library Moku;
-- USE Moku.Support.clip;

architecture Behavioural of CustomWrapper is
begin
    OutputA <= InputA;
    OutputB <= InputA;
    OutputC <= InputA;
    OutputD <= InputA;
end architecture;

I hope this information helps you. If you are still facing any difficulties, please let us know. Meanwhile, I have flagged the slot disappearing issue with the devs team and hope to resolve it in future updates.