Virginia Commonwealth University - PowerPoint PPT Presentation

About This Presentation
Title:

Virginia Commonwealth University

Description:

Title: PowerPoint Presentation Author: Last modified by: alkhasawnera Created Date: 8/27/2003 3:34:31 AM Document presentation format – PowerPoint PPT presentation

Number of Views:87
Avg rating:3.0/5.0
Slides: 52
Provided by: 725570
Category:

less

Transcript and Presenter's Notes

Title: Virginia Commonwealth University


1
Virginia Commonwealth University School of
Engineering DEPARTMENT OF ELECTRICAL AND COMPUTER
ENGINEERING  Embedded Systems-EGRE
631 TECHNO Toward an Interactive Environment
for Embedded Systems Design      
  • Fadi Obaidat
  • Dr. Jerry Tucker
  • April 2009
  •  

2
  • Embedded Systems
  • Embedded System is a special purpose/custom
    design computer used to control certain device.
  • Need to be able to work with very limited
    resources (memory, power)
  • and often has to work in a real-time environment.
  • Employ a combination of hardware and software to
    perform a specific function.
  • It is typically part of a larger system that may
    not necessarily be a computer and works in a
    reactive and time-constrained environment.

3
Using Of Embedded Systems
  • Cars Industry
  • Flight Control Systems
  • Mars Exploration Rover
  • Medical equipments and many other applications

4
FPGAs Based Embedded Systems
  • High performance.
  • Design Flexibility.
  • Low cost.
  • Reconfigurability.

5
Objectives
  • Establishing an interactive environment which
    enables us to insert or replace HW/SW
    modules/applications written in VHDL/C.
  • Building Real Time Hardware Simulation to allow
    the user to see the results in real time.

6
About TECHNO System
  • Xilinx Spartan 3E FPGA 500K
  • HDL custom design, coprocessor
  • Soft-core MicroBlaze Processor
  • C either simple applications or under uClinux
  • HDL interfaces for the monitor and keyboard.
  • To achieve and test the objectives of the
    project, and to show the capabilities of the
    system, Two HW/SW applications were implemented
    and chosen because of the need to the HW speed
    and time-accuracy, and the SW flexibility.
  • Frequency Counter
  • Cycle Accurate Counter

7
Components and Resources

  • Input Units 8-Swithches, 4-Buttons, and or
    Keyboard.
  • Output Units 8-LEDs, 4 digits 7-Segment-Display,
    Monitor or Data Show.
  • Logic and Processing Resources 500K Spartan 3E
    FPGA, and Softcore MicroBlaze processor (part of
    500k).

8
Digilent Nexys2 Board
http//www.digilentinc.com/Data/Products/NEXYS2/Ne
xys2_rm.pdf
9
Spartan 3E
10
Main HDL Modules
  • Monitor Interface
  • ROM (.coe file)
  • RAM (Look Up Table)
  • Character Converter
  • Clock Divider
  • Frequency Counter
  • Cycle Accurate Counter
  • ... Not in use Keyboard Interface, buttons and
    7-Sigment-Display

11
Block Diagram of TECHNO
12
In this area You can add or replace any VHDL
module or C function.
Interface
Monitor
ROM
Cycle Acc. Counter
Monitor Card
Keyboard Card
Keyboard
Conv. Number
Char. Converter
RAM
Frequency Counter
Clock Divider
50 MHz
IC12 pin5
13
In this area You can add or replace any VHDL
module or C function.
Interface
Monitor
ROM
Cycle Acc. Counter
Monitor Card
Keyboard Card
Keyboard
Conv. Number
Char. Converter
RAM
Frequency Counter
Clock Divider
50 MHz
IC12 pin5
14
RAM LUT(206)
  • Inputs row_address5..0, column_address5..0,
    input_data3..0, clock_25Mhz.
  • Outputs output_data3..0.
  • Function takes the results of any algorithm and
    time stores them in specific
    registers attached to specific location
    on the screen, in the same time it outs
    its contents to the ROM through
    character converter module.

Value to be shown on screen at this moment
Current location address on screen
row_address5..0
column_address5..0
input_data3..0
0001
output_data3..0
Data to be shown on screen
clock_25Mhz
RAM (206)
15
In this area You can add or replace any VHDL
module or C function.
Interface
Monitor
ROM
Cycle Acc. Counter
Monitor Card
Keyboard Card
Keyboard
Conv. Number
Char. Converter
RAM
Frequency Counter
Clock Divider
50 MHz
IC12 pin5
16
In this area You can add or replace any VHDL
module or C function.
Interface
Monitor
ROM
Cycle Acc. Counter
Monitor Card
Keyboard Card
Keyboard
Conv. Number
Char. Converter
RAM
Frequency Counter
Clock Divider
50 MHz
IC12 pin5
17
Character Converter
  • Inputs RAM_out3..0 clock_25Mhz.
  • Outputs Character address5..0.
  • Function Get the address of the number or
    character that will be shown on screen
    and pass it to the ROM to be displayed on
    the screen.

Data goes to the ROM, addres of that char.
Output of RAM
RAM_out3..0
01117
100111
Char. add5..0
clock_25Mhz
Character Converter
18
In this area You can add or replace any VHDL
module or C function.
Interface
Monitor
ROM
Cycle Acc. Counter
Monitor Card
Keyboard Card
Keyboard
Conv. Number
Char. Converter
RAM
Frequency Counter
Clock Divider
50 MHz
IC12 pin5
19
In this area You can add or replace any VHDL
module or C function.
Interface
Monitor
ROM
Cycle Acc. Counter
Monitor Card
Keyboard Card
Keyboard
Conv. Number
Char. Converter
RAM
Frequency Counter
Clock Divider
50 MHz
IC12 pin5
20
ROM(6488)
Inputs char_address5..0, font_row2..0
font_col2..0. Outputs rom_mux_output. Function
used to generate dots on a video display .
Each character is represented by an 8 by 8
pixels binary. Font data and its
addressees are stored in a .coe memory
initialization file.
Address of A 1
char_address5..0
000001
1 at each pixel we want to make dot on
font_row2..0
rom_mux_output
000-111
font_col2..0
000-111
ROM
21
ROM contents
This is an example That show how the Binary of
the character A stored in the .coe file
(ROM) Char address 000001 Font row
000-111 Font col. 000-111
  • Address Char. Data
  • 000001000 00011000
  • 000001001 00111100
  • 000001010 01100110
  • 000001011 01111110
  • 000001100 01100110
  • 000001101 01100110
  • 000001110 01100110
  • 000001111 00000000

22
In this area You can add or replace any VHDL
module or C function.
Interface
Monitor
ROM
Cycle Acc. Counter
Monitor Card
Keyboard Card
Keyboard
Conv. Number
Char. Converter
RAM
Frequency Counter
Clock Divider
50 MHz
IC12 pin5
23
In this area You can add or replace any VHDL
module or C function.
Interface
Monitor
ROM
Cycle Acc. Counter
Monitor Card
Keyboard Card
Keyboard
Conv. Number
Char. Converter
RAM
Frequency Counter
Clock Divider
50 MHz
IC12 pin5
24
Monitor
Inputs red_out, green_out blue_out,
horiz_sync, ver_sync. Outputs dots drown on
screen. Function takes the outputs of the
monitor interface and draw them pixel by
pixel on screen.
?
?
?
?
?
?
Monitor Pins
25
Monitor Interface (60 frame/sec)
  • Inputs 3-red, 3-green, 2-blue, clock_25Mhz.
  • Outputs 3-red_out, 3-green_out, 2-blue_out,
    horiz_sync, ver_sync,
    pixel_row9..0 pixel_column9..0.
  • Function generates horizontal and vertical
    signals to synchronize the drown
    eight bit colors on each
  • pixel.

go to the RAM and ROM to make sync between pixels
and Char
Tell monitor to refresh anew row of 640pixels
3-red_out
3-green_out
red
0
2-blue_out
green
0
horiz_sync_out
blue
1
ver_sync_out
clock_25Mhz
pixel_row9..0
pixel_column9..0
Monitor
Monitor Interface
http//www.altera.com/literature/univ/upds.pdf
26
In this area You can add or replace any VHDL
module or C function.
Interface
Monitor
ROM
Cycle Acc. Counter
Monitor Card
Keyboard Card
Keyboard
Conv. Number
Char. Converter
RAM
Frequency Counter
Clock Divider
50 MHz
IC12 pin5
27
In this area You can add or replace any VHDL
module or C function.
Interface
Monitor
ROM
Cycle Acc. Counter
Monitor Card
Keyboard Card
Keyboard
Conv. Number
Char. Converter
RAM
Frequency Counter
Clock Divider
50 MHz
IC12 pin5
28
Clock Divider
  • Inputs clock_50Mhz.
  • Outputs clock_25MHz.
  • Function used to generate appropriate, a 25MHz,
    clock signal to be used by monitor
    interface.

25 MHz
50Mhz
clock_50Mhz
clock_25MHz
Clock Divider
29
In this area You can add or replace any VHDL
module or C function.
Interface
Monitor
ROM
Cycle Acc. Counter
Monitor Card
Keyboard Card
Keyboard
Conv. Number
Char. Converter
RAM
Frequency Counter
Clock Divider
50 MHz
IC12 pin5
30
In this area You can add or replace any VHDL
module or C function.
Interface
Monitor
ROM
Cycle Acc. Counter
Monitor Card
Keyboard Card
Keyboard
Conv. Number
Char. Converter
RAM
Frequency Counter
Clock Divider
50 MHz
IC12 pin5
31
TECHNO Applications
  • Frequency Counter
  • Measure the frequency of an external signal.
  • Cycle Accurate Counter
  • Measure the number of cycles needed to execute
    certain C function or program.

32
In this area You can add or replace any VHDL
module or C function.
Interface
Monitor
ROM
Cycle Acc. Counter
Monitor Card
Keyboard Card
Keyboard
Conv. Number
Char. Converter
RAM
Frequency Counter
Clock Divider
50 MHz
IC12 pin5
33
In this area You can add or replace any VHDL
module or C function.
Interface
Monitor
ROM
Cycle Acc. Counter
Monitor Card
Keyboard Card
Keyboard
Conv. Number
Char. Converter
RAM
Frequency Counter
Clock Divider
50 MHz
IC12 pin5
34
Frequency Counter
  • Inputs IC12 pin5 external clk and 50MHz clk.
  • Outputs 1-8 decimal digits represent the
    frequency in Hz.
  • Function Counting the number of positive edges
    of the guest signal and store the result
    in 8 registers to be displayed on the
    screen.

Reg0
Reg1
Reg2
Reg3
Reg4
Reg5
Reg6
Reg7
Guest CLK
Frq_value 32..0
frq_clk
50Mhz
clock_50Mhz
Frequency Counter
35
In this area You can add or replace any VHDL
module or C function.
Interface
Monitor
ROM
Cycle Acc. Counter
Monitor Card
Keyboard Card
Keyboard
Conv. Number
Char. Converter
RAM
Frequency Counter
Clock Divider
50 MHz
IC12 pin5
36
In this area You can add or replace any VHDL
module or C function.
Interface
Monitor
ROM
Cycle Acc. Counter
Monitor Card
Keyboard Card
Keyboard
Conv. Number
Char. Converter
RAM
Frequency Counter
Clock Divider
50 MHz
IC12 pin5
37
Accurate Cycle Counter
  • Inputs Start_Done C program and 50MHz clk.
  • Outputs decimal digits represent number of
    cycles/prog.
  • Function Counting the number of clocks between
    the start flag and the end flag gt Logic
    Analyzer .
  • //C_Function
  • Done_Start//01
  • Function()
  • .
  • .
  • Done_Start//10

Start_Done
clks 32..0
50Mhz
clock_50Mhz
Frequency Counter
38
In this area You can add or replace any VHDL
module or C function.
Interface
Monitor
ROM
Cycle Acc. Counter
Monitor Card
Keyboard Card
Keyboard
Conv. Number
Char. Converter
RAM
Frequency Counter
Clock Divider
50 MHz
IC12 pin5
39
In this area You can add or replace any VHDL
module or C function.
Interface
Monitor
ROM
Cycle Acc. Counter
Monitor Card
Keyboard Card
Keyboard
Conv. Number
Char. Converter
RAM
Frequency Counter
Clock Divider
50 MHz
IC12 pin5
40
MicroBlaze
  • Soft Core - reduced instruction set computer
    (RISC)
  • 32-bit general purpose registers
  • 32-bit instruction word with three operands and
    two addressing modes
  • 32-bit address bus

http//www.xilinx.com/support/documentation/sw_man
uals/mb_ref_guide.pdf
41
In this area You can add or replace any VHDL
module or C function.
Interface
Monitor
ROM
Cycle Acc. Counter
Monitor Card
Keyboard Card
Keyboard
Conv. Number
Char. Converter
RAM
Frequency Counter
Clock Divider
50 MHz
IC12 pin5
42
In this area You can add or replace any VHDL
module or C function.
Interface
Monitor
ROM
Cycle Acc. Counter
Monitor Card
Keyboard Card
Keyboard
Conv. Number
Char. Converter
RAM
Frequency Counter
Clock Divider
50 MHz
IC12 pin5
43
Keyboard
  • Inputs mechanical input by user hand.
  • Outputs serial data keyboard clock
  • Function send a serial data to the keyboard
    interface , each 8-bit serial data
    represent a scan code to the pressed
    button.

If you pressed button A the keyboard send
00011100
Time 7
Time 0
?
?
Keyboard PS/2pins
44
Keyboard Interface
  • Inputs keyboard_clk, keyboard_data, clock_50Mhz,
    reset read.
  • Outputs scan_code7..0 scan_ready.
  • Function converts the serial data from the key
    board to parallel format to produce the
    scan code output.

Ex
Ex
keyboard_clk
Scan code of A 1C
scan_code7..0
keyboard_data
Serial data of A 00011100
clock_50Mhz
reset
scan_ready
read
Keyboard Interface
45
In this area You can add or replace any VHDL
module or C function.
Interface
Monitor
ROM
Cycle Acc. Counter
Monitor Card
Keyboard Card
Keyboard
Conv. Number
Char. Converter
RAM
Frequency Counter
Clock Divider
50 MHz
IC12 pin5
46
In this area You can add or replace any VHDL
module or C function.
Interface
Monitor
ROM
Cycle Acc. Counter
Monitor Card
Keyboard Card
Keyboard
Conv. Number
Char. Converter
RAM
Frequency Counter
Clock Divider
50 MHz
IC12 pin5
47
Converting Number
  • Inputs scan_code7..0 clock_50Mhz.
  • Outputs total_binary_no.7..0.
  • Function level Iconvert the scan code of the
    number to its real value .
  • level II calculate the total number
    entered by keyboard .

Data from keyboard intr. After conv. it to its
real values
254 00000010 00000101 00000100
Data to VHDL Module
Scan code of 2
11111110
20E00001110
scan_code7..0
total_binary_no.7..0
(2100)(510)(4)
clock_50Mhz
Converting Number
48
Device Utilization Summary
  • Selected Device 3s500efg320-4 Number of
    Slices                        1464  out of 
    4656    31  Number of Slice Flip Flops       
    1767  out of  9312    18  Number of 4 input
    LUTs            2431  out of  9312    26   
         
  • -Number used as logic                 
    2085      -Number used as Shift registers   
      90        -Number used as RAMs             
      256
  • Number of IOs                         
    29Number of bonded IOBs            29  out of 
      232    12  Number of BRAMs                 
      7  out of    20    35  Number of
    MULT18X18SIOs      3  out of    20    15 
    Number of GCLKs                    4  out
    of    24    16  Number of DCMs               
          1  out of      4    25 

49
Conclusion
  • In this project we built an interactive
    environment for embedded systems design. This
    environment allows the end user to insert C
    application and/or HDL custom design and get real
    time simulation through the monitor.
  • It allows to test the performance of a certain
    SW or/and HW application. In addition to that, it
    allows evaluating the efficiency of using
    coprocessor technique.

50
References
  • http//www.digilentinc.com/Data/Products/NEXYS2/Ne
    xys2_rm.pdf
  • http//www.xilinx.com/support/documentation/data_s
    heets/ds312.pdf
  • http//www.xilinx.com/support/documentation/sw_man
    uals/mb_ref_guide.pdf
  • http//www.altera.com/literature/univ/upds.pdf

51
Any Question
Write a Comment
User Comments (0)
About PowerShow.com