Forum Discussion

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

mismatching connect

Hi every one

Im working with design dds i built my phase acumulator using and create block for specifc phase accumulator design with (23..80 output .I connect the phase accum (PA) to RAM with inetial input (0..2*addr_width -1) .Running the processing (start analysis &elaboration) ,i meet mismatching problem in connect between PAand RAM.

can i recieve any help od advice for solution this problem.

2 Replies

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

    No You can't.

    Provide more information if You want any answers. Code snippets, comments, etc.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Ok, I'll guess ...

    You have a phase accumulator with PWIDTH bits, you have a RAM with AWIDTH bits, and AWIDTH < PWIDTH ... so how do you connect these?

    You need to think of both as complete rotations around an imaginary phasor (circle). Both have to go a complete 360-degrees around the circle as the number goes from 0 to 2**PWIDTH-1 or 2**AWIDTH-1.

    The answer is, the MSBs need to be connected together, i.e.,

    ram <= acc(PWIDTH-1 downto PWIDTH-AWIDTH);

    where ram(AWIDTH-1 downto 0), and you've connected the AWIDTH MSBs of the accumulator to the RAM.

    Or something like that anyway ... :)

    There's some stuff on NCOs in here:

    http://www.ovro.caltech.edu/~dwh/correlator/pdf/esc-100paper_hawkins.pdf (http://www.ovro.caltech.edu/%7edwh/correlator/pdf/esc-100paper_hawkins.pdf)

    A nice way to interpret the accumulator, is that it is a fixed-point number in fractional integer format, with the whole part being the address into the RAM.

    Cheers,

    Dave