Presentation is loading. Please wait.

Presentation is loading. Please wait.

Firmware based Array Sorter and Matlab testing suite Final Presentation August 2011 Elad Barzilay & Uri Natanzon Supervisor: Moshe Porian.

Similar presentations


Presentation on theme: "Firmware based Array Sorter and Matlab testing suite Final Presentation August 2011 Elad Barzilay & Uri Natanzon Supervisor: Moshe Porian."— Presentation transcript:

1 Firmware based Array Sorter and Matlab testing suite Final Presentation August 2011 Elad Barzilay & Uri Natanzon Supervisor: Moshe Porian

2 Project Goals Building an integer array sorting Firmware on an FPGA. Building an integer array sorting Firmware on an FPGA. Develop a comprehensive MATLAB based testing and debugging environment. Develop a comprehensive MATLAB based testing and debugging environment.

3 Presentation Overview The need for sorting The need for sorting Project Overview Project Overview Implementation review Implementation review Sorting: Firmware Sorting: Firmware Test & debug: Software Test & debug: Software Communication: FW & SW Communication: FW & SW Results & demonstration Results & demonstration

4 The need for Sorting: Histograms as an example Many image processing algorithms relay on the use of histograms. For example - Photo “auto fix” – histogram equalization Photo Min Photo Max 0 Full Dynamic Range

5 For example:

6 Project Overview  System capabilities & requirements – Sorting an array of finite integers set. – Zero latency system. – Fully debug-able. – System operation and testing via PC interface.  Design principles – Generic implementation. – Top down design. – Error detection and handling.  System implementation on the DE2 evaluation card.  PC GUI implementation on MATLAB.  Complete development process: Characterization to operational platform.

7 High-level overview

8 SORT_TOP – Inputs Time Diagrams

9 SORT_TOP – Outputs Time Diagrams

10 SORT_TOP – Inputs & Outputs Time Diagrams Latency between input and output = 1 clock cycle

11 Bucket Sorting Problem: Zero-Latency requirement. allows only one system clock cycle between frame input and result output. Solution: use the Bucket-Sorting algorithm! Given the set of possible array elements, and elements order, Count repetitions for each element and output in order.

12 SORT_TOP

13 “Writing” block – DPR_update.vhd

14 “counters” block –DPR_block.vhd

15 “Reading” block - DPR_reader.vhd

16 DUDE – debug under development environment General scenario testing. Ability to generate errors and saving messages for error reproduction. Evolution parallel to the main FPGA project to test newly developed features and verify existing features.

17 “DUDE” – Debugging Under Development Environment MATLAB based GUI for data injection and result validation

18 “DUDE” – connection generation and main features Reloading last sent messages Serial port and CRC control Consecutive message sending: Random or GUI-screen generated messages.

19 “DUDE” – data generation Communications Error generation. UART Parity control Data table: generate, edit and view sent array. Repetitions counter All data generation is managed through the GUI!

20 “DUDE” – results viewer and verification The number table is the sorted array returned from the board. General status box to inform of the message status. If an error is identified at the board and an error notification message is returned this will be displayed here. The message box is also color indexed. View and compare the computer (ground-truth) results and the board generated values. Color indexing allows faster problem identification.

21 “DUDE” – implementation guidelines OOP based GUI. OOP based GUI. 2 main classes implemented: 2 main classes implemented: –CSettings – holds all the framework data and manages the messages list –CMessage – holds all the data per one given message and manages the dynamic data creation such as CRC and data length calculation. This modular design allows the GUI to be versatile and parameter independent. This modular design allows the GUI to be versatile and parameter independent. Easily adjustable to additional requested features. Easily adjustable to additional requested features.

22 PC – FPGA communication Serial communication - MATLAB API and designated FW blocks. MATLAB allows configuration of communication features. buffer overloading avoidance – Byte by Byte transmission.

23 Message Pack Structure SOF ID Data Length CRC EOF 8 bits 1 Byte. Some constant predefined flag 1 Byte. For message tracking 2 Bytes. Specifies the length of the data segment in bytes. 1 Byte. The CRC type will be defined later. 1 Byte. Some constant predefined flag Address 1 Byte. Specifies the addressed block Type 1 Byte. Type options are : set, query, sort [Data Length] X Bytes. (up to 65535 bytes) Holds the data and control signal to be fed into SORT_TOP DATA (payload)

24 Queuing system PC messages – 115200 bits/second Firmware clock – 60 MHz. – –Firmware is much faster… To allow testing of consecutive inputs a queuing system is required…

25 Queuing System - Overview

26 Data-path - Overview

27

28

29

30

31

32

33

34

35

36

37

38 Tested scenarios Sorting system: – –Basic test – random consecutive array. – –Constant arrays. – –Rising / Falling arrays. – –Fast toggling. – –Boundary values – zeros and 63’s in the array. Communication: – –CRC errors. – –EOF / SOF errors. – –UART parity error. – –Buffers overloading.

39 SignalTap – waveform Results First Frame incoming result Expected time diagram

40 Utilization Results

41 Timing Results

42 Demonstration…


Download ppt "Firmware based Array Sorter and Matlab testing suite Final Presentation August 2011 Elad Barzilay & Uri Natanzon Supervisor: Moshe Porian."

Similar presentations


Ads by Google