Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

- Community Forums
- :
- Forums
- :
- Hardware Development
- :
- AI Engine, DSP IP and Tools
- :
- Re: Implementation logarithm with CORDIC IP core?

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

Highlighted
##

simopal6

Observer

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

10-29-2010 04:05 AM

8,606 Views

Registered:
08-06-2009

Implementation logarithm with CORDIC IP core?

Hello,

I need to implement the natural logarithm function and I'm trying to find out if I can use any IP core before implementing it myself. From what I've understood by reading here and there on the web, it could be possible to compute a logarithm by using the Cordic algorithm... However, mathematically, the logarithm depends on the inverse sinh function, which is not implemented by Cordic 4.0. I probably might calculate somehow, but I would need to instantiate too many cores.

Am I making any mistakes or not noticing something or is it actually impossible to computer a logarithm with the Cordic core?

Thank you!

5 Replies

Highlighted
##

ywu

Xilinx Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

10-29-2010 09:47 PM

8,594 Views

Registered:
11-28-2007

If you use System Generator, you can use the CORDIC LOG reference block in Xilinx Reference Blockset.

Cheers,

Jim

Jim

Highlighted
##

kostbill

Visitor

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

01-02-2011 10:01 AM

8,363 Views

Registered:
10-29-2010

Hello.

I am having the same problem but I cannot use system generator since I don't have MATLAB.

Are there any other ways?

Thank you.

Highlighted
##

You could do log2 by a look-up-table, implemented in a psuedo-ROM (by which I mean a BlockRAM initialised to the required value, then never written to).

A bit fiddly, but I have created Pseudo-ROMs for sine and cosine to avoid latency due to CORDIC implementations.

------------------------------------------

"If it don't work in simulation, it won't work on the board."

rcingham

Teacher

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

01-12-2011 06:56 AM

8,307 Views

Registered:
09-09-2010

A bit fiddly, but I have created Pseudo-ROMs for sine and cosine to avoid latency due to CORDIC implementations.

------------------------------------------

"If it don't work in simulation, it won't work on the board."

Highlighted
##

francism

Xilinx Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

01-14-2011 06:07 AM

8,291 Views

Registered:
05-23-2008

Hi Could you could write the log2 function as HDL function and then use that to create your array?

regards

Mike

Highlighted
##

juergenatduerr

Adventurer

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

05-24-2012 06:16 AM

7,516 Views

Registered:
02-09-2012

*the logarithm depends on the inverse sinh function*

You can use the atanh instead by expecting ln (x) = atanh((x-1) / (x+1))