Difference between revisions of "Main Page"

From SoC Design Wiki
Jump to: navigation, search
(Lab Tutorials)
Line 2: Line 2:
  
 
==Introduction==
 
==Introduction==
Welcome to SoC design wiki. We started this series of labs/projects in 2014 and we are upgrading and fixing problems every year to make it better.
+
Welcome to teh wiki for the SoC design! We started this series of labs/projects in 2014 and we are upgrading and fixing problems every year to make it better.
 +
 
 
===Learning Objectives===
 
===Learning Objectives===
By completion of the SoC Design labs, you should be able to:
+
After the completion of the labs, you are able to:
  
 
{|
 
{|
 
|style="vertical-align:top;"|
 
|style="vertical-align:top;"|
 
'''Tutorials''':
 
'''Tutorials''':
#Kernel Driver: How to write a simple kernel driver and use it to control a simple IP on ZedBoard.
+
# Make Linux kernel drivers: Write a simple kernel driver for controlling a simple IP (intellectual property) on ZedBoard.
#Building custom SoC on ZedBoard:
+
# Build custom SoC (System-on-Chip) on ZedBoard:
#*Creation of simple SoC with Vivado from existing IPs
+
#* Create a simple SoC with Vivado from existing IPs
#*Building a custom embedded Linux system to be run on the SoC
+
#* Build a custom embedded Linux system to run on the SoC
#*Using custom kernel drivers to control the IPs in the SoC
+
#* Using custom kernel drivers to control the IPs in the SoC
#Custom IP creation:  
+
# Create custom IPs:  
#*Development of simple custom IP
+
#* Development of simple custom IP from VHDL code
#*Integrating IP into the SoC using AXI bus  
+
#* Integrate the IP into the SoC using AXI bus  
#*Controlling the IP from Linux using custom driver
+
#* Control the IP from Linux using custom driver
#Setup 1 board system for the lab
+
# Build a simple audio processor system
#*Complex system integration
+
#* Complex system integration
#*Preparation for project
+
#* Preparation for course project
  
 
|style="vertical-align:top;"|
 
|style="vertical-align:top;"|
Line 30: Line 31:
 
|style="vertical-align:top;"|
 
|style="vertical-align:top;"|
 
'''Project''':
 
'''Project''':
*Component reuse and system improvement  
+
* Component reuse and system improvement  
*Functional test and analysis
+
* Functional test and analysis
*Work in a team
+
* Working in a team
 
|}
 
|}
  

Revision as of 14:57, 2 September 2019

Logo SoC.png

Introduction

Welcome to teh wiki for the SoC design! We started this series of labs/projects in 2014 and we are upgrading and fixing problems every year to make it better.

Learning Objectives

After the completion of the labs, you are able to:

Tutorials:

  1. Make Linux kernel drivers: Write a simple kernel driver for controlling a simple IP (intellectual property) on ZedBoard.
  2. Build custom SoC (System-on-Chip) on ZedBoard:
    • Create a simple SoC with Vivado from existing IPs
    • Build a custom embedded Linux system to run on the SoC
    • Using custom kernel drivers to control the IPs in the SoC
  3. Create custom IPs:
    • Development of simple custom IP from VHDL code
    • Integrate the IP into the SoC using AXI bus
    • Control the IP from Linux using custom driver
  4. Build a simple audio processor system
    • Complex system integration
    • Preparation for course project

                                  

Project:

  • Component reuse and system improvement
  • Functional test and analysis
  • Working in a team

Labs Requirements

For these labs we assume that you have passed the following courses:

  • IAY0600: Digital Systems Design
  • IAY0330: Embedded Systems

So that you are familiar with digital systems and Embedded Systems. You should be familiar with High Level Description Languages like VHDL or Verilog (our main focus is on VHDL but if you know Verilog, it is also ok!).

Lab Organization

Important dates

  • Week 1, week 2, week 3: Lab 1
  • Week 4: Lab 2
  • Week 5, week 6, week 7, week 8: Lab 3
  • Week 9, week 10: Lab 4
  • Week 11: Backup time
  • End of week 15: Project Deadline

                                  

Lab grading policy

  • Tutorials (Pass/Fail - prerequisite for project) (this is prerequisite for project)
  • Project (50% of grade)
  • Examination (50% of grade)

In order to pass the course, you have to get a positive result in both the project and the exam.

You cannot finish the project without passing all tutorial labs!

          


Grading.png

Current Lab Results

Statistics-512.png
You can view you current lab results and statistics here

Contact Us

In case of any questions, please contact us:

Redphone.png
Karl Janson
Madis Kerner

Rules and Regulations

Please read the following page before you start the course:

Timing and Plans

Please note that the project ends at the end of semester and will not be extended.

General Rules

  • Unplugging any cables from the lab computers is NOT ALLOWED! If you use your own computer, please use Wi-Fi.
  • It is OK to discuss your code with co-students during the labs.
  • Copying co-student's code is not OK! You need to write it yourself.
  • You must understand the code you write! We will check everyone.

Writing Code

We would like to re-use your code later on so keep these things in mind:

  • Use comments in your code. Even you, as the programmer, who wrote the code, will otherwise not understand your code after a while.
  • Write a proper doc-string for the functions. It makes the life of you and others a lot easier.
  • Use meaningful variable names. The purpose of a variable with the name "counterMaxValue" is much easier to understand that the same variable with the name "cMNum", for example.

In Case of Problems

Please use the following methods in the following order for solving your issues:

  1. Check the current lab's additional materials.
  2. Re-read the lab manual to make sure you did not miss anything.
  3. Google your problems
  4. Ask the lab assistants for help.

NOTE: In case you find a problem with the documentation, please tell the assistants. Then we can fix the problem and everyone will be happy :)


Lab Tasks

Lab Tutorials

Here you can find lab manuals for the tutorials:

Labs additional readings

Additional reading and more information about the labs can be found here:

General documents

Lab specific documents

Using Own Computer for the Labs

If you plan to use your own computer, please refer to the Using Own Computer page.

Tutorial Labs Archive

Audio Mixer Project

Project Description

Mixer.jpg
Zedboard icon.png

Design project is defined in each round for System on Chip design(IAY0550) students with the aim of providing them with real world experience of working on a SoC project, teamwork and project management. This wiki will serve as a platform for students to pass-on their designs and documents to students in the next round of course. Full description of the project can be found on the Project Description page

Git

Github.png

The project code should be stored in git. Every component of the project should be uploaded as a separate branch.

There exists a dedicated Github repository for the course, that can be accessed here: [1]

Team Organization

The following page is for clear and transparent team organization for design project:

Design project