Presentation is loading. Please wait.

Presentation is loading. Please wait.

Virginia Commonwealth University School of Engineering DEPARTMENT OF ELECTRICAL AND COMPUTER ENGINEERING Embedded Systems-EGRE 631 TECHNO* Toward an Interactive.

Similar presentations


Presentation on theme: "Virginia Commonwealth University School of Engineering DEPARTMENT OF ELECTRICAL AND COMPUTER ENGINEERING Embedded Systems-EGRE 631 TECHNO* Toward an Interactive."— Presentation transcript:

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/Nexys2_rm.pdf

9 Spartan 3E: Spartan 3E 500K FPGA Digilent Board http://www.xilinx.com/support/documentation/data_sheets/ds312.pdf

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* Keyboard Monitor Keyboard Card Monitor Card ROM Frequency Counter Clock Divider Conv. Number RAM 50 MHz In this area: You can add or replace any VHDL module or C function. Cycle Acc. Counter IC12 pin#5 Interface Char. Converter

12 Keyboard Monitor Keyboard Card Monitor Card ROM Frequency Counter Clock Divider Conv. Number RAM 50 MHz In this area: You can add or replace any VHDL module or C function. Cycle Acc. Counter IC12 pin#5 Interface Char. Converter

13 Keyboard Monitor Keyboard Card Monitor Card ROM Frequency Counter Clock Divider Conv. Number RAM 50 MHz In this area: You can add or replace any VHDL module or C function. Cycle Acc. Counter IC12 pin#5 Interface Char. Converter

14 RAM LUT (20*6) : Inputs: row_address[5..0], column_address[5..0], input_data[3..0], & clock_25Mhz. Outputs: output_data[3..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. clock_25Mhz row_address[5..0] column_address[5..0] input_data[3..0] output_data[3..0] 0001 Value to be shown on screen at this moment Data to be shown on screen Current location address on screen RAM (20*6)

15 Keyboard Monitor Keyboard Card Monitor Card ROM Frequency Counter Clock Divider Conv. Number RAM 50 MHz In this area: You can add or replace any VHDL module or C function. Cycle Acc. Counter IC12 pin#5 Interface Char. Converter

16 Keyboard Monitor Keyboard Card Monitor Card ROM Frequency Counter Clock Divider Conv. Number RAM 50 MHz In this area: You can add or replace any VHDL module or C function. Cycle Acc. Counter IC12 pin#5 Interface Char. Converter

17 Character Converter: Inputs: RAM_out[3..0] & clock_25Mhz. Outputs: Character address[5..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. 100111 Output of RAM Data goes to the ROM, addres of that char. RAM_out[3..0] clock_25Mhz Char. add[5..0] Character Converter 0111=7

18 Keyboard Monitor Keyboard Card Monitor Card ROM Frequency Counter Clock Divider Conv. Number RAM 50 MHz In this area: You can add or replace any VHDL module or C function. Cycle Acc. Counter IC12 pin#5 Interface Char. Converter

19 Keyboard Monitor Keyboard Card Monitor Card ROM Frequency Counter Clock Divider Conv. Number RAM 50 MHz In this area: You can add or replace any VHDL module or C function. Cycle Acc. Counter IC12 pin#5 Interface Char. Converter

20 ROM (64*8*8) : Inputs: char_address[5..0], font_row[2..0] & font_col[2..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. char_address[5..0] font_row[2..0] font_col[2..0] rom_mux_output ROM 000001 000-111 ‘ 1 ’ at each pixel we want to make dot on Address of ‘ A ’ = 1

21 ROM contents: Address Char. Data 00000100000011000 00000100100111100 00000101001100110 00000101101111110 00000110001100110 00000110101100110 00000111001100110 00000111100000000 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

22 Keyboard Monitor Keyboard Card Monitor Card ROM Frequency Counter Clock Divider Conv. Number RAM 50 MHz In this area: You can add or replace any VHDL module or C function. Cycle Acc. Counter IC12 pin#5 Interface Char. Converter

23 Keyboard Monitor Keyboard Card Monitor Card ROM Frequency Counter Clock Divider Conv. Number RAM 50 MHz In this area: You can add or replace any VHDL module or C function. Cycle Acc. Counter IC12 pin#5 Interface Char. Converter

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 PIN# SIGNAL PIN#SIGNAL 1RED0.7v9NC 2GREEN0.7v10SYNC RTN 3BLUE0.7v11ID0 4ID212ID1 or DDC DATA 5GND13HSYNC 6RED SHIELD14VSYNC 7GREEN SHIELD15ID3 or DDC CLOCK 8BLUE SHIELD 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_row[9..0]& pixel_column[9..0]. Function: generates horizontal and vertical signals to synchronize the drown eight bit colors on each pixel. clock_25Mhz red green blue 3-red_out 3-green_out 2-blue_out pixel_row[9..0] pixel_column[9..0] ver_sync_out horiz_sync_out Monitor Interface Monitor 1 0 0 go to the RAM and ROM to make sync between pixels and Char Tell monitor to refresh anew row of 640pixels v h http://www.altera.com/literature/univ/upds.pdf

26 Keyboard Monitor Keyboard Card Monitor Card ROM Frequency Counter Clock Divider Conv. Number RAM 50 MHz In this area: You can add or replace any VHDL module or C function. Cycle Acc. Counter IC12 pin#5 Interface Char. Converter

27 Keyboard Monitor Keyboard Card Monitor Card ROM Frequency Counter Clock Divider Conv. Number RAM 50 MHz In this area: You can add or replace any VHDL module or C function. Cycle Acc. Counter IC12 pin#5 Interface Char. Converter

28 Clock Divider: Inputs: clock_50Mhz. Outputs: clock_25MHz. Function: used to generate appropriate, a 25MHz, clock signal to be used by monitor interface. clock_50Mhzclock_25MHz Clock Divider 25 MHz50Mhz

29 Keyboard Monitor Keyboard Card Monitor Card ROM Frequency Counter Clock Divider Conv. Number RAM 50 MHz In this area: You can add or replace any VHDL module or C function. Cycle Acc. Counter IC12 pin#5 Interface Char. Converter

30 Keyboard Monitor Keyboard Card Monitor Card ROM Frequency Counter Clock Divider Conv. Number RAM 50 MHz In this area: You can add or replace any VHDL module or C function. Cycle Acc. Counter IC12 pin#5 Interface Char. Converter

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 Keyboard Monitor Keyboard Card Monitor Card ROM Frequency Counter Clock Divider Conv. Number RAM 50 MHz In this area: You can add or replace any VHDL module or C function. Cycle Acc. Counter IC12 pin#5 Interface Char. Converter

33 Keyboard Monitor Keyboard Card Monitor Card ROM Frequency Counter Clock Divider Conv. Number RAM 50 MHz In this area: You can add or replace any VHDL module or C function. Cycle Acc. Counter IC12 pin#5 Interface Char. Converter

34 Frequency Counter: Inputs: IC12 pin#5 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. frq_clk Frequency Counter Guest CLK Frq_value [32..0] Reg0Reg1Reg2Reg3Reg4Reg5Reg6Reg7 clock_50Mhz 50Mhz

35 Keyboard Monitor Keyboard Card Monitor Card ROM Frequency Counter Clock Divider Conv. Number RAM 50 MHz In this area: You can add or replace any VHDL module or C function. Cycle Acc. Counter IC12 pin#5 Interface Char. Converter

36 Keyboard Monitor Keyboard Card Monitor Card ROM Frequency Counter Clock Divider Conv. Number RAM 50 MHz In this area: You can add or replace any VHDL module or C function. Cycle Acc. Counter IC12 pin#5 Interface Char. Converter

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 => Logic Analyzer. //C_Function Done_Start++;//=01; Function() { ………. ………. ……… } Done_Start++;//=10; Start_Done’ Frequency Counter #clks [32..0] clock_50Mhz 50Mhz

38 Keyboard Monitor Keyboard Card Monitor Card ROM Frequency Counter Clock Divider Conv. Number RAM 50 MHz In this area: You can add or replace any VHDL module or C function. Cycle Acc. Counter IC12 pin#5 Interface Char. Converter

39 Keyboard Monitor Keyboard Card Monitor Card ROM Frequency Counter Clock Divider Conv. Number RAM 50 MHz In this area: You can add or replace any VHDL module or C function. Cycle Acc. Counter IC12 pin#5 Interface Char. Converter

40 MicroBlaze: http://www.xilinx.com/support/documentation/sw_manuals/mb_ref_guide.pdf  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

41 Keyboard Monitor Keyboard Card Monitor Card ROM Frequency Counter Clock Divider Conv. Number RAM 50 MHz In this area: You can add or replace any VHDL module or C function. Cycle Acc. Counter IC12 pin#5 Interface Char. Converter

42 Keyboard Monitor Keyboard Card Monitor Card ROM Frequency Counter Clock Divider Conv. Number RAM 50 MHz In this area: You can add or replace any VHDL module or C function. Cycle Acc. Counter IC12 pin#5 Interface Char. Converter

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. Keyboard PS/2pins PS/2 KEYBOARD PIN#SIGNALPIN#SIGNAL 1DATA4+5 2NC5CLOCK 3GND6NC   If you pressed button ‘ A ’ the keyboard send 00011100 Time 0 Time 7 …

44 Keyboard Interface*: Inputs: keyboard_clk, keyboard_data, clock_50Mhz, reset & read. Outputs: scan_code[7..0] & scan_ready. Function: converts the serial data from the key board to parallel format to produce the scan code output. Keyboard Interface keyboard_clk keyboard_data clock_50Mhz reset read scan_code[7..0] scan_ready Serial data of ‘ A ’ =00011100 Ex: Scan code of ‘ A ’ =1C Ex:

45 Keyboard Monitor Keyboard Card Monitor Card ROM Frequency Counter Clock Divider Conv. Number RAM 50 MHz In this area: You can add or replace any VHDL module or C function. Cycle Acc. Counter IC12 pin#5 Interface Char. Converter

46 Keyboard Monitor Keyboard Card Monitor Card ROM Frequency Counter Clock Divider Conv. Number RAM 50 MHz In this area: You can add or replace any VHDL module or C function. Cycle Acc. Counter IC12 pin#5 Interface Char. Converter

47 Converting Number*: Inputs: scan_code[7..0] & clock_50Mhz. Outputs: total_binary_no.[7..0]. Function: level I:convert the scan code of the number to its real value. level II: calculate the total number entered by keyboard. Converting Number scan_code[7..0] clock_50Mhz total_binary_no.[7..0] Data from keyboard intr. After conv. it to its real values 254 = 00000010 00000101 00000100 11111110 Data to VHDL Module 2=0E=00001110 Scan code of 2 (2*100)+(5*10) +(4)

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: 29 Number 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/Nexys2_rm.pdf http://www.digilentinc.com/Data/Products/NEXYS2/Nexys2_rm.pdf  http://www.xilinx.com/support/documentation/data_sheets/ds312.pdf http://www.xilinx.com/support/documentation/data_sheets/ds312.pdf  http://www.xilinx.com/support/documentation/sw_manuals/mb_ref_guide.pdf http://www.xilinx.com/support/documentation/sw_manuals/mb_ref_guide.pdf  http://www.altera.com/literature/univ/upds.pdf http://www.altera.com/literature/univ/upds.pdf

51 Any Question


Download ppt "Virginia Commonwealth University School of Engineering DEPARTMENT OF ELECTRICAL AND COMPUTER ENGINEERING Embedded Systems-EGRE 631 TECHNO* Toward an Interactive."

Similar presentations


Ads by Google