// Copyright 2008 Altera Corporation. All rights reserved. // Altera products are protected under numerous U.S. and foreign patents, // maskwork rights, copyrights and other intellectual property laws. // // This reference design file, and your use thereof, is subject to and governed // by the terms and conditions of the applicable Altera Reference Design // License Agreement (either as signed by you or found at www.altera.com). By // using this reference design file, you indicate your acceptance of such terms // and conditions between you and Altera Corporation. In the event that you do // not agree with such terms and conditions, you may not use the reference // design file and please promptly destroy any copies you have made. // // This reference design file is being provided on an "as-is" basis and as an // accommodation and therefore all warranties, representations or guarantees of // any kind (whether express, implied or statutory) including, without // limitation, warranties of merchantability, non-infringement, or fitness for // a particular purpose, are specifically disclaimed. By making this reference // design file available, Altera expressly does not recommend, suggest or // require that this reference design file be used in combination with any // other product not provided by Altera. ///////////////////////////////////////////////////////////////////////////// // baeckler - 08-06-2008 #include #include //////////////////////////////////////// // convert float to fixed point signed binary // values must be in the range -2..2 //////////////////////////////////////// void conv_binary (double val, int bits) { double f; int n = 0; fprintf (stdout,"%d'b",bits); // handle the top bit to become positive if (val < 0.0) { fprintf (stdout,"1"); val += 2.0; } else { fprintf (stdout,"0"); } // handle remaining bits for (n=0; n= f) { fprintf (stdout,"1"); val -= f; } else { fprintf (stdout,"0"); } } } //////////////////////////////////////// // generate an arctan table for CORDIC //////////////////////////////////////// int main (void) { double f = 1.0, at=0.0; double pi = 3.14159265358979; double gain = 1.0, gain_term; int const bits = 16; int const rounds = 16; int n = 0; // ROM content for (n=0; n