Forum Discussion

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

altdpram with NUMWORDS = 1

I all,

I tried to instanciate an altdpram with NUMWORDS => 1 and WIDTHA => 1.

According to http://quartushelp.altera.com/11.1/mergedprojects/hdl/mega/mega_file_altdpram.htm this is OK:

Parameter ; Type    ; Required ; Description
NUMWORDS  ; Integer ; No       ; Number of words stored in memory.
                                 This value must be within the range
                                 2^(WIDTHAD - 1) < NUMWORDS <= 2^WIDTHAD.
                                 If omitted, the default is 2^WIDTHAD.

I get the following error:

--- Quote Start ---

Error: Assertion error: Value of NUMWORDS parameter requires 0 address lines, but WIDTHAD value, which defines the number of address lines, is 1

Error: Can't elaborate user hierarchy "altdpram:ram"

Error: Quartus II 64-Bit Analysis & Synthesis was unsuccessful. 2 errors, 494 warnings

Error: Peak virtual memory: 1594 megabytes

Error: Processing ended: Thu Jun 28 09:43:13 2012

Error: Elapsed time: 00:02:23

Error: Total CPU time (on all processors): 00:02:20

Error: Quartus II Full Compilation was unsuccessful. 4 errors, 494 warnings

--- Quote End ---

Has anyone faced this issue?

What can I do?

P.S.:

You may think that it's stupid to instanciate a memory of depth 1.

Actually the depth is generic and may be greater than 1, which is why I need a memory. But I need the system to work even if the user wants a depth of 1.

Thx

Julien

2 Replies

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

    --- Quote Start ---

    I tried to instanciate an altdpram with NUMWORDS => 1 and WIDTHA => 1.

    --- Quote End ---

    Mathematically incorrect, isn't it? 2^(WIDTHAD - 1) seems simply wrong.

    Most likely,you need to generate a RAM with NUMWORDS = 2 and map it respectively.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    As an additional observation, I have no difficulties to set NUMWORDS values smaller than (2^widthad-1) with altsyncram, also NUMWORDS = 1 in a direct instantiation of the VHDL component.

    I don't know if there are any differences with altdpram, which it isn't but a wrapper of altsyncram.