Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20789 Discussions

mismatching connect

Altera_Forum
Honored Contributor II
903 Views

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.
0 Kudos
2 Replies
Altera_Forum
Honored Contributor II
188 Views

No You can't. 

 

 

Provide more information if You want any answers. Code snippets, comments, etc.
0 Kudos
Altera_Forum
Honored Contributor II
188 Views

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
0 Kudos
Reply