Hello, if you have any need, please feel free to consult us, this is my wechat: wx91due
ELE00146M Coursework Assignment 2024/5
1. Tasks
You are required to modify the code developed during the laboratory sessions. The assignment comprises of two parts:
Part A
You must develop your own custom peripheral on FPGA and aMach it to the embedded ARM processor on the Xilinx ZYNQ SoC via the AXI bus. The task is to implement an image filter (a convoluWon operaWon) in programmable logic. You may choose to implement any filter you like, but you must include the following features and funcWonality:
• The filter should be 3x3, 5x5, or 7x7 in size.
• Filter coefficients are stored within the peripheral.
• Image data is wriMen to the peripheral, and filtered image data is read from the peripheral.
• Full source image must be stored in the memory of the embedded processor using PGM/PCM format. It must be at least 512x512 pixels in size,
• An algorithm wriMen in embedded C divides the image appropriately, sends it to the filter peripheral, reads filtered data back, and puts a filtered version of the full image back together.
• Send the filtered image to the PC and display it alongside the original one.
To achieve full marks, you are required to implement at least one of the following advanced features. For example, to make your design more useful or increase its performance, you may choose from:
• Moving more of the funcWonality from so`ware to hardware.
• Adding FIFOs to improve throughput of data in your peripheral.
• Making the filter funcWon programmable.
• Making the filter size programmable.
Part B
You must establish serial communicaWon between the Xilinx ZYNQ SoC on the ZedBoard and the ARM M4 Processor on the STM32 Nucleo-64 board and use the 8x8 LED matrix to display data from the ZYNQ SoC in real Wme. You must include the following funcWonality:
• Connect ZYNQ SoC with ARM M4 via SPI interface.
• Write embedded C code that sends a stream of variable data to the ARM M4. You may generate that data on the embedded processor of the ZYNQ SoC, but to achieve full marks, data must be output data from your own custom peripheral from Part A.
• Display the data on the 8x8 LED matrix in real Wme, i.e., using Wmer- and interrupt-driven system from the laboratory sessions.
ImplementaWon details, design choices, and advanced features of part A and part B are enWrely up to you, but you must ensure to have working code, and to follow coding standards producing readable, clearly
structured, commented code.
2. Submission
For Part A, you must submit:
• A technical datasheet of your own custom peripheral. It should contain key features and parameters of your peripheral, a brief descripWon of its funcWon, a documentaWon of its control and data registers, and an example use case. Aim to structure it like one of the Xilinx IP datasheets, contain text and diagrams as appropriate, and it must not exceed two A4 pages, using 12pt Arial, HelveWca, Calibri, or Times font.
• A technical report describing the development process of your peripheral, including features, design choices, performance, and test methods used. The report should also contain a brief secWon on the image filtering use case, describing what the applicaWon does, the type of filter you have used, how it is implemented, tested, and showing some examples of original vs filtered images. Aim to make the technical report no longer than 1,500 words and include meaningful diagrams and illustraWons. If you are unsure about aspects of the report, please ask.
For Part B, you must submit:
• A short video of no more than 30 seconds, showing how you power on the hardware, run an example on your system, and what is displayed on the 8x8 LED matrix.
You must also submit your code, being careful to upload all files that you have created or modified, and that are necessary to run your projects. The easiest way to do this is to submit a ZIP archive of your project folder. However, before you do that, make sure to run “Clean project” funcWons in all design tools, to keep the size down. Temporarily created files are not required. Make sure to anonymise the filenames by renaming them appropriately.
3. Guidance
Tips and resources for implemenWng each of the requested features will be discussed in lectures, workshops, and laboratory sessions, to give you starWng points.
4. Marking
Marks will be awarded for:
• Design features implemented.
• EffecWve, readable, commented code.
• Good use of funcWons, refactored code, and IP.
• Correct use of coding constructs (define, const, volaWle).
• Sensible use of datatypes and data structures (arrays, Xuint, pointers).
• Efficient use of CPU Wme, using Wmers, interrupts, loops, funcWons where possible.
• Report structure, presentaWon, and readability
Please note that the mark scheme is based on the quality of the submiMed work, on the assumpWon that it is complete and contains at least the features specified in SecWon 1. If you do not implement all the essenWal features and at least the minimum number of opWonal features, penalWes will be applied.
IndicaWve mark breakdown (out of the overall course mark):
Item |
Mark |
Structure and presentaWon of datasheet and technical report |
15% |
Clarity and presentaWon of the short video |
5% |
Design choices and details |
25% |
EffecWveness and details of implementaWon |
25% |
Coding standard, clarity, structure, commenWng |
10% |