Forum Discussion

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

Error 10346: Formal port or parameter "write" must have a actual or default value

i use quartus ii for vhdl compile work, and met this error message: error 10346: formal port or parameter "write" must have a actual or default value

as the "write" is the port of a sram, i don't know why this port needs actual or default value.

please help me to debug this issue, thanks!

7 Replies

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

    usually this error happens when the component has a generic clause:

    entity blablabla...

    generic( width := 8 ) -- default value

    port(

    ...

    Please, post the code better understanding of the error.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Thanks for your kindly reply.

    But the "write" is a 1-bit port! this port doesn't have any parameter defination in the design!

    As the design shows bellow:

    component syncram

    generic (tech : integer := 0; abits : integer := 6; dbits : integer := 8;

    testen : integer := 0);

    port (

    clk : in std_ulogic;

    address : in std_logic_vector((abits -1) downto 0);

    datain : in std_logic_vector((dbits -1) downto 0);

    dataout : out std_logic_vector((dbits -1) downto 0);

    enable : in std_ulogic;

    write : in std_ulogic;

    testin : in std_logic_vector(TESTIN_WIDTH-1 downto 0) := testin_none);

    end component;
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    When you instantiate the component. Did you connect that port to any signal?

    In same line of code you have.

    toto_unit : syncram....

    port map(....

    write => some_signal, -- did you place this connection?
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    yes, they are some others signals need to be assign by the write.

    For example:

    xwrite <= write;

    Does this cause the error?
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    The kind of error suggest that you omitted to connect the input "write" to the circuit. Can you post the code where u instantiated the component?

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

    It sounds like you forgot to connect the write port. All ports of mode in must be connected to something, even if it is '0' or '1'. They cannot be left open.

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

    --- Quote Start ---

    It sounds like you forgot to connect the write port. All ports of mode in must be connected to something, even if it is '0' or '1'. They cannot be left open.

    --- Quote End ---

    Problem solved, Thanks!