Systems Lab
Systems Lab
Systems Lab
ENGINEERING DEPARTMENT
ORIENTATION COURSE ON
SYSTEMS LAB
2. Discrete Fourier Transform (DFT) and Inverse Discrete Fourier Transform (IDFT)
6. Control systems
7. PLDs
8. CPLDs
9. FPGAs
10. DSPs
2
Experiment No:1 LTI system response and testing Date:
Aim:
To plot the Impulse response, step response ,and to test linearity, causality, and stability.
Theory:
A signal is a description of how one parameter varies with another parameter. For instance,
voltage changing over time in an electronic circuit, or brightness varying with distance in an image.
A system is any process that produces an output signal in response to an input signal.
A system is said to be
homogeneous if an amplitude change in
the input results in an identical amplitude
change in the output. That is, if x[n] results
in y[n], then kx[n] results in ky[n], for any
signal, x[n], and any constant, k.
3
A system is said to be additive if added signals pass through it without interacting. Formally,
if x1[n] results in y1[n], and if x2[n] results in y2[n], then x1[n]+x2[n] results in y1[n]+y2[n]
4
%To plot step RESPONSE
b=[1];
a=[1,-1,0.9];
x=stepinput(0,-20,100);
n=[-20:100];
h=filter(b,a,x);
stem(n,h);
title('STEP RESPONSE');
xlabel('TIME INDEX');
ylabel('s(n)');
5
%
test
linearity
L=input('length sequence');
alpha=input('input linear coefft:');
beta=input('input linear coefft:');
x=randn(1,L); %input to filter
z=randn(1,L); %input
b=[1];
a=[1,-1,0.9];
y1=filter(b,a,x);
y2=filter(b,a,z);
alphax=alpha*x;
betaz=beta*z;
newinput=alphax+betaz;
y=filter(b,a,newinput);
p=alpha*y1+beta*y2;
g=y-p
if(g<1.0e-10);
display('linear');
else
display('not linear');
end;
To find stability
function[s]=input(n1,n2);
n0=0;
n=[n1:n2];
x=[(n-n0)==0]; ;
b=[1];
a=[1,-1,0.9];
h=filter(b,a,x);
s=sum(abs(h))
if(s<9999)
6
display('stable')
else display('not stable')
end
7
Aim:
To compute convolution and deconvolution of two sequences and to compute and plot DFT and
IDFFT of a given sequence .
Theory:
Fourier analysis is a family of mathematical techniques, all based on decomposing signals intosinusoids. The
discrete Fourier transform (DFT) is the family member used with digitized signals.
A signal can be either continuous or discrete, and it can be either periodic or aperiodic. The combination of these two
features generates the four categories, described below and illustrated in Figure.
Aperiodic-Continuous
This includes, for example, decaying exponentials and the Gaussian curve. These signals extend to both positive and
negative infinity without repeating in a periodic pattern. The Fourier Transform for this type of signal is simply called the
Fourier Transform.
Periodic-Continuous
Here the examples include: sine waves, square waves, and any waveform that repeats itself in a regular pattern from
negative to positive infinity. This version of the Fourier transform is called the Fourier Series.
Aperiodic-Discrete
These signals are only defined at discrete points between positive and negative infinity, and do not repeat themselves in a
periodic fashion. This type of Fourier transform is called the Discrete Time Fourier Transform.
Periodic-Discrete
These are discrete signals that repeat themselves in a periodic fashion from negative to positive infinity. This class of
Fourier Transform is sometimes called the Discrete Fourier Series, but is most often called the Discrete Fourier
Transform.
8
DFT is a sequence, with samples equally spaced in frequency, of the fourier transform of the signal.
To derive and interpret the DFT
1. Utilize the relationship between periodic sequences and finite length sequences.
2. For that we can apply the fourier series results of periodic sequences to the representation of finite
length sequences.
Let us consider a finite length sequence (1)
To each finite length sequence of length N we can always associate a periodic sequence
(2)
Since x[n ] is assumed to have finite length N, there is no overlap between the terms x[n+rN] for
different values of r.
Equation (2) can be alternatievely written as
= x[(n modulo N)] = x[((n))N] (3)
Equation (3) is equivalent to eqn.(2) only when x[n] has length less than or equal to N
To visualize eqn.(3), ie. representation of a periodic sequence by a finite length sequence corresponds to
wrapping the finite_duration sequence x[n ] around a cylinder with a circumference equal to the sequence
length. As we repeatedly traverse the circumference of the cylinder we see the finite-length sequence
periodically repeated.
The finite duration sequence x[k] corresponding to one period of the discrete fourier series coefficient ~
can be referred to as the DFT.
Thus, the DFT, X[k],is related to the DFS coefficient by,
(4)
x[k]=x[((k))N] (5)
But
(6)
9
e (7)
Circular Convolution
If x1[n] and x2[n] are two finite duration sequences both of length N, with DFT’s x1[k] and x2[k].If we want
to find out a new sequence x3[n] whose DFT is x3[k] =x1[k] x3[k].
To get the sequence x3[n] we can use circular convolution
Computation of DFT
Computation of the N-point DFT corresponds to the computation of N samples of the fourier transform of N
equally spaced frequencies wk=2πk/N,that is N points on the unit circle in the z-plane. The various
algorithms used for the digital computation of the N-point DFT are called fast fourier transform(FFT).
DFT equation is
FFT reduces the number of complex multiplications from N2 toN/2log2N by utilizing the two basic properties of the twiddle
factor, they are
Symmetry property:
Periodicity property:
10
In FFT computation the N samples are decomposed into N/2 or N/4 or N/8 …..etc samples utilizing the
above properties of twiddle factor to reduce the number of multiplication and addition.
% Illustration of Convolution
%
a = input('Type in the first sequence = ');
b = input('Type in the second sequence = ');
c = conv(a, b);
M = length(c)-1;
n = 0:1:M;
disp('output sequence =');disp(c)
stem(n,c)
xlabel('Time index n'); ylabel('Amplitude');
Result:
11
% Numerical Computation of Fourier transform Using DFT
k = 0:15; w = 0:511;
x = cos(2*pi*k*3/16);% Generate the length-16 sinusoidal sequence
X = fft(x); % Compute its 16-point DFT
XE = fft(x,512); % Compute its 512-point DFT
% Plot the frequency response and the 16-point DFT samples
plot(k/16,abs(X),'o', w/512,abs(XE))
xlabel('\omega/\pi'); ylabel('Magnitude')
Deconvolution examples:
Deconvolution
Deconvolution, or polynomial division, is the inverse operation of convolution. Deconvolution is useful in
recovering the input to a known filter, given the filtered output. This method is very sensitive to noise in the
coefficients, however, so use caution in applying it.
b = [4 5 6];
c = conv(a,b)
c=
4 13 28 27 18
Now use deconv to deconvolve b from c
[q,r] = deconv(c,a)
q=
456
r=
00000
%Example ii
% Illustration of Deconvolution
%
Y = input('Type in the convolved sequence = ');
H = input('Type in the convolving sequence = ');
[X,R] = deconv(Y,H);
disp('Sequence x[n]');disp(X);
disp('Remainder Sequence r[n]');disp(R);
RESULT
14
Experiment no:3 Analog filter design Date:
Aim:
To design analog filters from filter specification using matlab analog prototyping functions..
Theory:
The matlab toolbox provides a number of functions to create lowpass analog prototype
filters with cutoff frequency of 1, the first step in the classical approach to IIR filter design.
Butterworth [z,p,k] = buttap(n)
Chebyshev type I [z,p,k] = cheb1ap(n,Rp)
Chebyshev type II [z,p,k] = cheb2ap(n,Rs)
Elliptic [z,p,k] = ellipap(n,Rp,Rs)
The second step in the analog prototyping design technique is the frequency transformation of a lowpass
prototype.
Butterworth Filter
The Butterworth filter provides the best Taylor Series approximation to the ideal lowpass filter response at
= 0 and=; for any orderN, maximally flat response.
Elliptic Filter
Elliptic filters are equiripple in both the passband and stopband. They generally meet filter requirements
with the lowest order of any supported filter type.
RESULT
Poles are at
-0.38268343236509 + 0.92387953251129i
-0.38268343236509 - 0.92387953251129i
16
-0.92387953251129 + 0.38268343236509i
-0.92387953251129 - 0.38268343236509i
Numerator polynomial
0 0 0 0 1
Denominator polynomial
Columns 1 through 4
Column 5
1.00000000000000
% Program to
Design Butterworth Lowpass Filter
%
% Type in the filter order and passband edge frequency
N = input('Type in filter order = ');
Wn = input('3-dB cutoff angular frequency = ');
% Determine the transfer function
[num,den] = butter(N,Wn,'s');
% Compute and plot the frequency response
omega = [0: 200: 12000*pi];
h = freqs(num,den,omega);
plot (omega/(2*pi),20*log10(abs(h)));
xlabel('Frequency, Hz'); ylabel('Gain, dB');
RESULT
Type in filter order = 6
3-dB cutoff angular frequency = 1000
% Program to
Design Type 1
Chebyshev
Lowpass
Filter
%
17
% Read in the filter order, passband edge frequency
% and passband ripple in dB
N = input('Order = ');
Fp = input('Passband edge frequency in Hz = ');
Rp = input('Passband ripple in dB = ');
% Determine the coefficients of the transfer function
[num,den] = cheby1(N,Rp,2*pi*Fp,'s');
% Compute and plot the frequency response
omega = [0: 200: 12000*pi];
h = freqs(num,den,omega);
plot (omega/(2*pi),20*log10(abs(h)));
xlabel('Frequency, Hz'); ylabel('Gain, dB');
RESULT
rder = 6
Passband edge frequency in Hz = 3000
Passband ripple in dB = 5
18
RESULT
Order = 4
Passband edge frequency in Hz = 3000
Passband ripple in dB = 3
Minimum stopband attenuation in dB = 40
# Design an analog Butterworth high pass filter with the following specifications.
Pass band edge= 4000Hz
Stop band edge=1000Hz
Pass band ripple=0.1 dB
19
Band pass filter.
# Design an analog elliptic band pass filter with the following specifications.
Pass band edge= 4000Hz and 7000Hz
Stop band edge=3000Hz and 8000Hz
Pass band ripple=1 dB
Stopband attenuation=22dB
%matlab program
wp=[4000 7000]*2*pi ; ws=[3000 8000]*2*pi;
%matlab program
ws=[4000 5000]*2*pi ; wp=[3000 8000]*2*pi;
QUESTIONS
# Find out the analog frequency response for all different types of filters
Low pass
High pass
Band pass
Band stop
For the following filter approximations.
Butterworth
Chbyshev type-I
Chebyshev type-II
Elliptic
21
Experiment. No 4. IIR filter design Date:
1. Mapping method.
One of the simplest methods of digitizing an analog filter into digital filter is to approximate the
differential equation by an equivalent difference equation. This analog to digital transformation technique
does map a stable analog filter into a stable digital filter.
Matlab Functions:
Buttord, Butter, freqz, subplot , plotdr
Example 1.
% Butterworth Low Pass Filter
% Sampling Frequency = 16 KHz
% Fp=1800 Hz Pass band Frequency
% Fs=4000Hz Stop band frequency
% Rp= 0.01 dB Pass band attenuation
% Rs= 50 dB Stop band attenuation
[N,Wn]=buttord(1800/8000,4000/8000,0.01,50);
[B,A]=butter(N,Wn); % returns denominator and numerator coefficients.
w=0:.01:pi;
H=freqz(B,A,w);
subplot(2,1,1),plot(w/pi,abs(H));
subplot(2,1,2),plot(w/pi,angle(H));
Example 2.
% Chebyshev Low Pass Filter
% Sampling Frequency = 16 KHz
% Fp=1800 Hz Pass band Frequency
22
% Fs=4000Hz Stop band frequency
% Rp= 0.01 dB Pass band attenuation
% Rs= 50 dB Stop band attenuation
[N,Wn]=cheb1ord(1800/8000,4000/8000,0.01,50);
[B,A]=cheby1(N,1,Wn);
w=0:.01:pi;
H=freqz(B,A,w);
subplot(2,1,1),plot(w/pi,abs(H));
subplot(2,1,2),plot(w/pi,angle(H));
Example 3.
% Chebyshev2 Low Pass Filter
% Sampling Frequency = 16 KHz
% Fp=1800 Hz Pass band Frequency
% Fs=4000Hz Stop band frequency
% Rp= 0.01 dB Pass band attenuation
% Rs= 50 dB Stop band attenuation
[N,Wn]=cheb2ord(1800/8000,4000/8000,0.01,50);
[B,A]=cheby2(N,10,Wn);
w=0:.01:pi;
H=freqz(B,A,w);
subplot(2,1,1),plot(w/pi,abs(H));
subplot(2,1,2),plot(w/pi,angle(H));
23
% Elliptic Low Pass Filter
% Sampling Frequency = 16 KHz
% Fp=1800 Hz Pass band Frequency
% Fs=4000Hz Stop band frequency
% Rp= 1 dB Pass band attenuation
% Rs= 30 dB Stop band attenuation
[N,Wn]=ellipord(1800/8000,4000/8000,0.01,50);
[B,A]=ellip (N,1,30,Wn);
w=0:.01:pi;
H=freqz(B,A,w);
subplot(2,1,1),plot(w/pi,abs(H));
subplot(2,1,2),plot(w/pi,angle(H));
24
Impulse invariant design is probably the most straightforward technique for approximating an analog
filter with a digital filter. If the transfer function of the analog filter in the Laplace domain is Hs(S), then the
impulse response is h(t). If h(t) is sampled, a discrete-time function h[n] is formed and the z transform of
h[n] can be taken to yield the desired z-domain transfer function Hz(z).
Using Impulse Invarient method determine the frequency response of a filter for the following
specification.
Function: [bz,az]=impinvar(bs,as,fs)
where bs – vector coefficient of numerator in S domain
as – vector coefficient of denominator in S domain
fs – sampling rate
bz – vector coefficient of numerator in Z domain
az – vector coefficient of denominator in Z domain
Example.
n=5; %filter order
rp=0.5; %pass band ripple
rs=40; %stop band attenuation.
wn=0.4; % normalized cut off frequency.
[bs,as]=ellip(n,rp,rs,wn); %filter coefficients in S domain
[bz,az]=impinvar(bs,as,1); % filter coefficients in Z domain
[h,w]=freqz(bz,az,256); % frequency response in Z domain
subplot(2,1,1),plot(w/pi,abs(h)); %frequency response plot
subplot(2,1,2),plot(w/pi,angle(h)); %phase response plot
3. Bilinear Transformation
The impulse-invariant design techniques try to make the digital filter’s DT-domain response match
the corresponding analog filter’s CT-domain response to a corresponding standard excitation. Another way
to approach digital filter design is to try to make the frequency response of the digital filter match the
frequency response of the analog filter. But, just as a DT-domain response can never exactly match a CT-
domain response, the frequency response of a digital filter cannot exactly match the frequency response of
an analog filter. One reason, mentioned earlier, for this is that the frequency response of a DT system is
inherently periodic. When a sinusoidal CT signal is sampled to create a sinusoidal DT excitation, if the
frequency of the CT signal is changed by an integral multiple of the sampling rate, the DT signal does not
change at all. Another popular method of filter design is using the bilinear transformation given by
25
2 z-1 2 + sTs
s = -- ----- or z = --------
Ts z+1 2 - sTs
Transformation function
[bz,az]=bilinear(bs,as,fs);
where bz – vector of Z domain zero location
az– vector of Z domain pole location
bs – vector of S domain zero location
as – vector of S domain pole location
Example.
n=5; %filter order
rp=0.5; %pass band ripple
rs=40; %stop band attenuation.
wn=0.4; % normalized cut off frequency.
[bs,as]=ellip(n,rp,rs,wn); %filter coefficients in S domain
[bz,az]=bilinear(bs,as,1); % filter coefficients in Z domain
[h,w]=freqz(bz,az,256); % frequency response in Z domain
subplot(2,2,1),plot(w/pi,abs(h)); %frequency response plot
subplot(2,2,2),plot(w/pi,angle(h)); %phase response plot
26
Experiment no: 05 Date:
Aim:
To design FIR filters using windowing techniques.
Theory:
This operation is called “windowing”.In general, can be thought of as being formed by the product of
and a window function as follows:
= (6)
Where
27
Figure : Rectangular window, M = 45
Hence the width of the main lobe is .Therefore the approximate transition bandwidth is
.
2. The magnitude of the first side lobe (which is also the peak side lobe magnitude) is approximately at
and is given by
Comparing this with the main lobe amplitude, which is equal to M, the peak side lobe magnitude is
BARTLETT WINDOW
Since the Gibbs phenomenon results from the fact that the rectangular window has a sudden transition from
0 to 1 (or 1 to 0),Bartlett suggested a more gradual transition in the form of a triangular window, which is
given by
(10)
This window and its frequency-domain responses are shown in Figure below
HANNING WINDOW
This is a raised cosine window function given by
29
(11)
This window and its frequency-domain responses are shown in Figure below
HAMMING WINDOW
This window is similar to the Hanning window except that it has a small amount of discontinuity and is
given by
(12)
This window and its frequency-domain responses are shown in Figure below
BLACKMAN WINDOW
This window is also similar to the previous two but contains a second harmonic term and is given by
30
(13)
In table 1 we provide a summary of window function characteristics in terms of their transition widths (as a
function of M ) and their minimum stopband attenuation in dB. Both the approximate as well as the exact
transition bandwidths are given. Note that the transition widths and the stop band attenuations increase as we
go down the table. The Hamming window appears to be the best choice for many applications.
Bartlett 25 dB
Hanning 44 dB
Hamming 53 dB
Blackman 74 dB
KAISER WINDOW
This is one of the most useful and optimum windows. It is optimum in the sense of providing a large main
lobe width for the given stop band attenuation, which implies the sharpest transition width. The window
function is due to J.K. Kaiser and is given by
Where is the modified zero-order Bessel function , and is a parameter that depends on M and that
can be chosen to yield various transition widths and near-optimum stopband attenuation. This window can
provide different transition widths for the same M, which is something other windows lack. For example,
if = 5.658 , then the transition width is equal to , and the minimum stopband
attenuation is equal to 60 dB. This is shown in Figure
31
Figure : Kaiser window , M = 45 , = 5.658
if = 4.538 , then the transition width is equal to , and the minimum stopband
attenuation is equal to 50 dB.
Hence the performance of this window is comparable to that of the Hamming window. DESIGN
EQUATIONS
Given
Norm. transition width
Filter order
MATLAB IMPLEMENTATION
MATLAB provides routines to implement window functions and brief description of these routines is given
below.
w = boxcar(M) returns the M-point rectangular window function in array w
w = triang(M)returns the M-point Bartlett (triangular) window function in array w
w = hanning(M) returns the M-point Hanning window function in array w
w = hamming(M) returns the M-point Hamming window function in array w
w = blackman(M) returns the M-point Blackman window function in array w
w = kaiser(M,beta) returns the beta-valued M-point rectangular window function in array w.
Using these routines , we can use MATLAB to design FIR filters based on the window technique, which
also requires an ideal lowpass impulse response .
Matlab Examples.
low pass filter
Design a low pass filter with cut of frequency wc=.5*pi , with N=25 and stop band attenuation >50 db.
%since stop band attenuation >50 db, we may select Blackman or hamming window.
33
%multiband filter design using fir2 matlab function.
% Design of Multiband FIR Filter Using Hamming Window
%
fpts = [0 0.28 0.3 0.5 0.52 1];
mval = [0.3 0.3 1.0 1.0 0.7 0.7];
b = fir2(100,fpts,mval);
[h,omega] = freqz(b,1,512);
plot(omega/pi,abs(h));grid;
xlabel('\omega/\pi'); ylabel('Magnitude');
34
35
Experiment no: 06 Control System Date:
Aim:
To plot the Bode diagram of the given system and to determine the gain crossover frequency, phase
crossover frequency, gain margin and phase margin from the given transfer function.
Theory:
B(s)
H(s)
Any linear time invariant system is described by its transfer function. Transfer function of a system
is defined as a ratio of Laplace transform of the output to the Laplace transform of the input with zero initial
conditions. Frequency response of a system is the response of the system for sinusoidal input signal of
various frequencies. The frequency response can be obtained by different methods. One such method is
Bode plot. Bode plot consists of two graphs. One is a plot of the magnitude in decibels versus frequency in
log scale and the second one is the plot of phase angle versus frequency in log scale.
Bode plot helps in finding the system stability. Stability can be found by evaluating gain
margin and phase margin. Gain margin is defined as the factor by which the gain of the system is allowed to
increase before the system reaches instability. Phase margin is the amount of additional phase lag required to
bring the system to the point of instability.
To find the gain and phase margin, two important frequencies are required. They are gain and
phase crossover frequencies. Phase crossover is a point on the phase plot at which the angle is + or – 180
degrees. The frequency at phase crossover is phase crossover frequency. The negative of the gain at phase
crossover is gain margin. The gain crossover is a point on the gain plot at which the magnitude is equal to 1
or 0dB. The frequency at gain crossover is gain crossover frequency. Phase margin is 180 degrees plus angle
at gain crossover frequency.
36
Program :
BODE(SYS) draws the Bode plot of the LTI model SYS (created with
either TF, ZPK, SS, or FRD). The frequency range and number of
points are chosen automatically.
37
the -180 phase crossing. The phase margin Pm is in degrees.
Result:
38
Experiment No: 07 PLDs Date:
AIM:
To familiarize the PLDs like PLA, PAL and GAL. Realize basic gates using the above devices.
SOFTWARE TOOLS
WARP GALXY
WARP NOVA
THEORY:
PLDs were the first chips that could be used to implement a flexible digital logic design in hardware. In other words, a
couple of the 7400-series TTL parts (ANDs, ORs, and NOTs) could be removed from the circuit board and replace them with a
single PLD. The classification of PLDs include Programmable Logic Array (PLA), Programmable Array Logic (PAL), and
Generic Array Logic (GAL).
PLDs are often used for address decoding, where they have several clear advantages over the 7400-series TTL parts that
they replaced. First, of course, is that one chip requires less board area, power, and wiring than several do. Another advantage is
that the design inside the chip is flexible, so a change in the logic doesn't require any rewiring of the board. Rather, the decoding
logic can be altered by simply replacing that one PLD with another part that has been programmed with the new design.
Inside each PLD is a set of fully connected macrocells. These macrocells are typically comprised of some amount of
combinatorial logic (AND and OR gates, for example) and a flip-flop. In other words, a small Boolean logic equation can be built
within each macrocell. This equation will combine the state of some number of binary inputs into a binary output and, if
necessary, store that output in the flip-flop until the next clock edge.
PAL16V8
39
40
PROGRAM
RESULT
AND inputs : a, b
AND output : x
Experiment No: 08 CPLDs Date:
AIM:
To familiarize the CPLDs like FLASH370. Realize basic gates using the above devices.
SOFTWARE TOOLS
WARP GALXY
WARP NOVA
THEORY:
As chip densities increased, it was natural for the PLD manufacturers to evolve their
products into larger (logically, but not necessarily physically) parts called Complex
Programmable Logic Devices (CPLDs). For most practical purposes, CPLDs can be thought
of as multiple PLDs (plus some programmable interconnect) in a single chip. The larger size
of a CPLD allows you to implement either more logic equations or a more complicated
design. In fact, these chips are large enough to replace dozens 7400-series parts.
Figure contains a block diagram of a hypothetical CPLD. Each of the four logic blocks
shown there is the equivalent of one PLD. However, in an actual CPLD there may be more
(or less) than four logic blocks. Note also that these logic blocks are themselves comprised of
macrocells and interconnect wiring, just like an ordinary PLD.
Unlike the programmable interconnect within a PLD, the switch matrix within a
CPLD may or may not be fully connected. In other words, some of the theoretically possible
connections between logic block outputs and inputs may not actually be supported within a
given CPLD. The effect of this is most often to make 100% utilization of the macrocells very
difficult to achieve. Some hardware designs simply won't fit within a given CPLD, even
though there are sufficient logic gates and flip-flops available.
Because CPLDs can hold larger designs than PLDs, their potential uses are more
varied. They are still sometimes used for simple applications like address decoding, but more
often contain high-performance control-logic or complex finite state machines. At the high-
end (in terms of numbers of gates), there is also a lot of overlap in potential applications with
FPGAs. Traditionally, CPLDs have been chosen over FPGAs whenever high-performance
logic is required. Because of its less flexible internal architecture, the delay through a CPLD
(measured in nanoseconds) is more predictable and usually shorter.
PROGRAM
Program to realize AND gate using CY7C371.
Program is written for WARP GALAXY and the output is observed using the tool WARP NOVA.
RESULT
AND inputs : a, b
AND output : x
Experiment No: 09 FPGAs Date:
AIM:
To familiarize the FPGSs like FLASH370. Design basic gates using CY380005P208-1NC
THEORY:
Field Programmable Gate Arrays (FPGAs) can be used to implement just about any hardware design.
The development of the FPGA was distinct from the PLD/CPLD evolution just described. Figure illustrates a
typical FPGA architecture. There are three key parts of its structure: logic blocks, interconnect, and I/O blocks.
The I/O blocks form a ring around the outer edge of the part. Each of these provides individually selectable
input, output, or bi-directional access to one of the general-purpose I/O pins on the exterior of the FPGA
package. Inside the ring of I/O blocks lies a rectangular array of logic blocks. And connecting logic blocks to
logic blocks and I/O blocks to logic blocks is the programmable
interconnect wiring.
Ultra 380005 Ultra Logic very High speed 5K gate CMOS FPGA
WARP GALXY
WARP NOVA
PROGRAM
Program to realize AND gate using CY7C371.
Program is written for WARP GALAXY and the output is observed using the tool WARP NOVA.