Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
15 years ago

SOPC Custom Memory Component

I am trying to create a custom memory component to use with NIOS. I generated an Avalon MM Slave component and I can add it and it seems to connect fine. However, NIOS won't let me select it for the Reset or Exception vectors. Also, SOPC gives me a warning at the bottom saying that those vectors cannot be set until I add a memory device. So, it seems like SOPC does not recognize my component as a memory device. What do I need to add to the interface to make it show up as a memory device?

Thank you for your help

Here is the verilog for the component (basic pass through).

module my_ram (// Slave interface
               input csi_clock_clk,
               input csi_clock_reset_n,
              
               input    avs_s1_address,
               input     avs_s1_byteenable,
               input          avs_s1_read,
               input          avs_s1_write,
               input    avs_s1_writedata,
               output   avs_s1_readdata,
               output         avs_s1_waitrequest,
              
               // Conduit
               output         coe_user_clk,
               output         coe_user_reset_n,
               output   coe_user_address,
               output    coe_user_byteenable,
               output         coe_user_read,
               output         coe_user_write,
               output   coe_user_writedata,
               input    coe_user_readdata,
               input          coe_user_waitrequest);
assign avs_s1_readdata     = coe_user_readdata;
assign avs_s1_waitrequest  = coe_user_waitrequest;
assign coe_user_clk        = csi_clock_clk;
assign coe_user_reset_n    = csi_clock_reset_n;
assign coe_user_address    = avs_s1_address;
assign coe_user_byteenable = avs_s1_byteenable;
assign coe_user_read       = avs_s1_read;
assign coe_user_write      = avs_s1_write;
assign coe_user_writedata  = avs_s1_writedata;
        
              
endmodule

3 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    In your .tcl file you should change something like

    set_interface_property "as1" "isMemoryDevice" "false" to

    set_interface_property "as1" "isMemoryDevice" "true"

    Then your AVALON-component (as1) will be a memory

    Best regards,

    Kest
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Thanks you kest . I was struggle with the same problem for two days.