S1-PRO5-2 - The Systematic Thinking Ability of Hardware/Software Co-design using FPGA

2. Research-to-Practice Work In Progress
1 Beihang University

Computer Engineering Curricula 2016 states that computer specialty should focus on system knowledge and system development. The motive of computer talent cultivation has changed from "Program Design (PD)” to “System Design (SD)”. SD aims to understand the cooperative work and interaction mechanism between software and hardware which can assist in understanding the integrity, relevance, hierarchy, dynamics and openness of computer systems which inturn can solve complex and engineering problems from the viewpoint of the system.
This paper proposes an innovative method of “hardware-software co-design” based on FPGA and it includes three stages:1.Basic stage focuses on understanding the fundamentals of computer systems and establishes a preliminary system concept; 2.Professional stage aims at forming a systematic view of software-hardware co-design; 3.Practical stage emphasizes solving complex engineering problems by using interdisciplinary knowledge.

The main contributions include five optimizations, they are:

1.Optimizing Curriculum System from a hierarchical structure to vertical structure
Traditional computer courses arrange the teaching content in a hierarchical way and each course focuses on one subsystem of the complex computer system. This method accords with the cognitive law of students and reduces learning difficulty. But it ignores the relevance between courses and the knowledge points are isolated and scattered. 

2.Optimizing teaching process from Software-Hardware to Hardware-Interface-Software
We establish a closed-loop teaching framework by designing some tightly coupled projects. The projects integrate hardware, interface and software together. Moreover, they cover the whole process of system design from single-core to multi-core, from serial-program to parallel-program, from hardware-interface to software-interface. It can strengthen the students' comprehensive application of computer knowledge.

3.Optimizing the teaching method from Complex to Simple
Complex style tries to develop a real system entirely at once but it is too difficult to implement. Based upon Occam's razor theory, simple style eliminates unnecessary knowledge and decouples the complex system into a single and simple module. One module corresponds to a single-problem that makes it have a clear boundary between hardware and software. Furthermore, modules can be integrated automatically through a standardized interface. 
Progressive teaching method, in particular to “hardware/software co-design, software-to-hardware and hardware-accelerated algorithm” is adopted to design a small-but-complete system through lightweight hardware-structure, lightweight cross-compiler and lightweight software development. It can effectively facilitate the internalization both from knowledge to ability and from theory to practice.

4.Optimizing teaching objectives from solving basic academic problems to solving complex engineering problems
To train engineering talents, we use industrial methods to solve industrial problems that meet industry standards. Under the guidance of OBE, we design industry-inspired engineering projects that offer the students a hands-on experience allowing them to better understand, model and manage the complex engineering systems.

5.Optimizing assessment system from single-dimension to multiple-dimension
The traditional system mainly focuses on the evaluation of programming skills. In contrast, a multiple-dimension system can evaluate system developing ability by the combination of manual evaluation and computer-aided evaluation, objective evaluation and subjective evaluation, process evaluation and outcome evaluation.