Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

YAC - Yet Another CORDIC Core

NotificationsYou must be signed in to change notification settings

feddischson/yac

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This repository holds a CORDIC digital design written in VHDL. which can be used e.g. for integration in FPGA-based SOCs.

Description

CORDIC is the acronym for COordinate Rotation DIgital Computer andallows a hardware efficient calculation of various functionslike - atan, sin, cos - atanh, sinh, cosh, - division, multiplication.Hardware efficient means, that only shifting, additions andsubtractions in combination with table-lookup is required. This makesit suitable for a realization in digital hardware. Goodintroductions can be found in [1][2][3][5].

The following six CORDIC modes are supported:

  • trigonometric rotation
  • trigonometric vectoring
  • linear rotation
  • linear vectoring
  • hyperbolic rotation
  • hyperbolic vectoring

Furthermore, the CORDIC algorithm is implemented for iterativeprocessing which means, that the IP-core is startedwith a set of input data and after a specific amount ofclock cycles, the result isavailable. No parallel data can be processed.

In addition to an IP-core written in VHDL, a bit-accurate C-modelis provided. This C-model can be compiled as mex for a usage with Octave orMatlab. Therefore, this C-model allows a bit-accurate analysisof the CORDIC performance on a higher level.

For a more detailed documentation, see./doc/documentation.pdf

Status

  • C-model implementation is done
  • RTL model implementation is done
  • RTL model is verified against C-model
  • Wishbone-bus wrapper is added
  • Included into a small SoC, tested on a spartan-3 FPGA
  • Testing within an SOC is done (see./test_sys)

Next-Steps / Open Points

  • Circuit optimizations
  • Numerical optimizations

Files and folders:

  • ./c_octave contains a bit-accurate C-implementation of the YAC.This C-implementation is used for analyzing the performanceand to generate RTL testbench stimulus(cordic_iterative_test.m).The file cordic_iterative_code.m is used to create someVHDL/C-code automatically.
  • ./rtl/vhdl Contains the VHDL implementation files
  • ./doc Will contain a detailed documentation in future.
  • ./test_sys Contains a test system to test the YAC on a spartan-3an board

References

License

                   Copyright Notice                                   This file is part of YAC - Yet Another CORDIC Core                  Copyright (c) 2014, Author(s), All rights reserved.                 YAC is free software; you can redistribute it and/or                modify it under the terms of the GNU Lesser General Public          License as published by the Free Software Foundation; either        version 3.0 of the License, or (at your option) any later version.  YAC is distributed in the hope that it will be useful,              but WITHOUT ANY WARRANTY; without even the implied warranty of      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU   Lesser General Public License for more details.                     You should have received a copy of the GNU Lesser General Public    License along with this library. If not, download it from           http://www.gnu.org/licenses/lgpl                                           Author(s):  Christian Haettich                 Email       feddischson@gmail.com

[8]ページ先頭

©2009-2025 Movatter.jp