Constructivist Multi-Access Lab Approach in Teaching FPGA Systems Design with LabVIEW

Embedded systems play vital role in modern applications [1]. They can be found in autos, washing machines, electrical appliances and even in toys. FPGAs are the most recent computing technology that is used in embedded systems. There is an increasing demand on FPGA based embedded systems, in particular, for applications that require rapid time responses. Engineering education curricula needs to respond to the increasing industrial demand of using FPGAs by introducing new syllabus for teaching and learning this subject. This paper describes the development of new course material for teaching FPGA-based embedded systems design by using ‘G’ Programming Language of LabVIEW. A general overview of FPGA role in engineering education is provided. A survey of available Hardware Programming Languages for FPGAs is presented. A survey about LabVIEW utilization in engineering education is investigated; this is followed by a motivation section of why to use LabVIEW graphical programming in teaching and its capabilities. Then, a section of choosing a suitable kit for the course is laid down. Later, constructivist closed-loop model the FPGA course has been proposed in accordance with [24; 80,86,89,92]. The paper is proposing a pedagogical framework for FPGA teaching; pedagogical evaluation will be conducted in future studies. The complete study has been done at the Faculty of Electrical and Electronic Engineering, Aleppo University.


I. INTRODUCTION
Field-Programmable Gate Arrays (FPGAs) can be defined as a user programmable integrated circuits that offer reasonably high level of integration, negligible prototyping cost, and instantaneous manufacturing capability.Embedded FPGA systems have emerged rapidly during the last decade from expensive and complicated products, dedicated mainly for military and space applications, to modest cost products that are used in wide range of commercial applications [7][8][9].Nowadays, embedded FPGA systems are the first, and mainly the only available, choice for products that need rapid signal processing and computing such as video graphics and video encoders [10,11].FPGAs are at the heart of many systems and ideal for rapid prototyping of embedded systems designs.FPGA chips have grown in logic capacity while maintaining affordable cost for many applications [12].It is evident that FPGAs are becoming popular for designating the most of embedded systems [13,14].FPGA is a mature technology for the implementation of digital systems [15][16][17].In fact, many FPGA chips achieve 100x speedups and 100x performance gains per unit of area as compared to a similar microprocessor [18][19][20], and 41x performance gains per unit of area as compared to a similar DSP.
FPGAs are becoming increasingly commonplace in digital design laboratories at all course levels in engineering higher education.FPGAs have been shown to afford a number of new opportunities for classroom learning, such as: FPGA-based robotics laboratory experiments [21][22][23].FPGAs have also been successfully used in the classroom to study system on programmable chip (SoPC) design, hardware/software co-design, computer architecture, and signal processing hardware implementations [22][23][24][25].The flexibility and ease of use of FPGAs provide an opportunity for students to work on more meaningful projects with tens of thousands of gates while still learning the fundamentals of digital design [26,27].According to published experiences in literature [28][29][30][31][32][33], many universities around the world have adopted FPGA educational systems to teach their digital systems design courses.The first interests in embedding FPGA into engineering curriculum can be traced to 1997 [34]; since then, the development of new courses dedicated to Embedded Systems courses have been increasingly a trend in main Universities across the US [35], Europe [36], China [37], Taiwan [38] and South Korea [39]; interesting comparative studies on embedded systems curriculum development have also been recently investigated in literature [40,41].
Recent literatures [52][53][54] emphasize on the importance of using graphical programming for embedded FPGA systems development; it is noted that the life cycle of graphical programming is five times faster than textual programming; furthermore, graphical programming is rapid to learn and does not need particular programming experience [55].On the other hand, the development of embedded FPGA systems using traditional programming languages need prospective in-depth knowledge in C/C++ or HDL in order to perform bit-level operations.This could be a valid approach for low-level optimization purposes.However, most engineering students do not have such in-depth knowledge in programming; moreo-SPECIAL FOCUS PAPER CONSTRUCTIVIST MULTI-ACCESS LAB APPROACH IN TEACHING FPGA SYSTEMS DESIGN WITH LABVIEW ver, the concept of embedded programming is alien to most.One of the ways to solve this conundrum is to implement technologies that provide a higher level of abstraction.Such an approach would enable students to focus more on the design and less on the individual bits.Literature [56] indicates that in order to program embedded systems, a major shift in paradigm is required.Literatures [53,54] show that the graphical programming languages are better suited for embedded design because they are based on the dataflow paradigm.Dataflow programming paradigm [57] uses the imperative programming model wherein the program is modeled as a series of operations with the data seemingly invisible.One advantage, for example, is that this enables dataflow programming paradigm to be as applicable to multi-core and multi-processor systems as it is to single-core systems just be duplicating a process loop/structure as illustrated in Figure 1.

III. LABVIEW GRAPHICAL PROGRAMMING ENVIRONMENT
LabVIEW (Laboratory Virtual Instrumentation Engineering Workbench) is a visual programming language was developed by National Instruments (www.ni.com) in the early of 1980s with the vision of building an effective programming tool that reduces the required time to develop instrumentation systems software [58].LabVIEW uses a dataflow programming model in which the output of each computation node is calculated when all the inputs are determined for that node.LabVIEW considers a suitable and cost-effective tool for implementing engineering education applications and help in introducing embedded systems design at earlier stages in the engineering curriculum.During recent years LabVIEW has seen a significant increase in industry, as well as academia with applications ranging from hands-on [59] to simulation [60].LabVIEW has become a vital tool for engineers and scientists in research throughout academia, industry, and government labs.LabVIEW has been used in educational settings for implementing capstone design projects in the undergraduate curriculum.It has been used in data acquisition and control for a variety of systems including electrical and mechanical systems [61].In addition, it has been used in data acquisition for monitoring a renewable energy based power system [62].LabVIEW was taught in an interdisciplinary course on data acquisition [63] and integrated in a laboratory course to provide students with realistic, industry-based simulation experiences in the laboratory section of an upper division electronics course [64].LabVIEW has been used as well to address the needs of various courses in a technology and science curriculum [65][66][67][68][69][70].LabVIEW has also been integrated into a freshman engineering curriculum [71,72].In [73], the authors reported how students developed programs in LabVIEW in a freshman engineering course to learn basic feedback control concepts.Choi [74] used LabVIEW as a tool for teaching a mechatronics course.Eckhoff [75] used Lab-VIEW for developing a remote control for a smart truss bridge rig offered for a class on smart materials and sensors.Lauterburg [76] enumerates several examples in which LabVIEW simulations have been effectively used in teaching physics and engineering in a classroom setting or in the lab, such as tracking motions with a laser distance sensor, the demonstration and analysis of heat conduction and visualizing acoustic signals.LabVIEW has been reported as a more suitable programming environment for engineering students than textual programming languages such as C or Java [77].
LabVIEW have many features that make it a favorable tool for developing engineering education software tools, some of these are: 1. LabVIEW is inherently a Virtual Instrumentation (VI) platform and development environment for a visual programming language that effectively enables building user friendly interfaces for any engineering application.2. LabVIEW has comprehensive and wide-range libraries for all engineering applications, such as: measurements, data processing, various kinds of embedded systems, industrial systems, and data analysis.3. LabVIEW has advanced simulation implementation for a wide-spectrum of engineering applications/ problems.4. LabVIEW toolkits and models offer a comprehensive library sets of off-the-shelf functions.5. LabVIEW has many interfacing libraries that enable integrating other engineering files, such as: Matlab m file codes, Solidswork 3D models, IP codes, and this is particularly an enabler for using legacy codes.6. LabVIEW also has connectivity tools with other applications such as MS Office or SQL database.7. LabVIEW offers multimedia connectivity where audio/video files can be embedded in the developed application.8. LabVIEW offers a software application development kit that enables the creation of standalone executable applications from LabVIEW VIs, similar to other programming languages such as C++ /Basic/HDL.
These features and others have made LabVIEW an increasingly used platform for developing engineering education applications.

IV. LABVIEW APPLICATION AREAS
LabVIEW applications are spread in various systems.LabVIEW has proven high results in industrial applications [78].Some of the application areas of LabVIEW are: Simulation, Data Acquisition, Embedded Systems (MCUs, DSPs, FPGAs, and MPUs), Industrial Systems, and Data Processing.The built-in library of LabVIEW has a number of Vis that can be used to design, simulate, and develop any system.These features of LabVIEW will help provide an interdisciplinary integrated teaching and learning experience that integrates team-oriented, hands-  LabVIEW has the ability to target hardware ranging from desktop systems, handheld computers, real-time systems, FPGA-based boards, 32-bit MPUs and DSPs.One of the strength points of graphical programming languages is that users have the ability to port the same design to multiple targets with little to no code changes.But the power of graphical programming lies in the fact that the designer does not need to interface with the lowlevel code that is generated for the corresponding targets.The designer can always stay at the higher level of abstraction which makes it easy to develop sophisticated systems that can then be downloaded easily onto the desired target, including DSPs. Figure 3 illustrates a comparison between steps taken to program DSP in conventional methods to 'G' programming.
Figure 4 shows a comparison between steps taken to program FPGA in conventional method to 'G' programming.
Inherent Parallelism One of the biggest advantages of dataflow paradigm on which graphical programming is based on is that it is inherently parallel.With FPGAs being one of the most common hardware platforms, this becomes very critical.

V. THE SPARTAN-3E LAB KIT
The Spartan-3E starter Board has been adopted as a platform for the FPGA laboratory course.The Board is based-on Xilinx FPGA chip with up to 1.6million gate, 376 I/Os, 32 bit RISC processor, and DDR interfaces.The board features a Xilinx Platform Flash, USB and JTAG parallel programming interfaces with numerous FPGA configuration options via the onboard Intel StrataFlash and ST SPI Flash.It also contains a plenty of peripherals such as: VGA port, PS/2 port, 2x16 LCD, RS232 dualinterface.The kit is sold with a very appealing price for academic; USD149.
The board is also compatible with the MicroBlaze Embedded Development Kit (EDK) and PicoBlaze from Xilinx.Further technical specifications for this board can be found at [79]. Figure 7 illustrates the Xilinx SPARTAN-3E XUP board.

VI. EXPANDING THE KIT CAPACITY
Although the kit has a variety of peripherals' on board, a number of other peripherals (20-module) have been developed in order to enrich the boards functionality for teaching and learning purposes of the laboratory course; these extra peripherals include units for light intensity measurement, DC motor control, temperature measurement, etc…The reason for designing these peripherals is that the students don't have in-depth knowledge to program the available on board modules.By these modules students can be prepared to be able to develop the on board modules.Some of the designed expansion card and modules are illustrated in Figure 8.

VII. THE FPGA LABORATORY COURSE DESIGN METHODOLOGY
A system engineering approach with strong emphasis on formative assessment and feedback has been utilized in developing the pedagogical content of the course.Theoretical developments of feedback systems design for pedagogical processed has been originally proposed in form of mathematical dynamical linear differential models in [86,87,89,92].Implementation and evaluation of findings have been disseminated in [2][3][4].The empirical investigation indicated significant performance in utilizing closed-loop systems approach in the process of teaching and learning, with gains in learning ranged between 70% to 100% [3,4].Impact of utilization of virtual experiments in preparation mode for hands-on labs have been investigated in [5,90,94]; Statistical analysis results have shown a strong evidence that virtual lab preparation contributes positively to learning experience in hands-on lab sessions.
Based-on the previous theoretical developments [86,87,89,92] and positive empirical findings [1][2][3][4][5], a closed-loop FPGA course has been designed.The concept of the Trilab [6,86,91], blended pedagogically with Kolb's Experiential Learning theory [80] were utilized in realizing the closed-loop model, together with other elements.The Trilab concept indicates the utilization of three laboratory access modes for enriching experiential learning, via virtual, hands-on, and remote experiments..The three lab components is proposed to be integrated with other innovative teaching and leanring approaches [4,93] such as frequent sequential assessment, frequent feedback, and experiential activities via projects, such as shown in Figure9; Further details are provided in the next section.

VIII. A MODEL OF CONSTRUCTIVIST FPGA LAB
The design methodology of the proposed FPGA course is centered on the proposed comprehensive and constructivist educational model of learning/teaching in closedloop that illustrated in Figure 9.The course would have first clear objectives; then the Kolb-learning style (KLS) is applied; based on KLS inventory and the course objectives, the teaching methodology in the classroom to be set; then the first session, will start.Each session would also have clear objectives and it consists of classroom session and laboratory session; the audience electronic response Systems (ARS) in the classroom session is to stimulate the students' attention every 10min and to provide a formative assessment and evaluation of the students understanding (as a closed-loop).
The remote lab is also can be used in classroom for giving deeper understanding of the theoretical aspects in the real world (e.g.applying a PID controller parameter and evaluate the system real-time response).After the classroom session starts the laboratory session with a prelab session which can be a simulation for a given homework and can be done separately or in cooperative groups.After that the hands-on session will be conducted to apply the simulation results on the real rig and evaluate the findings.Since the available time for the hands-on lab is  not adequate for the students, a remote lab is advised to be conducted after the hands-on session.All sessions are to be evaluated by peers and teacher.At the end of the course, a self-directed team-based project is proposed; the project has meet a real problem has a direct relationship with the course contents.
Proceeding of the developed model of learning/teaching, a set of hands-on laboratory activities based on LabVIEW, Spartan Kit, and the extra peripherals have been designed; the lab manual was designed and systematized in a constructivist student-centric process so that the students can follow the manual and apply the steps with a minimum supervision.It's very important to boost every single idea by a graphical model or picture such as: functional diagram, flowchart, structure chart, logic chart, etc. which can help the students to more clearly gathering the information needed to design the experiment, doing the planed process, gaining hardware and software knowledge, and fully understand the objectives of the experiments.The Learning/Teaching process is considered as a dynamical, non-linear, process with numerous, dissimilar, and unknown states (parameters); thus describing the model of such system is very complicated.In such cases, fuzzy logic control approach considers as the optimal solution for modeling such system that the fuzzy logic requires describing the system inputs and outputs, no matter the internal states model are defined or not.Therefore, we suggest modeling the learning/teaching process using fuzzy logic or adaptive control approach.

XI. CONCLUSIONS
The paper reports on the development of a hands-on curriculum for teaching and learning of Embedded FPGA Systems design.To avoid complications in VHDL languages and syntax learning and to have more focus on systems design concepts, LabVIEW has been adopted as a programming environment for the ESs FPGA course.SPARTAN-3E starter board for FPGA chips have been found reasonably adequate (economically and technically) for the course objectives, however a number of extra peripheral modules have been developed in order to enrich the boards functionality.A system engineering approach with strong emphasis on formative assessment and feedback has been utilized in developing the pedagogical content of the course.The capacities of LabVIEW enabled implementing a triple access mode whereby students can perform FPGA experiments in three formats: virtual (simulation), hands-on and remote lab modes.The course with its technical and pedagogical models will be taught and the outcomes will be evaluated next academic semester.

Figure 1 .
Figure 1.Programming Dual-core processor in LabVIEW

Figure 2 .
Figure 2. Comparison between steps taken in conventional methods to graphical programming to program hardware target; the "G" programming for embedded systems has turned the advantage of higher level of abstraction from a novel idea to a practical implementation possibility.

Figure 3 .
Figure 3.Comparison between steps taken to program DSP in conventional methods to graphical programming on learning experiences throughout the engineering technology, and sciences curriculum that engaging students in the design and analysis process beginning with their first year.LabVIEW has the ability to target hardware ranging from desktop systems, handheld computers, real-time systems, FPGA-based boards, 32-bit MPUs and DSPs.One of the strength points of graphical programming languages is that users have the ability to port the same design to multiple targets with little to no code changes.But the power of graphical programming lies in the fact that the designer does not need to interface with the lowlevel code that is generated for the corresponding targets.The designer can always stay at the higher level of abstraction which makes it easy to develop sophisticated systems that can then be downloaded easily onto the desired target, including DSPs.Figure3illustrates a comparison between steps taken to program DSP in conventional methods to 'G' programming.Figure4shows a comparison between steps taken to program FPGA in conventional method to 'G' programming.Inherent Parallelism One of the biggest advantages of dataflow paradigm on which graphical programming is based on is that it is inherently parallel.With FPGAs being one of the most common hardware platforms, this becomes very critical.Figure 5 and 6 illustrate a comparing 'G'-based with Textual-based code.
Figure 5 and 6 illustrate a comparing 'G'-based with Textual-based code.

Figure 4 .Figure 6 .
Figure 4. Comparison between steps taken to program FPGA in conventional methods to graphical programming

Figure 7 .
Figure 7. Xilinx Spartan-3E Starter BoardSome of the factors that were considered in choosing the right hardware platform are: The cost to the students; Influential hardware properties of the Spartan-3E starter board, where Xilinx XC3S300E Spartan-3E FPGA provides sufficient "elbow-room" to hold multiple 32-bit processor cores along with a long list of peripherals.It contains a variety of standard interfaces (multiple SPI devices, variety of memory interfaces, serial ports, VGA, PS/2, etc…), all these features provide the students with opportunity to make meaningful experiments.A sufficient number of human I/O devices available via expansion connectors allowing instant gratification for the lowerlevel and introductory experiments (switches, rotary knob, push buttons, LEDs, and an LCD display); fast downloading of Bitstream file, operating system, and responsive debugging over high-bandwidth USB port.PHY 10/100 Ethernet interface enables inter-and intra-group projects; retaining multiple FPGA configurations in a non-volatile flash memory.

Figure 8 .
Figure 8.The Designed Expansion Card and Modules

Figure 9 .
Figure 9.The scheme of the proposed comprehensive educational model of learning/teaching in closed-loop process.

Figure 10 .
Figure 10.The Graphical code and interface of Lab.01

Figures 11 -
show the remote lab platform which has been implemented by using a remote desktop sharing method.LogMeIn-Hamach was used for proving a VPN and private IP for the experiment rig.The experiment rig and its components connection are illustrated in Figure14.

Figure 14 .
Figure 14.The components of the Remote Lab scheme