SlideShare uma empresa Scribd logo
1 de 23
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

Mais conteúdo relacionado

Mais procurados

Multi mode multi corner (mmmc)
Multi mode multi corner (mmmc)Multi mode multi corner (mmmc)
Multi mode multi corner (mmmc)shaik sharief
 
Vlsi Summer training report pdf
Vlsi Summer training report pdfVlsi Summer training report pdf
Vlsi Summer training report pdfGirjeshVerma2
 
Quadratic Programming : KKT conditions with inequality constraints
Quadratic Programming : KKT conditions with inequality constraintsQuadratic Programming : KKT conditions with inequality constraints
Quadratic Programming : KKT conditions with inequality constraintsMrinmoy Majumder
 
SIGNAL OPERATIONS
SIGNAL OPERATIONSSIGNAL OPERATIONS
SIGNAL OPERATIONSmihir jain
 
Special technique in Low Power VLSI design
Special technique in Low Power VLSI designSpecial technique in Low Power VLSI design
Special technique in Low Power VLSI designshrutishreya14
 
Digital VLSI Design and FPGA Implementation
Digital VLSI Design and FPGA ImplementationDigital VLSI Design and FPGA Implementation
Digital VLSI Design and FPGA ImplementationAmber Bhaumik
 
Synchronous Loadable Up and Down Counter
Synchronous Loadable Up and Down Counter Synchronous Loadable Up and Down Counter
Synchronous Loadable Up and Down Counter Digital System Design
 
Trends and challenges in vlsi
Trends and challenges in vlsiTrends and challenges in vlsi
Trends and challenges in vlsilabishettybhanu
 
Frequency response
Frequency responseFrequency response
Frequency responsePatel Jay
 
Code conversion using verilog code VHDL
Code conversion using verilog code VHDL Code conversion using verilog code VHDL
Code conversion using verilog code VHDL Bharti Airtel Ltd.
 
BJT Biasing for B.Tech Ist Year Engineering
BJT Biasing for B.Tech Ist Year EngineeringBJT Biasing for B.Tech Ist Year Engineering
BJT Biasing for B.Tech Ist Year EngineeringRaghav Bansal
 
SHORT CHANNEL EFFECTS IN MOSFETS- VLSI DESIGN
SHORT CHANNEL EFFECTS IN MOSFETS- VLSI DESIGNSHORT CHANNEL EFFECTS IN MOSFETS- VLSI DESIGN
SHORT CHANNEL EFFECTS IN MOSFETS- VLSI DESIGNNITHIN KALLE PALLY
 

Mais procurados (20)

z transforms
z transformsz transforms
z transforms
 
Multi mode multi corner (mmmc)
Multi mode multi corner (mmmc)Multi mode multi corner (mmmc)
Multi mode multi corner (mmmc)
 
Vlsi Summer training report pdf
Vlsi Summer training report pdfVlsi Summer training report pdf
Vlsi Summer training report pdf
 
Verilog
VerilogVerilog
Verilog
 
Flip flop
Flip flopFlip flop
Flip flop
 
Aicd cmos layouts
Aicd cmos layoutsAicd cmos layouts
Aicd cmos layouts
 
Quadratic Programming : KKT conditions with inequality constraints
Quadratic Programming : KKT conditions with inequality constraintsQuadratic Programming : KKT conditions with inequality constraints
Quadratic Programming : KKT conditions with inequality constraints
 
Verilog lab manual (ECAD and VLSI Lab)
Verilog lab manual (ECAD and VLSI Lab)Verilog lab manual (ECAD and VLSI Lab)
Verilog lab manual (ECAD and VLSI Lab)
 
SIGNAL OPERATIONS
SIGNAL OPERATIONSSIGNAL OPERATIONS
SIGNAL OPERATIONS
 
Special technique in Low Power VLSI design
Special technique in Low Power VLSI designSpecial technique in Low Power VLSI design
Special technique in Low Power VLSI design
 
L11_VV (1).pdf
L11_VV (1).pdfL11_VV (1).pdf
L11_VV (1).pdf
 
Digital VLSI Design and FPGA Implementation
Digital VLSI Design and FPGA ImplementationDigital VLSI Design and FPGA Implementation
Digital VLSI Design and FPGA Implementation
 
Synchronous Loadable Up and Down Counter
Synchronous Loadable Up and Down Counter Synchronous Loadable Up and Down Counter
Synchronous Loadable Up and Down Counter
 
Trends and challenges in vlsi
Trends and challenges in vlsiTrends and challenges in vlsi
Trends and challenges in vlsi
 
Frequency response
Frequency responseFrequency response
Frequency response
 
Code conversion using verilog code VHDL
Code conversion using verilog code VHDL Code conversion using verilog code VHDL
Code conversion using verilog code VHDL
 
BJT Biasing for B.Tech Ist Year Engineering
BJT Biasing for B.Tech Ist Year EngineeringBJT Biasing for B.Tech Ist Year Engineering
BJT Biasing for B.Tech Ist Year Engineering
 
Logic Synthesis
Logic SynthesisLogic Synthesis
Logic Synthesis
 
Pass Transistor Logic
Pass Transistor LogicPass Transistor Logic
Pass Transistor Logic
 
SHORT CHANNEL EFFECTS IN MOSFETS- VLSI DESIGN
SHORT CHANNEL EFFECTS IN MOSFETS- VLSI DESIGNSHORT CHANNEL EFFECTS IN MOSFETS- VLSI DESIGN
SHORT CHANNEL EFFECTS IN MOSFETS- VLSI DESIGN
 

Semelhante a VHDL and Cordic Algorithim

CD504 CGM_Lab Manual_004e08d3838702ed11fc6d03cc82f7be.pdf
CD504 CGM_Lab Manual_004e08d3838702ed11fc6d03cc82f7be.pdfCD504 CGM_Lab Manual_004e08d3838702ed11fc6d03cc82f7be.pdf
CD504 CGM_Lab Manual_004e08d3838702ed11fc6d03cc82f7be.pdfRajJain516913
 
Computer graphics
Computer graphicsComputer graphics
Computer graphicsBala Murali
 
Ch01 basic concepts_nosoluiton
Ch01 basic concepts_nosoluitonCh01 basic concepts_nosoluiton
Ch01 basic concepts_nosoluitonshin
 
An Efficient Convex Hull Algorithm for a Planer Set of Points
An Efficient Convex Hull Algorithm for a Planer Set of PointsAn Efficient Convex Hull Algorithm for a Planer Set of Points
An Efficient Convex Hull Algorithm for a Planer Set of PointsKasun Ranga Wijeweera
 
Computer Graphics Unit 1
Computer Graphics Unit 1Computer Graphics Unit 1
Computer Graphics Unit 1aravindangc
 
Fast dct algorithm using winograd’s method
Fast dct algorithm using winograd’s methodFast dct algorithm using winograd’s method
Fast dct algorithm using winograd’s methodIAEME Publication
 
Open GL T0074 56 sm4
Open GL T0074 56 sm4Open GL T0074 56 sm4
Open GL T0074 56 sm4Roziq Bahtiar
 
Lecture 9-online
Lecture 9-onlineLecture 9-online
Lecture 9-onlinelifebreath
 
Geometric transformation cg
Geometric transformation cgGeometric transformation cg
Geometric transformation cgharinipriya1994
 
Convolution codes - Coding/Decoding Tree codes and Trellis codes for multiple...
Convolution codes - Coding/Decoding Tree codes and Trellis codes for multiple...Convolution codes - Coding/Decoding Tree codes and Trellis codes for multiple...
Convolution codes - Coding/Decoding Tree codes and Trellis codes for multiple...Madhumita Tamhane
 
Line drawing Algorithm DDA in computer Graphics.pdf
Line drawing Algorithm DDA in computer Graphics.pdfLine drawing Algorithm DDA in computer Graphics.pdf
Line drawing Algorithm DDA in computer Graphics.pdfRAJARATNAS
 
Transformations in Computer Graphics
Transformations in Computer GraphicsTransformations in Computer Graphics
Transformations in Computer GraphicsJatenderKhatri
 
An Introduction to Coding Theory
An Introduction to Coding TheoryAn Introduction to Coding Theory
An Introduction to Coding TheoryAlexanderWei11
 
The convenience yield implied by quadratic volatility smiles presentation [...
The convenience yield implied by quadratic volatility smiles   presentation [...The convenience yield implied by quadratic volatility smiles   presentation [...
The convenience yield implied by quadratic volatility smiles presentation [...yigalbt
 

Semelhante a VHDL and Cordic Algorithim (20)

CD504 CGM_Lab Manual_004e08d3838702ed11fc6d03cc82f7be.pdf
CD504 CGM_Lab Manual_004e08d3838702ed11fc6d03cc82f7be.pdfCD504 CGM_Lab Manual_004e08d3838702ed11fc6d03cc82f7be.pdf
CD504 CGM_Lab Manual_004e08d3838702ed11fc6d03cc82f7be.pdf
 
Teknik Simulasi
Teknik SimulasiTeknik Simulasi
Teknik Simulasi
 
Cgm Lab Manual
Cgm Lab ManualCgm Lab Manual
Cgm Lab Manual
 
Primitives
PrimitivesPrimitives
Primitives
 
Computer graphics
Computer graphicsComputer graphics
Computer graphics
 
Ch01 basic concepts_nosoluiton
Ch01 basic concepts_nosoluitonCh01 basic concepts_nosoluiton
Ch01 basic concepts_nosoluiton
 
An Efficient Convex Hull Algorithm for a Planer Set of Points
An Efficient Convex Hull Algorithm for a Planer Set of PointsAn Efficient Convex Hull Algorithm for a Planer Set of Points
An Efficient Convex Hull Algorithm for a Planer Set of Points
 
Computer Graphics Unit 1
Computer Graphics Unit 1Computer Graphics Unit 1
Computer Graphics Unit 1
 
Fast dct algorithm using winograd’s method
Fast dct algorithm using winograd’s methodFast dct algorithm using winograd’s method
Fast dct algorithm using winograd’s method
 
raster algorithm.pdf
raster algorithm.pdfraster algorithm.pdf
raster algorithm.pdf
 
Open GL T0074 56 sm4
Open GL T0074 56 sm4Open GL T0074 56 sm4
Open GL T0074 56 sm4
 
Lecture 9-online
Lecture 9-onlineLecture 9-online
Lecture 9-online
 
Geometric transformation cg
Geometric transformation cgGeometric transformation cg
Geometric transformation cg
 
Convolution codes - Coding/Decoding Tree codes and Trellis codes for multiple...
Convolution codes - Coding/Decoding Tree codes and Trellis codes for multiple...Convolution codes - Coding/Decoding Tree codes and Trellis codes for multiple...
Convolution codes - Coding/Decoding Tree codes and Trellis codes for multiple...
 
Line drawing Algorithm DDA in computer Graphics.pdf
Line drawing Algorithm DDA in computer Graphics.pdfLine drawing Algorithm DDA in computer Graphics.pdf
Line drawing Algorithm DDA in computer Graphics.pdf
 
Computer graphics 2
Computer graphics 2Computer graphics 2
Computer graphics 2
 
Transformations in Computer Graphics
Transformations in Computer GraphicsTransformations in Computer Graphics
Transformations in Computer Graphics
 
An Introduction to Coding Theory
An Introduction to Coding TheoryAn Introduction to Coding Theory
An Introduction to Coding Theory
 
Digital logic design part1
Digital logic design part1Digital logic design part1
Digital logic design part1
 
The convenience yield implied by quadratic volatility smiles presentation [...
The convenience yield implied by quadratic volatility smiles   presentation [...The convenience yield implied by quadratic volatility smiles   presentation [...
The convenience yield implied by quadratic volatility smiles presentation [...
 

Último

4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptxmary850239
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4MiaBumagat1
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beña
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxVanesaIglesias10
 
Food processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture honsFood processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture honsManeerUddin
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)cama23
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designMIPLM
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfPatidar M
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfVanessa Camilleri
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management SystemChristalin Nelson
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfJemuel Francisco
 

Último (20)

4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4
 
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptxLEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptx
 
Food processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture honsFood processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture hons
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-design
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdf
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdf
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management System
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
 

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.