- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Everyone,
This is my first DSP Builder project and my first FPGA project. I have designed to the best of my knowledge a working costas loop in Simulink with ModelPrim blocks. The simulation in Simulink works the way I want. However when activating hardware generation I get a "Found insufficient delay attempting...". I have the feeling that this is related to the feedback loop in the model. If I remove the feedback it will generate. Is there an easy fix to make my loop work or should it be implemented differently without feedback ? (wouldn't be a Costas Loop anymore I guess). My second option would be to implement a squaring loop but I can't seem to find a way to divide my squared signal by two.... Any help would be appreciated. Attached is my model, sampled data of my signal and the Cos/Sine LUT. Thanks, CarlLink Copied
4 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- Hello Everyone, This is my first DSP Builder project and my first FPGA project. I have designed to the best of my knowledge a working costas loop in Simulink with ModelPrim blocks. The simulation in Simulink works the way I want. However when activating hardware generation I get a "Found insufficient delay attempting...". I have the feeling that this is related to the feedback loop in the model. If I remove the feedback it will generate. Is there an easy fix to make my loop work or should it be implemented differently without feedback ? (wouldn't be a Costas Loop anymore I guess). My second option would be to implement a squaring loop but I can't seem to find a way to divide my squared signal by two.... Any help would be appreciated. Attached is my model, sampled data of my signal and the Cos/Sine LUT. Thanks, Carl --- Quote End --- I assume you have used loop filter in which case I am surprised that you don't have delay through the filter(due to latency). Anyway you can add registers in the feedback loop to add further delay to that of loop filter. You can't have costas loop without the feedback loop.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- I assume you have used loop filter in which case I am surprised that you don't have delay through the filter(due to latency). Anyway you can add registers in the feedback loop to add further delay to that of loop filter. You can't have costas loop without the feedback loop. --- Quote End --- I tried with various delays wihtout success..... until I tried a much longer delay (64). It now works. Thanks for the reply, Carl
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Note that you can insert a sampleDelay in the feedback path, and click "minimum delay" Then you get the smallest delay that will close the loop.
You can also reduce this number of delay by reducing your clockrate. 64 seems large for a kostas loop. Are you doing this floating point? --- Quote Start --- I tried with various delays wihtout success..... until I tried a much longer delay (64). It now works. Thanks for the reply, Carl --- Quote End ---- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Original version was floating point. Minimum delay (manual value) that closed the loop is around 32.
Thanks for the "minimum delay" option info! Carl
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page