System-on-Chip
(SoC) Design
ECE382M.20,
Fall 2023
Class
Project
Due: December
8, 2023
Instructions:
•
The project is a team exercise.
•
Please use the discussion board on Ed
for Q&A.
•
We will have design reviews and final project
presentations in class.
•
Submit a copy of your final presentation slides on Canvas
and your project code on Github Classroom.
•
Also submit an individual report on team member
contributions throughout the class, i.e. a rating of your other team members across
all labs and the project on Canvas.
The class will be
assigned to teams to do the various components of an industry-strength system
design. The intent of the project is to do a HW/SW co-design of an embedded SoC. The design is a low-power, real-time SoC
implementation of the public
domain Tiny YOLO visual object detection system. The platform will
consist of an ARM processor, memory components, custom hardware accelerators,
etc. The ARM processor was chosen because it is used for a majority of the
components developed for the target market. The teams will be given a market
requirements document (MRD) and will then generate a product requirements
document (PRD) which will be used to complete the implementation of the Tiny YOLO
design.
The project activities include:
• Develop a PRD for the HW/SW implementation of the low-power SOC
• Profile the public domain software implementation to determine bottlenecks and optimize software performance (example in Lab 1)
• Partition the software into components which will run on the ARM processor and on the hardware accelerator (example in Lab 3)
• Convert the hardware code to fixed point (example in Lab 1)
• Verify that the code maintains its target specification (example in Lab 1 and Lab 3)
• Synthesize the hardware accelerator to RTL (example in Lab 2)
• Prototype the hardware accelerator on the FPGA
• Establish proper communication between the software and hardware (example in Lab 3 and the board tutorial below)
• Co-verify the prototype HW/SW implementation (example in Lab 3 and board tutorial below)
• Develop a high-level performance and power model of the SoC
• Estimate the timing, area and power consumption and validate product metrics described in the product MRD
The main tasks for the final part of the project are as follows:
•
Integrate, optimize and prototype the Tiny YOLO SoC
on the ARM+FPGA board. You can come up with functions other than the GEMM to
accelerate in hardware. Please refer to profiling results and develop your own
hardware accelerator, if you want to do so.
•
Interface the hardware accelerator to the ARM
processor, and develop and optimize the communication architecture.
• Implement the remaining functionality on the ARM processor and interface the ARM software to the hardware accelerator prototype in the FPGA.
We are targeting an ASIC implementation of the Tiny YOLO SoC in 45nm or
32/28nm technology. The marketing requirements are derived from the Tiny TOLO specification
and Tincy YOLO reference
implementation by Xilinx.
Specifically, the cost metrics for the
project are:
•
Performance
-
Real-time operation with at least 10 frames per
second (fps)
-
Object detection accuracy of at least 50% mAP
•
Area
-
0.5mm² for accelerators
-
On board memory TBD
•
Power
-
Additional system power for accelerators < 8mW
Some PRD examples:
We are using an ARM- and FPGA-based development board for prototyping
our ASIC SoC design:
• Ultra96
development board tutorial