SlideShare a Scribd company logo
10
Most read
14
Most read
20
Most read
Project on
    VHDL and Digital Circuit Design
(Implementation Of CORDIC Algorithm
 for trigonometric functions in VHDL)

       Submitted at : CEERI,Pilani


       Submitted By :Subeer Rangra
            08EBKCS059
CONTENTS

VHDL: History
VHDL: Basics
VHDL: Design Units
CORDIC Algorithm
•   Key Idea
•   Rotations
•   Iterations
•   Rotation Mode
•   Hardware
Result
Conclusion
VHDL: History

Was developed in the early 1980s for managing design
problems that involved large circuits and multiple teams of
engineers.
Funded by U.S. Department of Defense.
The first publicly available version was released in 1985.
In 1986 IEEE (Institute of Electrical and Electronics Engineers,
Inc.) was presented with a proposal to standardize the VHDL.
In 1987 standardization => IEEE 1076-1987
An improved version of the language was released in
1994 => IEEE standard1076-1993.
VHDL: Basics


VHDL stands for VHSIC Hardware Description
Language
Hardware description language used for modeling
digital systems.
It provides designing of digital systems at various
levels of abstraction.
Used to write text models that describe a logic circuit.
VHDL: Design Units



1. Entity declaration.
2. Architecture.
3. Configuration.
4. Package declaration.
5. Package body.
Entities


• A black box with interface
  definition.                            Inputs and Outputs

• Defines the inputs/outputs of a
                                     A
  component (define pins).
• A way to represent modularity in   B                        E
                                              Chip
  VHDL.                              C

• Similar to symbol in schematic.    D
• Entity declaration describes and
  initializes an entity.
Architectures

• Every entity has at least one architecture.
• One entity can have several architectures.
• Architectures can be written using these
  following methodologies..                     A   Chip
       – Dataflow
                                                B          E
       – Behavioral                                  X

       – Structural (component )                C    Y
• Architectures can describe design on
  many levels                                   D
       – Gate level
       – RTL (Register Transfer Level)
       – Behavioral level
Configurations


•   A configuration declaration is used to select one
    of the possibly many architecture bodies that an
    entity may have.
•   Configuration specifies the design entity used in
    place of each component instance (i.e. it plugs
    the chip into the chip socket and then the socket-
    chip assembly into the PCB).
•   To represent structure in that architecture body
    of an entity-architecture pair or by a
    configuration, which reside in library.
Packages
Packages contain information common to many
design units.
1.Package declaration
       – constant declarations
       – type and subtype declarations
       – function and procedure declarations
       – global signal declarations
       – file declarations
       – component declarations
2.Package body
       – is not necessary needed
       – function bodies
       – procedure bodies
CORDIC Algorithm
COordinate Rotation DIgital Computer

 CORDIC, which stands
 for COordinate Rotation Digital Computer, is an algorithm
 developed by Volder in the fifties which allows you to
 calculate trigonometric functions using simple shift and add
 operations. This is an advantage for hardware
 implementations were multipliers are normally resource
 demanding . The algorithm can be adapted to also compute
 fix/floating point multiply, divide, log, exponent and square
 root. The module computes fix point sin and cos values from
 a given angle.
CORDIC Algorithm
                  Key Idea

• If we have a computationally efficient way of
  rotating a vector, we can evaluate cos & sin
• At each step, accumulate corresponding x and y
  increments
• After a number of iterations, x and y increments
  converge to desired function values
Rotations
Rotate the vector OE (i) with end point at (x (i), y (i)) by                                 (i)


x (i+1) = x (i) cos       (i)–   y (i) sin    (i)   = (x (i) – y (i) tan         (i))/(1   + tan2      (i))1/2


y (i+1) = y (i) cos       (i)   + x (i) sin         (i)   = (y (i) + x (i) tan     (i))/(1    + tan2      (i)   ) 1/2
z (i+1) = z (i) +   (i)


Goal: eliminate the divisions by (1 + tan2                            (i)) 1/2   and choose         (i)   so that tan   (i)

is a power of 2

Take the transformation x (i+1) = x (i) cos                           (i)–  y (i) sin      (i)

                        y (i+1) = y (i) cos                            (i) + x (i) sin       (i)



Rearrange as                            x (i+1) = cos • ( x - y tan )
                                        y (i+1) = cos • ( x + y tan )

But we can choose the rotation angles, 1, 2, …,                                          m
So choose,                            -1 -m
                               m = tan 2

so that                                             tan        m   = 2-m
Thus the tan m factors are derived from simple shifts as 2-m corresponds to
linear binary shift.
Whereas a real rotation does not change the length R(i) of the vector, a
pseudorotation step increases its length to:
R(i+1) = R(i) (1 + tan2       (i))1/2


The coordinates of the new end point E (i+1) after pseudorotation is derived
by multiplying the coordinates of E(i+1) by the expansion factor
x (i+1) = x (i) – y (i) tan       (i)


y (i+1) = y (i) + x (i) tan       (i)   [Pseudorotation]
z (i+1) = z (i) + (i)
Now the ith step, calculating (xi+1, yi+1) from (xi, yi)
can be written
                      xi+1 = Ki ( xi - yi di 2-i )
                      yi+1 = Ki ( yi - xi di 2-i )

                                                            1
Where              Ki = cos(        tan-1 2-i )   =
                                                      ( 1 + 2-2i )
And                di =       1

which is determined by the direction of the necessary correction
Now the product,    Ki = ( ( 1 + 2-2i )-1     0.6073
is a constant depending on the number of iterations
Basic CORDIC Iterations


Pick     (i)   such that tan     (i)   = di 2 –i, di Î {–1, 1}
x(i+1) = x(i) – di y(i)2–i
y (i+1) = y (i) + di x(i)2–I [CORDIC iteration]
z (i+1) = z (i) – di tan–1 2–i
If we always pseudo rotate by the same set of angles
(with + or – signs), then the expansion factor K is a
constant that can be pre-computed

                                                                 e (i) = tan –1 2-i
e (i) = tan –1 2-i

Example: pseudo rotation for 30 degrees
30.0    45.0 – 26.6 + 14.0 – 7.1 + 3.6 + 1.8 – 0.9
+ 0.4 – 0.2 + 0.1 = 30.1
CORDIC Rotation Mode


CORDIC calculations can be made in two ways
• Rotation mode
• Vector mode
   Here we use the rotation mode
        An input vector is rotated by a specified angle
        Angle accumulator is initialized with an angle
        This angle is reduced to zero
             An (x,y) pair
        The equations are:      xi+1 = xi - yi di 2-i
                                yi+1 = yi + xi di 2-i
                                zi+1 = zi - di tan-1( 2-i )

           and                  di = -1 if zi < 0
                                     +1 otherwise
The results are:       xn = Kn ( x0 cos z0 - y0 sin z0 )
                       yn = Kn ( x0 sin z0 + y0 cos z0 )
                       Zn = 0
                       Kn =     ( 1 + 2-2i )

                   Set x0 = 1 and y0 = 0 the indicial values of x & y
                    And get the values ofcos(z0) and sin(z0)



Note
    Kn is a constant - dependent only on the number of iterations
    The algorithm would normally be run for a fixed number of iterations
    A result with a known accuracy bound
    Note that the whole calculation requires shifts , add/ subtracts only
CORDIC Hardware(Basic)
CORDIC Hardware
Serial CORDIC Module in HDL Designer
Result

CORDIC algorithm for finding the values
trigonometric function sine and cosine ,was
successfully simulated .

On taking input value of z as the angle which is
to be calculated , and initializing the value of K
as 0.607252935008881256….for 10 iterations.
x as 1 and y as 0,we get the answer for the
value of cos(z) and vice versa for sin(z).
Conclusion


CORDIC is not the fastest way to perform multiplications
or to compute logarithms and exponentials but, since
the same algorithm allows the computation of most
mathematical functions using very simple basic
operations, it is attractive for hardware
implementations.
Thank You

More Related Content

PPTX
All About VLSI In PPT
PDF
Cordic Code
PDF
Introduction to VLSI Design
PPTX
sc vector
PDF
Vlsi design
PPT
Vlsi design mosfet
PPT
Chapter 10
PPTX
Convolutional codes
All About VLSI In PPT
Cordic Code
Introduction to VLSI Design
sc vector
Vlsi design
Vlsi design mosfet
Chapter 10
Convolutional codes

What's hot (20)

PDF
Electronics Lab Manual by Er. Swapnil V. Kaware
PPTX
Bicmos Technology - Overview
PPT
Fan-in and Fan-out.ppt
PPT
Switch level modeling
PDF
VLSI Design Flow
PPT
DOMINO LOGIC CIRCUIT (VLSI)
PPTX
VERY LARGE SCALE INTEGRATION (VLSI) TECHNOLOGY
PPTX
Clock divider by 3
PPTX
Verilog HDL
PPT
CMOS VLSI design
PPTX
CMOS Fabrication using P-well -VLSI
DOCX
UNIT-IV .FINITE STATE MACHINES
PPT
Pass Transistor Logic
PDF
Question paper with solution the 8051 microcontroller based embedded systems...
DOCX
4 bit uni shift reg
PDF
DESIGN OF TWO-STAGE OP AMPS.pdf
PDF
Convolution codes - Coding/Decoding Tree codes and Trellis codes for multiple...
PDF
Overview of digital design with Verilog HDL
PDF
Digital system design lab manual
PPTX
DFT and its properties
Electronics Lab Manual by Er. Swapnil V. Kaware
Bicmos Technology - Overview
Fan-in and Fan-out.ppt
Switch level modeling
VLSI Design Flow
DOMINO LOGIC CIRCUIT (VLSI)
VERY LARGE SCALE INTEGRATION (VLSI) TECHNOLOGY
Clock divider by 3
Verilog HDL
CMOS VLSI design
CMOS Fabrication using P-well -VLSI
UNIT-IV .FINITE STATE MACHINES
Pass Transistor Logic
Question paper with solution the 8051 microcontroller based embedded systems...
4 bit uni shift reg
DESIGN OF TWO-STAGE OP AMPS.pdf
Convolution codes - Coding/Decoding Tree codes and Trellis codes for multiple...
Overview of digital design with Verilog HDL
Digital system design lab manual
DFT and its properties
Ad

Similar to VHDL and Cordic Algorithim (20)

PDF
Ax4103307314
PDF
Implementation performance analysis of cordic
PDF
Ax03303120316
PDF
International Journal of Engineering Research and Development (IJERD)
PDF
Dk32696699
PDF
High speed cordic design for fixed angle of rotation
PDF
Reconfigurable Design of Rectangular to Polar Converter using Linear Convergence
PDF
A verilog based implementation of transcendental function calculator using co...
PDF
pandu-vivek (1)
PDF
FPGA Implementation of CORDIC Algorithm Architecture
PDF
P0440499104
PDF
CORDIC Algorithm for WLAN
PDF
Comparative analysis of multi stage cordic using micro rotation techniq
PDF
Comparative analysis of multi stage cordic using micro rotation techniq
PDF
Comparative analysis of multi stage cordic using micro rotation techniq
PDF
Fm33980983
PDF
Fm33980983
PDF
computer graphic and multimedia for the students of MCA
PDF
Comparative analysis of multi stage cordic using micro rotation technique
PDF
Designing of cordic processor in verilog using xilinx ise simulator
Ax4103307314
Implementation performance analysis of cordic
Ax03303120316
International Journal of Engineering Research and Development (IJERD)
Dk32696699
High speed cordic design for fixed angle of rotation
Reconfigurable Design of Rectangular to Polar Converter using Linear Convergence
A verilog based implementation of transcendental function calculator using co...
pandu-vivek (1)
FPGA Implementation of CORDIC Algorithm Architecture
P0440499104
CORDIC Algorithm for WLAN
Comparative analysis of multi stage cordic using micro rotation techniq
Comparative analysis of multi stage cordic using micro rotation techniq
Comparative analysis of multi stage cordic using micro rotation techniq
Fm33980983
Fm33980983
computer graphic and multimedia for the students of MCA
Comparative analysis of multi stage cordic using micro rotation technique
Designing of cordic processor in verilog using xilinx ise simulator
Ad

Recently uploaded (20)

PDF
TR - Agricultural Crops Production NC III.pdf
PDF
Computing-Curriculum for Schools in Ghana
PDF
Basic Mud Logging Guide for educational purpose
PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
PPTX
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
PDF
01-Introduction-to-Information-Management.pdf
PDF
Insiders guide to clinical Medicine.pdf
PDF
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PDF
Abdominal Access Techniques with Prof. Dr. R K Mishra
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PDF
Microbial disease of the cardiovascular and lymphatic systems
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PPTX
human mycosis Human fungal infections are called human mycosis..pptx
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PPTX
Institutional Correction lecture only . . .
TR - Agricultural Crops Production NC III.pdf
Computing-Curriculum for Schools in Ghana
Basic Mud Logging Guide for educational purpose
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
01-Introduction-to-Information-Management.pdf
Insiders guide to clinical Medicine.pdf
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
FourierSeries-QuestionsWithAnswers(Part-A).pdf
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
Renaissance Architecture: A Journey from Faith to Humanism
Abdominal Access Techniques with Prof. Dr. R K Mishra
2.FourierTransform-ShortQuestionswithAnswers.pdf
Microbial disease of the cardiovascular and lymphatic systems
Final Presentation General Medicine 03-08-2024.pptx
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
human mycosis Human fungal infections are called human mycosis..pptx
Microbial diseases, their pathogenesis and prophylaxis
Supply Chain Operations Speaking Notes -ICLT Program
Institutional Correction lecture only . . .

VHDL and Cordic Algorithim

  • 1. Project on VHDL and Digital Circuit Design (Implementation Of CORDIC Algorithm for trigonometric functions in VHDL) Submitted at : CEERI,Pilani Submitted By :Subeer Rangra 08EBKCS059
  • 2. CONTENTS VHDL: History VHDL: Basics VHDL: Design Units CORDIC Algorithm • Key Idea • Rotations • Iterations • Rotation Mode • Hardware Result Conclusion
  • 3. VHDL: History Was developed in the early 1980s for managing design problems that involved large circuits and multiple teams of engineers. Funded by U.S. Department of Defense. The first publicly available version was released in 1985. In 1986 IEEE (Institute of Electrical and Electronics Engineers, Inc.) was presented with a proposal to standardize the VHDL. In 1987 standardization => IEEE 1076-1987 An improved version of the language was released in 1994 => IEEE standard1076-1993.
  • 4. VHDL: Basics VHDL stands for VHSIC Hardware Description Language Hardware description language used for modeling digital systems. It provides designing of digital systems at various levels of abstraction. Used to write text models that describe a logic circuit.
  • 5. VHDL: Design Units 1. Entity declaration. 2. Architecture. 3. Configuration. 4. Package declaration. 5. Package body.
  • 6. Entities • A black box with interface definition. Inputs and Outputs • Defines the inputs/outputs of a A component (define pins). • A way to represent modularity in B E Chip VHDL. C • Similar to symbol in schematic. D • Entity declaration describes and initializes an entity.
  • 7. Architectures • Every entity has at least one architecture. • One entity can have several architectures. • Architectures can be written using these following methodologies.. A Chip – Dataflow B E – Behavioral X – Structural (component ) C Y • Architectures can describe design on many levels D – Gate level – RTL (Register Transfer Level) – Behavioral level
  • 8. Configurations • A configuration declaration is used to select one of the possibly many architecture bodies that an entity may have. • Configuration specifies the design entity used in place of each component instance (i.e. it plugs the chip into the chip socket and then the socket- chip assembly into the PCB). • To represent structure in that architecture body of an entity-architecture pair or by a configuration, which reside in library.
  • 9. Packages Packages contain information common to many design units. 1.Package declaration – constant declarations – type and subtype declarations – function and procedure declarations – global signal declarations – file declarations – component declarations 2.Package body – is not necessary needed – function bodies – procedure bodies
  • 10. CORDIC Algorithm COordinate Rotation DIgital Computer CORDIC, which stands for COordinate Rotation Digital Computer, is an algorithm developed by Volder in the fifties which allows you to calculate trigonometric functions using simple shift and add operations. This is an advantage for hardware implementations were multipliers are normally resource demanding . The algorithm can be adapted to also compute fix/floating point multiply, divide, log, exponent and square root. The module computes fix point sin and cos values from a given angle.
  • 11. CORDIC Algorithm Key Idea • If we have a computationally efficient way of rotating a vector, we can evaluate cos & sin • At each step, accumulate corresponding x and y increments • After a number of iterations, x and y increments converge to desired function values
  • 13. Rotate the vector OE (i) with end point at (x (i), y (i)) by (i) x (i+1) = x (i) cos (i)– y (i) sin (i) = (x (i) – y (i) tan (i))/(1 + tan2 (i))1/2 y (i+1) = y (i) cos (i) + x (i) sin (i) = (y (i) + x (i) tan (i))/(1 + tan2 (i) ) 1/2 z (i+1) = z (i) + (i) Goal: eliminate the divisions by (1 + tan2 (i)) 1/2 and choose (i) so that tan (i) is a power of 2 Take the transformation x (i+1) = x (i) cos (i)– y (i) sin (i) y (i+1) = y (i) cos (i) + x (i) sin (i) Rearrange as x (i+1) = cos • ( x - y tan ) y (i+1) = cos • ( x + y tan ) But we can choose the rotation angles, 1, 2, …, m So choose, -1 -m m = tan 2 so that tan m = 2-m Thus the tan m factors are derived from simple shifts as 2-m corresponds to linear binary shift.
  • 14. Whereas a real rotation does not change the length R(i) of the vector, a pseudorotation step increases its length to: R(i+1) = R(i) (1 + tan2 (i))1/2 The coordinates of the new end point E (i+1) after pseudorotation is derived by multiplying the coordinates of E(i+1) by the expansion factor x (i+1) = x (i) – y (i) tan (i) y (i+1) = y (i) + x (i) tan (i) [Pseudorotation] z (i+1) = z (i) + (i) Now the ith step, calculating (xi+1, yi+1) from (xi, yi) can be written xi+1 = Ki ( xi - yi di 2-i ) yi+1 = Ki ( yi - xi di 2-i ) 1 Where Ki = cos( tan-1 2-i ) = ( 1 + 2-2i ) And di = 1 which is determined by the direction of the necessary correction Now the product, Ki = ( ( 1 + 2-2i )-1 0.6073 is a constant depending on the number of iterations
  • 15. Basic CORDIC Iterations Pick (i) such that tan (i) = di 2 –i, di Î {–1, 1} x(i+1) = x(i) – di y(i)2–i y (i+1) = y (i) + di x(i)2–I [CORDIC iteration] z (i+1) = z (i) – di tan–1 2–i If we always pseudo rotate by the same set of angles (with + or – signs), then the expansion factor K is a constant that can be pre-computed e (i) = tan –1 2-i
  • 16. e (i) = tan –1 2-i Example: pseudo rotation for 30 degrees 30.0 45.0 – 26.6 + 14.0 – 7.1 + 3.6 + 1.8 – 0.9 + 0.4 – 0.2 + 0.1 = 30.1
  • 17. CORDIC Rotation Mode CORDIC calculations can be made in two ways • Rotation mode • Vector mode Here we use the rotation mode An input vector is rotated by a specified angle Angle accumulator is initialized with an angle This angle is reduced to zero An (x,y) pair The equations are: xi+1 = xi - yi di 2-i yi+1 = yi + xi di 2-i zi+1 = zi - di tan-1( 2-i ) and di = -1 if zi < 0 +1 otherwise
  • 18. The results are: xn = Kn ( x0 cos z0 - y0 sin z0 ) yn = Kn ( x0 sin z0 + y0 cos z0 ) Zn = 0 Kn = ( 1 + 2-2i ) Set x0 = 1 and y0 = 0 the indicial values of x & y  And get the values ofcos(z0) and sin(z0) Note Kn is a constant - dependent only on the number of iterations The algorithm would normally be run for a fixed number of iterations A result with a known accuracy bound Note that the whole calculation requires shifts , add/ subtracts only
  • 20. CORDIC Hardware Serial CORDIC Module in HDL Designer
  • 21. Result CORDIC algorithm for finding the values trigonometric function sine and cosine ,was successfully simulated . On taking input value of z as the angle which is to be calculated , and initializing the value of K as 0.607252935008881256….for 10 iterations. x as 1 and y as 0,we get the answer for the value of cos(z) and vice versa for sin(z).
  • 22. Conclusion CORDIC is not the fastest way to perform multiplications or to compute logarithms and exponentials but, since the same algorithm allows the computation of most mathematical functions using very simple basic operations, it is attractive for hardware implementations.