FPGA Remote Laboratory Using IoT Approaches
Abstract
:1. Introduction
2. Related Research
2.1. Field-Programmable Gate Arrays
2.2. FPGA IoT Integration Methods and Applications
2.3. FPGAs in Remote Classrooms
2.4. Significance of Proposed Work
3. Materials and Methods
3.1. Remote FPGA Framework Implementation
Listing 1. Rasperry Pi network configuration file. |
3.2. System Architecture Design
3.3. Mobile Application
3.4. Google Firebase Real-Time Database
3.5. Raspberry Pi to FPGA Interface
3.6. Remote FPGA Hardware Wrapper
3.7. Python Compiler Wizard
4. Results
4.1. Experimental Results
4.2. Resource Usage
4.3. Latency
4.4. Discussion
5. Conclusions
Author Contributions
Funding
Conflicts of Interest
Abbreviations
FPGA | Field-Programmable Gate Array |
RPi | Raspberry Pi Zero |
UART | Universal Asynchronous Receiver Transmitter |
FIFO | First In, First Out |
SerDes | Serializer Deserializer |
IoT | Internet of Things |
JSON | Java Script Object Notation |
ALM | Adaptive Logic Module |
References
- Marinoni, G.; Van’t Land, H.; Jensen, T. The Impact of Covid-19 on Higher Education around the World. Available online: https://www.iau-aiu.net/IMG/pdf/iau_covid19_and_he_survey_report_final_may_2020.pdf (accessed on 9 September 2021).
- Hashemian, R.; Riddley, J. FPGA e-Lab, a technique to remote access a laboratory to design and test. In Proceedings of the 2007 IEEE International Conference on Microelectronic Systems Education (MSE’07), San Diego, CA, USA, 3–4 June 2007; pp. 139–140. [Google Scholar]
- Morgan, F.; Cawley, S.; Callaly, F.; Agnew, S.; Rocke, P.; O’Halloran, M.; Drozd, N.; Kepa, K.; McGinley, B. Remote FPGA lab with interactive control and visualisation interface. In Proceedings of the 2011 21st International Conference on Field Programmable Logic and Applications, Chania, Greece, 5–7 September 2011; pp. 496–499. [Google Scholar]
- Mohsen, A.E.R.; GadAlrab, M.Y.; Elhaya, M.Z.; Alshaer, G.; Asy, M.; Mostafa, H. Remote FPGA lab for ZYNQ and virtex-7 kits. In Proceedings of the 2019 IEEE 62nd International Midwest Symposium on Circuits and Systems (MWSCAS), Dallas, TX, USA, 4–7 August 2019; pp. 185–188. [Google Scholar]
- Schwandt, A.; Winzker, M. Make it open-Improving usability and availability of an FPGA remote lab. In Proceedings of the 2019 IEEE Global Engineering Education Conference (EDUCON), Dubai, United Arab Emirates, 8–11 April 2019; pp. 232–236. [Google Scholar]
- Oballe-Peinado, Ó.; Castellanos-Ramos, J.; Sánchez-Durán, J.A.; Navas-González, R.; Daza-Márquez, A.; Botín-Córdoba, J.A. FPGA-Based Remote Laboratory for Digital Electronics. In Proceedings of the 2020 XIV Technologies Applied to Electronics Teaching Conference (TAEE), Porto, Portugal, 8–10 July 2020; pp. 1–5. [Google Scholar]
- Fujii, N.; Koike, N. IoT remote group experiments in the cyber laboratory: A FPGA-based remote laboratory in the hybrid cloud. In Proceedings of the 2017 International Conference on Cyberworlds (CW), Chester, UK, 20–22 September 2017; pp. 162–165. [Google Scholar]
- Nasri Sulaiman, Z.A.O.; Marhaban, M.; Hamidon, M. Design and implementation of FPGA-based systems-a review. Aust. J. Basic Appl. Sci. 2009, 3, 3575–3596. [Google Scholar]
- Upegui, A.; Sanchez, E. Evolving hardware by dynamically reconfiguring Xilinx FPGAs. In Proceedings of the International Conference on Evolvable Systems, Sitges, Spain, 12–14 September 2005; pp. 56–65. [Google Scholar]
- Al-Safi, A.; Al-Khayyat, A.; Manati, A.M.; Alhafadhi, L. Advances in FPGA Based PWM Generation for Power Electronics Applications: Literature Review. In Proceedings of the 2020 11th IEEE Annual Information Technology, Electronics and Mobile Communication Conference (IEMCON), Vancouver, BC, Canada, 4–7 November 2020; pp. 0252–0259. [Google Scholar]
- Rasoulinezhad, S.; Boland, D.; Leong, P.H. MLBlocks: FPGA Blocks for Machine Learning Applications. In Proceedings of the 2021 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays, Monterey, CA, USA, 27 February–1 March 2021; p. 228. [Google Scholar]
- Wang, X.; Li, C.; Song, J. Motion image processing system based on multi core FPGA processor and convolutional neural Network. Microprocess. Microsyst. 2021, 82, 103923. [Google Scholar] [CrossRef]
- Liu, P.; Qingqing, W.; Liu, W. Enterprise human resource management platform based on FPGA and data mining. Microprocess. Microsyst. 2021, 80, 103330. [Google Scholar] [CrossRef]
- Elnawawy, M.; Farhan, A.; Al Nabulsi, A.; Al-Ali, A.; Sagahyroon, A. Role of FPGA in Internet of Things Applications. In Proceedings of the 2019 IEEE International Symposium on Signal Processing and Information Technology (ISSPIT), Ajman, United Arab Emirates, 10–12 December 2019; pp. 1–6. [Google Scholar]
- Kang, S.; Moon, J.; Jun, S. FPGA-Accelerated Time Series Mining on Low-Power IoT Devices. In Proceedings of the 2020 IEEE 31st International Conference on Application-specific Systems, Architectures and Processors (ASAP), Manchester, UK, 6–8 July 2020; pp. 33–36. [Google Scholar] [CrossRef]
- Ferdian, R.; Aisuwarya, R.; Erlina, T. Edge Computing for Internet of Things Based on FPGA. In Proceedings of the 2020 International Conference on Information Technology Systems and Innovation (ICITSI), Bandung, Indonesia, 16–17 November 2020; pp. 20–23. [Google Scholar]
- Sung, G.M.; Lee, C.T.; Chen, C.R. IoT-Based Home Care System with a FPGA Development Board by Using RS-485 Interface and Verilog HDL. In Proceedings of the 2020 IEEE International Conference on Systems, Man and Cybernetics (SMC), Toronto, ON, Canada, 11–14 October 2020; pp. 3370–3374. [Google Scholar]
- Peng, L.; Xin, Z.; Ping, G. Design and Implementation of Remote DeepFace Model Face Recognition System Based on sbRIO FPGA Platform and NB-IOT Module. In Proceedings of the 2019 2nd International Conference on Safety Produce Informatization (IICSPI), Chongqing, China, 28–30 November 2019; pp. 505–509. [Google Scholar]
- Wang, S.; Hou, Y.; Gao, F.; Ji, X. A novel IoT access architecture for vehicle monitoring system. In Proceedings of the 2016 IEEE 3rd World Forum on Internet of Things (WF-IoT), Reston, VA, USA, 12–14 December 2016; pp. 639–642. [Google Scholar]
- Gophane, K.C.; Bhaskar, P. FPGA Based Adaptive IoT Framework for Distinct Applications. In Proceedings of the 2018 Fourth International Conference on Computing Communication Control and Automation (ICCUBEA), Pune, India, 16–18 August 2018; pp. 1–6. [Google Scholar]
- Brasilino, L.R.; Swany, M. Low-Latency CoAP Processing in FPGA for the Internet of Things. In Proceedings of the 2019 International Conference on Internet of Things (iThings) and IEEE Green Computing and Communications (GreenCom) and IEEE Cyber, Physical and Social Computing (CPSCom) and IEEE Smart Data (SmartData), Atlanta, GA, USA, 14–17 July 2019; IEEE: New York, NY, USA, 2019; pp. 1057–1064. [Google Scholar]
- Raspberry Pi Ltd. Raspberry Configuration Documentation. Available online: https://www.raspberrypi.org/documentation/computers/configuration.html (accessed on 9 September 2021).
- Google. Google Firebase Documentation. Available online: https://firebase.google.com/docs/database/usage/limits (accessed on 9 September 2021).
- Intel Altera. FPGA Architecture. Available online: https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/wp/wp-01003.pdf (accessed on 9 September 2021).
Class | Properties |
---|---|
SevenSegment | Name: String NegativeLogic: Bool SegmentImage: String Pins: Array<Pin> |
LED | Name: String NegativeLogic: Bool LEDImage: String PinConnect: Pin |
Slide | Name: String NegativeLogic: Bool PinConnect: Pin Flipped: Bool |
PushButton | Name: String NegativeLogic: Bool PinConnect: Pin Depressed: Bool |
Pin | Assignment: String Direction: Int Value: Int Parent: Array<Peripheral> |
Raspberry Pi Pin | DE0-CV Pin | DE2-115 Pin | Signal Name | Signal Description |
---|---|---|---|---|
2 | 5V | 5V | 5[V] Power | Five-volt power supply. |
6 | Gnd | Gnd | Ground | Common ground. |
7 | J17 | AH23 | Reset | Software controlled FPGA reset. |
8 | G12 | AH26 | R-Pi UART TX | Serial transmit line. |
10 | K16 | AG26 | R-Pi UART RX | Serial receive line. |
11 | G15 | AG23 | UART Error | Active high upon transmission error. |
Pin # | Pin | Pin # | Pin | Pin # | Pin | Pin # | Pin |
---|---|---|---|---|---|---|---|
0000000 | A12 | 0100000 | D13 | 1000000 | M18 | 1100000 | U1 |
0000001 | A13 | 0100001 | D17 | 1000001 | M20 | 1100001 | U13 |
0000010 | A14 | 0100010 | E14 | 1000010 | M21 | 1100010 | U15 |
0000011 | A15 | 0100011 | E15 | 1000011 | M6 | 1100011 | U16 |
0000100 | AA1 | 0100100 | E16 | 1000100 | M7 | 1100100 | U17 |
0000101 | AA10 | 0100101 | F12 | 1000101 | M8 | 1100101 | U2 |
0000110 | AA13 | 0100110 | F13 | 1000110 | N1 | 1100110 | U20 |
0000111 | AA14 | 0100111 | F14 | 1000111 | N19 | 1100111 | U21 |
0001000 | AA15 | 0101000 | F15 | 1001000 | N2 | 1101000 | U22 |
0001001 | AA17 | 0101001 | G11 | 1001001 | N20 | 1101001 | U7 |
0001010 | AA18 | 0101010 | G13 | 1001010 | N21 | 1101010 | V13 |
0001011 | AA19 | 0101011 | G16 | 1001011 | N9 | 1101011 | V14 |
0001100 | AA2 | 0101100 | G17 | 1001100 | P14 | 1101100 | V16 |
0001101 | AA20 | 0101101 | G18 | 1001101 | P16 | 1101101 | V18 |
0001110 | AA22 | 0101110 | H10 | 1001110 | P17 | 1101110 | V19 |
0001111 | AB12 | 0101111 | H14 | 1001111 | P18 | 1101111 | V20 |
0010000 | AB13 | 0110000 | H18 | 1010000 | P19 | 1110000 | V21 |
0010001 | AB15 | 0110001 | J11 | 1010001 | P9 | 1110001 | W16 |
0010010 | AB17 | 0110010 | J13 | 1010010 | R15 | 1110010 | W19 |
0010011 | AB18 | 0110011 | J18 | 1010011 | R16 | 1110011 | W2 |
0010100 | AB20 | 0110100 | J19 | 1010100 | R17 | 1110100 | W21 |
0010101 | AB21 | 0110101 | K17 | 1010101 | R21 | 1110101 | W22 |
0010110 | AB22 | 0110110 | K19 | 1010110 | R22 | 1110110 | W9 |
0010111 | B12 | 0110111 | K20 | 1010111 | T12 | 1110111 | Y14 |
0011000 | B13 | 0111000 | K21 | 1011000 | T13 | 1111000 | Y15 |
0011001 | B15 | 0111001 | K22 | 1011001 | T14 | 1111001 | Y16 |
0011010 | B16 | 0111010 | L1 | 1011010 | T15 | 1111010 | Y17 |
0011011 | C1 | 0111011 | L17 | 1011011 | T17 | 1111011 | Y19 |
0011100 | C13 | 0111100 | L18 | 1011100 | T18 | 1111100 | Y20 |
0011101 | C15 | 0111101 | L19 | 1011101 | T19 | 1111101 | Y21 |
0011110 | C16 | 0111110 | L2 | 1011110 | T20 | 1111110 | Y22 |
0011111 | C2 | 0111111 | L8 | 1011111 | T22 | 1111111 | Y3 |
FPGA Device | ALM Utilization |
---|---|
DE-0 Dev Board | 141 (<1%) |
DE2-115 Dev Board | 342 (<1%) |
Cyclone VE Dev Board | 271 (<1%) |
Cyclone V SoC Dev Kit | 265 (<1%) |
Arrow SoCKit | 267 (<1%) |
Statistic | Value |
---|---|
Total Tests n | 10,000 |
Maximum | 6050 [ms] |
Minimum | 2.75 [ms] |
Results greater than 1 [s] | 0.38% |
Results less than 0.2 [s] | 74% |
Population Mean | 196 [ms] |
Standard Deviation | 112 [ms] |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2021 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Magyari, A.; Chen, Y. FPGA Remote Laboratory Using IoT Approaches. Electronics 2021, 10, 2229. https://doi.org/10.3390/electronics10182229
Magyari A, Chen Y. FPGA Remote Laboratory Using IoT Approaches. Electronics. 2021; 10(18):2229. https://doi.org/10.3390/electronics10182229
Chicago/Turabian StyleMagyari, Alexander, and Yuhua Chen. 2021. "FPGA Remote Laboratory Using IoT Approaches" Electronics 10, no. 18: 2229. https://doi.org/10.3390/electronics10182229
APA StyleMagyari, A., & Chen, Y. (2021). FPGA Remote Laboratory Using IoT Approaches. Electronics, 10(18), 2229. https://doi.org/10.3390/electronics10182229