270 likes | 372 Views
Firmware based array sorting and Matlab testing suite midterm presentation may 4 th , 2011. Elad Barzilay Uri Natanzon Supervisor: Moshe Porian. Project Goals. Building a generic integer array sort firmware on an FPGA board Develop a comprehensive testing
E N D
Firmware based array sorting and Matlab testing suitemidterm presentationmay 4th , 2011 EladBarzilay Uri Natanzon Supervisor: Moshe Porian
Project Goals Building a generic integer array sort firmware on an FPGA board Develop a comprehensive testing and debugging environment.
The need for Histograms 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
Project Overview System capabilities & requirements Sorting an array of finite integers set. Zero latency system. Fully debug-able. System operation 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-> debugging platform.
Message Pack Structure 8 bits SOF 1 Byte. Some constant predefined flag ID 1 Byte. For message tracking address 1 Byte. Specifies the addressed block address 1 Byte. Type options are : set, query, sort Data Length 2 Bytes. Specifies the length of the data segment in bytes. Data (Payload) [Data Length] X Bytes. (up to 65535 bytes) Holds the data and control signal to be fed into SORT_TOP CRC 1 Byte. The CRC type will be defined later. EOF 1 Byte. Some constant predefined flag
Firmware Testing - simulation • All FW sub-modules were tested in VHDL TestBenches. • Verification of module behavior by MODELSIM waveform analysis. • All blocks - Tests included valid operation conditions. • Sorting block - Tests also included “worst case” scenarios: • Sort_update– repetitions, fast toggling. • Sort_reader– zero repetitions, single repetitions, multiple repetitions. • Communication path - tested in firmware. • Error handling and CRC – not yet implemented. Will be tested separately. Comprehensive tests will be held via “DUDE” – Our Matlab GUI
“DUDE” – Debugging Under Development Environment MATLAB based GUI for data injection, result validation and status query
“DUDE” – implementation goals achievements • Send user defined arrays of data to be sorted. -Done • Send random arrays of data to be sorted. -Done • Verify the correctness of the sorted returned data array. – partially done. Not yet In GUI but capability implemented and used for debug. • Create fully user generated packets to generate errors. –Not implemented yet. • View bit representation of the messages sent and received . – Capability exists but not in GUI. • Logging of out/in-bound messages. –Not implemented yet.
“DUDE” – implementation guidelines • OOP based GUI. • 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. • All non implemented features are easily implemented with small effort. • Easily adjustable to additional requested features.