VND - Openxmlformats Officedocument - Wordprocessingml.document&rendition 1 2
VND - Openxmlformats Officedocument - Wordprocessingml.document&rendition 1 2
PRESENTER’S MANUAL
Department of ECE
Course Name: System Design with FPGA
Course Code: EC20552
1
What is Paavai Teaching Methodology?
At Paavai Educational Institutions, inclusive, flexible and insightful learning aims to provide engaging
educational experiences and meet the needs of learners from all the backgrounds. Teachers should align their
This semester is based on the teaching methodology following three cardinal components:
1. Concept Class
Concept class: This is a theory class that will focus on the concepts. Whenever required this session will also
demonstrate how these concepts get translated into Mechanical Engineering topics.
Directed Learning Class: Learning and application may be challenging for some students. One of the oldest
and most comprehensive ways of delivery information, self-directed class allows the student to apply
themselves in a manner that makes understanding content more accessible. In this process, learners take
initiative in their own learning by planning, implementing and evaluating their learning.
Concept focused
2
EC20552 SYSTEM DIESIGN WITH FPGA 3 0 0 3
COURSE OBJECTIVES
Introduction: Programmable Logic Array: Programmable Logic Devices, Generic Array Logic- Architecture
of Xilinx cool runner XCR3064XL CPLD: CPLD implementation of Parallel adder.
Counter Examples: Fast Video Controller, Position Tracker for a Robot Manipulator, Design Counters with
ACT devices, Designing Adders and Accumulators with the ACT architecture
TOTAL PERIODS 45
3
Course Outcomes
TEXT BOOKS
1. Charles H.Roth Jr.Lizy Kuriyan John and Byeong Kil Lee. “ Digital System Design using Verilog”
Cengage I Earning 2016.
2. Stephen M. and Trim Berger “Field Programmable Gate Array Technology” Springer International Edition
1994.
REFERENCE
1. John V. Oldfield and Richard C Dorf “Field Programmable Gate Arrays” Wiley India 1995.
2. Pak K Chan Samiha Mourad “Digital Design using FPGA” Pearson Low Price Edition.2009.
3. Ian Grout “Digital System Design using FPGA and CPLDs” Elsevier. Newnes 2008.
4. Wayne Wolf “FPGA based System Design” Prentice Hall Modern Semiconductor Design Series.2004.
4
Introduction to the Course
This Presenter’s Manual is to be used for the Seventh semester of Electronics and Communication
Engineering for the course of Design and Implementation. The syllabus of this course enhances the students’
knowledge and skill in designing of system with FGPA as well as implementation of the system.
Course Code- Theory: EC20552
Unit -1 Basics of Programmable Logic Devices
Unit -2 Field Programmable Gate Arrays
Unit -3 SRAM Programmable FPGAS
Unit -4 Anti-Fused Programmed FPGAS
Unit -5 Design Applications
Student Learning Outcomes:
Clearly written student learning outcomes are the foundation upon which effective courses are designed.
Outcomes inform both the ways students are evaluated in a course and the way a course will be organized.
Effective learning outcomes are student-centered, measurable, concise, meaningful, achievable and outcome-
based (rather than task-based). The course contents are designed for those who are keen on getting themselves
a career in the field of Electronics and Communication engineering, specifically for those who want to be
involved in the design of FGPA. At the end of the course, the students will be able to:
5
Pre-requisites for taking this course
This semester is based on the teaching methodology following three cardinal components:
Optimize Designs Apply optimization techniques to improve the performance, area, and power
consumption of FPGA-based designs
6
CO/PO MAPPING:
CO1 3 3 3 2 - - - - 2 - - 3 3 3
CO2 3 3 3 2 - - - - 2 - - - 3 3
CO3 3 3 3 - - - - - - - - - 3 3
CO4 3 3 3 2 - - - - - - - 3 3 3
CO5 3 3 3 2 - - - - 2 - - 3 3 3
I. CONCEPT CLASS
LESSON PLAN
Lecture
Sl. Topics to be Method Proposed notes- Teaching
Time Ref
No. covered date Page Method
Number
Counter
Examples:
Fast Video 10/09/24 10-13
1,2,3 Controller 3 2 L/PPT
CC 11/09/24
Position Tracker
for a Robot
Manipulator
8
UNIT-V
1. TECHNICAL TERMS
4. Decommissioning The final phase in the life The process of permanently disabling
cycle of an energy installation or erasing the programmed
covering all activities from configuration of an anti-fuse FPGA, if
shutdown and removal of necessary.
equipment and material to
environmental restoration of
the site.
9
S.No Time Structure
1. 2mins Attendance Fast
Video
2. 2mins Pranayama
Design application with FPGA
3.
3mins What is VRAM control?
Define multiplexer.
4. 5mins What is meant by robot manipulator?
How the DMA controller represents?
5. 35mins Fast Video Controller
Position Tracker for a Robot Manipulator
6. 3mins
8. 3mins Summarizing
Introduction to Designing Adders and Accumulators
Controller
Position Tracker for a Robot Manipulator
10
Fast Video Controller
Figure shows a block diagram of a video controller for a full-page high- resolution display. The FPGA is required to
control access to the video RAM, format the video data and generate control signals for the video monitor. Due to the
high resolution, the system is required to run at a 70 MHz rate. The high throughput is achieved by heavy pipelining,
which is supported by the XC3000 CLB structure in which every logic block is followed by a flip-flop. To achieve the
high performance, the logic was partitioned manually then placed and routed automatically. The placement and routing
were done incrementally, with the f critical paths were placed and routed.This application was designed and debugged
as successive prototypes in an XC3030 device, then put into production in an XC3020 device. The additional space in
the XC3030 prototype device contained on-chip debugging logic, electronic "scaffolding."
Robot manipulator positions are tracked by counting the number of times an indicator has passed in front of a sensor. A
manipulator with many degrees of freedom requires many sensors
11
and counter for each degree of freedom. The design was implemented in two XC3090 FPGAs, each one implementing
eight 32-bit loadable up/down counters. The position registers are in the XC3090's flip- flops, and the counters are
implemented in lookup tables. Horizontal three-state lines give access to the position count registers. The position
registers can be independently addressed to be read and written by the robot controller at a 30 MHz data rate. Each
counter has its own up/down count signals and can count at. 8 MHz. Each of the XC3090s contains over eight thousand
gates of logic.
Figure 5.3 shows a block diagram of a 16-channel DMA controller. The controller supports round-robin or priority channel
selection with pipelined channel arbitration.
It works with byte, word or long word transfers with separate 32-bit transfer count and address registers for each channel.
The controller interfaces to 16-bit or 32- bit data busses and supports 20 million transfers per second, up to 80 MB/sec.
Figure 5.4 shows the block diagram of the DMA controller in an XC4008 FPGA.
Registers and internal buffers use the CLB RAM configuration. Data and address sequencers use the high-speed
arithmetic. Wide data busses run horizontally across the chip on three-state lines. The control logic for sequencing and
DRAM interface is implemented as random logic on the same IC. The DMA controller represents approximately 7000
gates of logic and is implemented in about 200 CLBs, the synthesized netlist.
12
Figure 5.3. High-Speed DMA Controller Block Diagram.
The symbol IOs correspond to those defined in the PALASM file. It is marked with a property indicating
that the netlist was synthesized and is to be found in a separate directory. When the top-level design is
compiled, the schematic and the synthesized netlists will be integrated into a single file.
13
The ACTMAP tool also generates a netlist in the format of the users CA tools which may be used to
simulate and verify the synthesized logic either alone or interacting with other logic in the design.
Schematic generators may be used to view the synthesis results.
6. 3mins
8. 3mins Summarizing
Introduction to Designing Adders and Accumulators
The select lines on the multiplexor are operated by the load control (S1) and by the count enable and
carry from the lower order bits (SO). The multiplexor data inputs are used for data to be loaded, held,
or incremented. The fourth multiplexor data input can be used as a second data input, or a
synchronous set counter design considerations should be evaluated from the perspective of the device-
level design and how the counter is used in it. For example, if some counter outputs may be active low
or if additional modules are used for redundant larger counters may be designed without additional
logic levels using five-input gates. Such decisions should consider the implications for module count
and fan- out as detailed below. enable will serve to illustrate some of the considerations designers
should be aware of when designing large counters in Act FPGA designs. The functional description
for the counter appears in Table 8
15
Figure 5.6. Act l Loadable Counter
16
Table 8 : Counter Function
17
.
18
The S-module OR gate is used as a two-input NAND with active-low inputs which are, in turn, driven
by NAND gates to propagate the lower bits and the count enable.
The active-low output of the built-in two-input gate (OR used as a NAND) is adiusted for by shifting
the position of the multiplexor data inputs.
Most four-input gates are implemented with a single C-module, but a four-input NAND with no
bubbled inputs requires two modules. The limitation is avoided by using a NAND with a bubbled
input. The count enable is active low, so it may be used to drive a bubbled input on a gate. Active-low
counter bits are used to drive other bubbled gate inputs.
The Q0 inversion toggles the flip-flop. A toggle flip-flop could have been used instead of a D flip-
flop, but it could not have been combined with the multiplexor into a single S-module. Moreover, the
inverter output is available as a resource to share the fan-out load with the flip-flop and to allow the
use of bubbled inputs on gates whenever it is desirable.
It could be argued that the use of the inverted output to drive gates causes the lower level bits to use
two levels of combinatorial logic when it is not necessary. For a design of ten bits or less the point
would be valid because no path requires more than one combinatorial level. In the example design,
however, two levels are already required by the upper bits and the improvement in fan-out from the
use of the inverter output at no additional cost in module count makes the practice worthwhile.
Designing Adders
5. 35mins
Designing Accumulators with the ACT architecture
6. 3mins
19
Designing Adders and Accumulators with the ACT Architecture
Many designers implement adders using carry-propagation techniques. The multiplexed-based Act
and Act combinatorial module (C-module) allows for the more efficient carry-select design. This
method partitions the add function into blocks that perform two additions simultaneously on a number
of bits of the two operands.
The two additions are performed simultaneously except that one assumes a carry- in and one has no
carry-in. The two sums are input to a 2:1 multiplexors, one for each bit pair. The carry line, from the
low bits to the high bits, is used to select the appropriate sum for each block.
The ACT architecture lends itself well to implementing adders of various sizes using the carry-select
technique. A sample design for a 16-bit adder, as shown in Figure 5.9will be used to illustrate adder
design.
20
Figure 5.9. 18-Bit Counter, Fanout Reduced Design
The way to balance the levels of logic modules for the sum blocks with the carry is to partition
the sum blocks. This partition is based on the logic levels required for the sums and the levels for the
carry between sums. The size of the partitions varies with width of the data. The Act library contains
some powerful hard macros that are used to shorten the levels of logic required for generating sums and
carries. The description of the sample design will illustrate the use of the macros.
21
Figure 5.10. Act Carry-Select Adder Example
For the 16-bit adder, the optimal organization is to perform two two-bit additions on the least four significant bits
with the remaining higher order bits broken into four sections of three bits each. In the top-level schematic the
addition logic o levels of the design hierarchy described in the next section.
The Act library includes two two-level carry hard macros. One macro generates a carry for the two bit
pairs assuming the carry-in is true and the other assumes it is false. The latter macro may be seen at
the bottom of Figure 3.6.18 making the carry for the least two bits.
22
The carry macro output drives the select line for the 2: 1 multiplexors for sum bits two and three. It
also drives the select line on the cascade multiplexor. The cascade multiplexor is a special Act hard
macro that can propagate two levels of carry. The macro is depicted in Figure 5.11 and has five
inputs. The top multiplexor inputs select the most significant sum or carry. The lower three inputs
drive logic that implements a simplified form of a 2:1 multiplexor.
A fully implemented 2:1 cascade multiplexor does not map into the Act module efficiently, but the
full functionality is not required in a carry select adder. A simplified version of the cascade
multiplexor that maps into a C-module or that can be combined with a flip-flop in an S-module is
available. consisting of only a two-input OR driving one input of a two-input AND. The two OR gate
inputs are driven by the carry output from the next lower sum block assuming no carry-in and the
carry in from the rest of the lower bits of the adder. The remaining AND input is the carry from the
sum block which assumes a carry- in.The logic is correct for a carry select adder because if the
assume-no-carry-in input is true (meaning that a carry was generated within that sum block), then
the assume-carry-in is always true (since it equals the false plus one) which completes the AND
function.If the carry from the lower bits is true (meaning a carry is propagated to the sum block),
then we complete the AND if the assume-carry is true.
23
The schematic for the three-bit adder block appears in Figure 5.12 The adder
requires thirteen logic modules to generate the three sum and carry pairs. All the output paths are
two levels of logic or less. The two carries for the three bits come from two-level carry hard macros
driving a three-bit majority macro. All the sums are generated from exclusive OR or NOR gates.
The optimal design for a carry select adder depends on the number bits to be added.
As mentioned previously, the number of bits in a block is a function of the overall adder size. For Act
adders of two and three bits, the design shown in Figure 3.6.20 is attractive because the two-level
carry macro allows for delays to be two levels or less.
24
Figure 5.13. Another Adder Example
The above design uses ACT library single bit two-module hard macros. The Actel library
contains several such two-module adder macros with both a sum and a carry output.
The carry output goes through one module delay and the sum output two module delays.
The carry propagates through the chain in four levels in the example so that all the sum
bits are stable when the carry ripple is complete.
23
23