cordic

所属分类:VHDL/FPGA/Verilog
开发工具:VHDL
文件大小:197KB
下载次数:33
上传日期:2012-09-06 20:26:13
上 传 者cai74624056
说明:  用verilog语言实现的cordic算法,计算角度
(Use verilog language realization of cordic algorithm, computing Angle )

文件列表:
cordic\cla\hdl\adder.v (2399, 2000-05-12)
cordic\cla\hdl\BitMux21.v (1747, 2000-05-12)
cordic\cla\hdl\BusMux21.v (1905, 2000-05-12)
cordic\cla\hdl\cla.v (2472, 2000-05-12)
cordic\cla\hdl\compl.v (3034, 2000-05-12)
cordic\cla\hdl\cordic.v (3615, 2000-05-12)
cordic\cla\hdl\header.v (1579, 2000-05-12)
cordic\cla\hdl\mem.pla (690, 2000-05-12)
cordic\cla\hdl\mem.v (3025, 2000-05-12)
cordic\cla\hdl\shifter.v (1687, 2000-05-12)
cordic\cla\hdl\sim.txt (89, 2000-05-12)
cordic\cla\hdl\stimulas.v (2338, 2000-05-12)
cordic\cla\script\syn.scr (1190, 2000-05-12)
cordic\cla.rca\hdl\adder.v (3413, 2000-05-12)
cordic\cla.rca\hdl\BitMux21.v (1747, 2000-05-12)
cordic\cla.rca\hdl\BusMux21.v (1905, 2000-05-12)
cordic\cla.rca\hdl\cla.v (2444, 2000-05-12)
cordic\cla.rca\hdl\compl.v (3037, 2000-05-12)
cordic\cla.rca\hdl\cordic.v (3605, 2000-05-12)
cordic\cla.rca\hdl\header.v (1626, 2000-05-12)
cordic\cla.rca\hdl\mem.pla (649, 2000-05-12)
cordic\cla.rca\hdl\mem.v (3026, 2000-05-12)
cordic\cla.rca\hdl\shifter.v (1686, 2000-05-12)
cordic\cla.rca\hdl\sim.txt (89, 2000-05-12)
cordic\cla.rca\hdl\stimulas.v (2339, 2000-05-12)
cordic\cla.rca\script\syn.scr (1190, 2000-05-12)
cordic\Makefile (915, 2000-05-12)
cordic\rca\hdl\adder.v (2399, 2000-05-12)
cordic\rca\hdl\BitMux21.v (1747, 2000-05-12)
cordic\rca\hdl\BusMux21.v (1905, 2000-05-12)
cordic\rca\hdl\compl.v (3034, 2000-05-12)
cordic\rca\hdl\cordic.v (3605, 2000-05-12)
cordic\rca\hdl\header.v (1579, 2000-05-12)
cordic\rca\hdl\mem.pla (649, 2000-05-12)
cordic\rca\hdl\mem.v (3025, 2000-05-12)
cordic\rca\hdl\rca.v (1694, 2000-05-12)
cordic\rca\hdl\shifter.v (1687, 2000-05-12)
cordic\rca\hdl\sim.txt (89, 2000-05-12)
cordic\rca\hdl\stimulas.v (2340, 2000-05-12)
cordic\rca\script\syn.scr (1191, 2000-05-12)
... ...

//---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //-- The Free IP Project //-- Verilog Free-CORDIC Core //-- (c) 2000, The Free IP Project and Rohit Sharma (srohit@free-ip.com) //-- //-- //-- FREE IP GENERAL PUBLIC LICENSE //-- TERMS AND CONDITIONS FOR USE, COPYING, DISTRIBUTION, AND MODIFICATION //-- //-- 1. You may copy and distribute verbatim copies of this core, as long //-- as this file, and the other associated files, remain intact and //-- unmodified. Modifications are outlined below. //-- 2. You may use this core in any way, be it academic, commercial, or //-- military. Modified or not. //-- 3. Distribution of this core must be free of charge. Charging is //-- allowed only for value added services. Value added services //-- would include copying fees, modifications, customizations, and //-- inclusion in other products. //-- 4. If a modified source code is distributed, the original unmodified //-- source code must also be included (or a link to the Free IP web //-- site). In the modified source code there must be clear //-- identification of the modified version. //-- 5. Visit the Free IP web site for additional information. //-- http://www.free-ip.com //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- INTRODUCTION The CORDIC (COordinate Rotation Digital Computing) algorithm is a time and space efficient algorithm mainly used for calculate the Sine and Cosine of a given angle. It can also be used for computing log, exponent and square root. Common uses are sine and cosine generation, vector magnitude, polar- cartesian conversions, and vector rotation. The Free-CORDIC core is a parameterized Verilog RTL code for a 16 bit fixed point CORDIC. The input to this system is 17 bit angle in degrees (signed magnitude representation) and output is 17 bit sine and cosine values. The time efficiency in this algorithm is brought about by the replacement of multiplication/division operation by shift operation. Hence the only costly operation left is addition. So adders are the heart of CORDIC architecture. The Free-CORDIC core uses three different adders, i.e. CLA (Carry Look-ahead Adder), RCA (Ripple Carry Adder)and a combination of CLA and RCA. Combination of CLA and RCA means small sets of CLAs connected through rippling carry-out and carry-ins. All the three architectures have their area versus efficiency trade-offs. Generally, CLA based CORDIC has minimum area but slower in speed in comparision to other two CORDIC architectures, whereas segmented CLA based CORDIC gives best performance with area panelty. APPLICATIONS o 16 bit fixed point arithmetic. o Input angle range -45 degrees to +45 degrees. o Input angle value: signed magnitude representation (1 sign bit, 8 integer bits, 8 fractional bits). o Output values in 2's complement representation. o Synchronous reset. o Parameterized Verilog RTL code with sample synthesis script (For Synopsys DC). INTERFACE Verilog instantiation in oc the free-CORDIC would look like this. cordic cordicInstance (CosX,SinX,theta,Sign,clock,reset); SIGNAL DECLARATION clock | Input | The main system clock. All synchronous signals are clocked off the rising edge of clk. reset | Input | An active high synchronous reset signal. Sign | Input | Sign bit for the input Angle. theta | Input | 16 bit input in degrees (8 integer bits, 8 fractional bits). CosX | Output | 17 bit output value (1 bit sign and 16 bit value) of Cos(theta) in 2's complement representation. Valid only after 16 clock cycle from reset goes low. SinX | Output | 17 bit output value (1 bit sign and 16 bit value) of Sin(theta) in 2's complement representation. Valid only after 16 clock cycle from reset goes low. CONTENTS After unzipping, you shall see the following directories and subdirectories. README : this file. cla/ : CORDIC uding carry look ahead adder. hdl/ : verilog RTL code. script/ : sample script for synthesis. cla.rca/ : CORDIC uding carry look ahead and ripple carry adder. hdl/ : verilog RTL code. script/ : sample script for synthesis. cla/ : CORDIC uding carry look ahead adder. hdl/ : verilog RTL code. script/ : sample script for synthesis. SIMULATION file sim.txt (present under each hdl/ directory) contains the file names exactly the order the simulator should see. For example, with verilog-XL issue the\ following commands to get the simulattion results. > cd cla/hdl > verilog -f sim.txt SYNTHESIS see the sample script */script/syn.scr under each directory. If you have any more questions, free free to drop me a mail at srohit@free-ip.com. HISTORY v0.1 - The inital release (May, 2000)

近期下载者

相关文件


收藏者