0

So I am using simulink to generate a series of upsampling filter. I have my input as a sine wave with 44.1 kHz input and a output sine wave of 11.2 MHz. For this I use a set of 4 FIR Interpolation Filter from Simulink. The first one with a upsample of 32 and the rest with upsample of 2.

The problem is with the Fmax (the highest value at which the circuit can be clocked). I get a Fmax which is really low. Like below 50 MHz. I did some optimizations and got it up here. I want to rise it more. If any one can help me I can attach the simulink file I have

I am using MATLAB HDL coder and Altera Quatras 2 for my synthesis purposes

1
  • Fmax is likely to be half of your final sampling frequency. I don't get the question. Commented Aug 28, 2016 at 15:39

2 Answers 2

1

First of all, i do not understand why you would upsample by 32 and then 4 times by 2. You should analyze the slowest path.

If the addition is a bottleneck, that would be in the 32x upsampling and 8,8,8 would be better. However, all depends on the implementation, which I can't guess from here.

I would advise to have a look at FIR filters. Reducing the number of FIR stages will increase your speed at the cost of increased , SNR, which may or may not be tolerable. You could take one with a very short impulse response.

You could also reduce the number bits used to represent the samples. This will again decrease the SNR but consume less logic and is likely to be faster.

You also consider to or not to use hard multiplier blocks, if available in the technology you are targetting.

Otherwise, have a look at parallel FIR filter implementations. Though I bet you'll have to implement that one yourself.

And of course, as you pointed out yourself, realistic constraints are required.

Good luck. Please consider liking my post.

Sign up to request clarification or add additional context in comments.

Comments

0

Thank for the answer. Yes i need the 4 stages of upsampling because of my project requirements. My input sampling frequency is varying and my output should always be 11.2 MHz, so thats why i need those 4 different stages in order to generate output for 4 different stages.

I optimized the FIR filters by using pipeline registers, reduced the number of multipliers of the 32 upsample one using the partly serial architecture.

I guess the problem was i was not using a SDC file as need for timinig analysis by altera, now when i configure a simple SDC file, i get positive slack value and a restriected Fmax of 24.5 MHz, as my output needs to be 11.2 MHz i guess this is fine enough.

If you have some more suggestions on this please let me know, i did not quite understand the fact of the SNR

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.