Title: FPGAs In The Classroom: Practice and Experience
1FPGAs In The ClassroomPractice and Experience
- William M. Jones, Ph.D.
- Department of Computer Science
- Coastal Carolina University
2What is an FPGA?
3Where are FPGAs Found?
Prototyping HPC NICs GPUs DSP
4And in CSCC Room 122!
Why?
5(No Transcript)
6Altera DE2 Development and Education Board
7FPGA Course Mappings
Assembly Programming (CSCI 210 and 310)
Digital Logic ?Combinational (CSCI
210) ?Sequential (CSCI 310)
Compilers (CSCI 450)
Computer Architecture (CSCI 310)
Operating Systems CSCI 410
Embedded Systems CSCI 4xx?
Security (CSCI 210 and 385)
8Digital Logic Design (Traditional)
- Pencil and paper
- Important pedagogical approach
- Testing on quizzes and exams
- Use of breadboards
- Hands-on
- Tedious
- Prone to error
- 7400 series logic gates
- Voltage polarity
- Difficult to debug
9(No Transcript)
10Digital Logic Design (Innovative)
- Pencil and paper
- Still important
- Schematic capture
- Draw circuit diagram
- Easily modifiable
- Digital Logic (and more) IDE
- Debugging capability
- Testing in lab environment
- Access to prototype boards
11IDE and Tools
12Trace Program Execution
13CSCI 210 Computer Organization
- HW01 Intro to logic gates, learn to use the IDE
- HW02 Intro to logic gates, lights and switches
- HW03 1-bit Full Adder (from TT to
implementation) - HW04 4-bit 2s complement ripple carry add/sub
- HW05 Intro to NIOSII Processor, I/O, running
sum - HW06 Binary encoding of instructions, addr.
modes - HW07 Functions, loops, IF stmts., I/O with SSDs
- HW08 Call stack management, param. passing
- HW09 Buffer overflow, overwrite RA on call
stack
14Lets Take a Look at Actual Student WorkCSCI
210 Fall 2009, Spring 2010
15CSCI 210 HW02 Intro to Gates
Courtesy of Ruben Villao
16CSCI 210 HW04 Full Add/Sub
A
A (-) B C
C
B
Courtesy of Ruben Villao
17CSCI 210 HW07 NIOSII w/ SSDs
NIOSII Embedded Processor 32-bit RISC
I/O w/ SSDs and switches
Courtesy of Dorian Sovic
18CSCI 210 HW07 Assembly Code
Dorian Sovic
19CSCI 210 HW09 Stack Exploitation
Provide student w/ uncommented code. They
identify problem and exploit it.
A0
A1
. . .
A7
Foos saved RA
20CSCI 310 Computer Architecture
- HW01 Multiplexer design (from TT to Kmap to
impl) - HW02 1-bit Full Adder (from TT to
implementation) - HW03 4-bit ripple carry adder
- HW04 State machine design, 3-bit up/down
counter - HW05 State machine design, serial data stream
- HW06 MMSS digital clock, (from TT to impl)
- HW07 Intro to NIOSII Processor, I/O, running
sum - HW08 Function calls, I/O
- HW09 Functions, I/O, bit shifting/masking,
stack - Implemented Fall 2009
21CSCI 210 HW05 State Machines
Courtesy of James Bettke
22CSCI 210 HW05 State Machines
1-Hot Encoding A A XA XB XC
XD B B XA C C XB Y D D XC XD
Courtesy of James Bettke
23CSCI 310 HW06 -- MMSS Digital Clock
4-bit counter (state transition diagram) Glue
logic, frequency dividers
Courtesy of Yosi Benzera
24CSCI 310 HW09 Shifting/Masking
Get some data Drive SSDs w/ software Stack
management Shifting Masking Look up tables
Courtesy of Yosi Benzera
25Looking Towards Next Year
- Refine course objectives to delineate 210/310
- Hardware Description Language (VHDL)
- ALU
- Simple CPU
- Improve / create new security modules for
placement in CSCI 385 - Create interrupt (C-based) lab for CSCI 410
- Push button
- Create assembler lab for CSCI 450
26A Simple ALU (Digital Logic/Comp. Arch.)
27ALU Specifications
28ALU Part 1
29ALU Part 2
30ALU Part 3
31(No Transcript)
32(No Transcript)
33So What Do You Need?
- An FPGA Development Board/Kit
- Xilinx
- Altera
- 150 - 500 (275 each)
- IDE
- ISE
- Quartus
- University programs / freely available
- Host Computer
- PC
- Laptop
- USB
34Digital Signal Processing, Video, Networking,
Embedded Systems
35Thank you! Questions? http//ww2.coastal.edu/wjo
nes After talk comments on the next slide
36After-talk thoughts .
- Attendees were asked if this focus on assembly
and hardware is relevant to computer security. - Responses were varied
- Some thought it was paramount
- Some thought it was not particularly relevant
- Others suggested it depended on what type of job
you ultimately got