Initiatives such as Codecademy, Khan Academy, Coder Dojo, Microsoft TEALS, Arduino, Raspberry Pi, micro:bit, and others have stimulated a great deal of interest and activity in Computer Science (CS) and Application Programming (AP). Engaging and enabling a global community, and in particular, a significant young audience, is surely leading to more programmers and engineers.
Is it possible to do something similar to engage and enable some of the community on “what’s inside” silicon chips, the engines under our program instructions?
viciLogic Online Learning
viciLogic is an online, directed-learning platform for digital logic hardware design, using real devices in the cloud. Since 2012 viciLogic has been used in a range of university courses in digital systems, computer architecture, and applications. Since 2014, an average of 3,500 FPGA configurations per month have been performed on the platform.
How does it Work?
To use viciLogic, just register and logon at http://viciLogic.com. For each user, viciLogic transparently configures a real digital integrated circuit within a hardware array in the cloud. The browser senses the state of all of the signals inside the user’s device in real time. This information animates connected widgets on the user console, enabling control and visualization of a range of views of the current chip operation. viciLogic uses a learn-by-doing strategy with directed learning, knowledge checks, and user sandbox interaction with real integrated circuits. Interactive pictures are a powerful visual demonstrator of chip behavior. The hardware array is a bank of Xilinx reconfigurable logic Field Programmable Gate Array (FPGA) devices in the cloud.
viciLab Remote Hardware Prototyping and Graphical UI Creation
Use viciLab to prototype your hardware in the cloud and quickly create an interactive graphical user interface console connected to your design. viciLab executes free industry-standard FPGA Electronic Design Automation (EDA) tools. Quickly develop drag & drop GUI demos of your hardware, or develop a custom Python user interface to your hardware application, integrated through APIs to connected sensors and actuators.
Some benefits of looking inside chips with viciLogic
Making digital logic design accessible, with practical, hands-on activity can help extend programmer knowledge of enabling technologies, how programs work, and considerations of performance, power, and cost. Introducing self-paced, modular, practical online learning of digital systems and applications can inform high school students about integrated circuit design engineering, and better inform their career choices. viciLogic can also enable teachers to independently learn-by-doing, using state-of the-art technology and electronic design automation tools.
Underlying/Enabling Technologies
Without silicon chip technology, application programming would not be possible. At the core of computers are digital processors, used by programmers and engineers. Processors contain lots of connected digital logic components within an architecture, which offers a versatile balance between performance, cost, and (vitally) flexible programmability. Digital silicon chips contain up to millions of electronic circuit components, working together to speed up operations on digital data. Each fundamental component has a purpose, while groups of connected components create more powerful and useful subsystems, such as fast detection of complicated objects in streamed image data.
An analogy is a group of individual orchestral musicians each contributing a vital component to something significantly more powerful and amazing than their individual contributions. A processor (orchestra) enables a programmer (conductor) to instruct a network of digital components (musicians) using a sequence of programming instructions (music score). With a new set of instructions the processor can easily perform a wide range of tasks or programs.
viciLogic introduces fundamental components and progresses to develop subsystems which integrate several components to build more powerful and interesting applications.
Making knowledge of digital chip technology more accessible
Improving knowledge of what’s inside can benefit all players in the CS and AP communities. Some argue that the significant focus on CS and AP, using the instruction as the fundamental building block, is obscuring the amazing world of chip design and the technology “inside.” Some argue that it is not necessary to understand the detail of how an integrated circuit processor works to become an accomplished programmer. Others consider that the hurdles to mastery and achievement in chip design are due to the perceived (and often practical) difficulty of learning digital design and related electronic design automation tools, and the need to have locally available integrated circuit prototyping hardware.
Platforms such as the viciLogic online learning and prototyping platform can change this. Internet bandwidth and the availability of a large array of FPGAs in the cloud determine the scale of access to online hardware resources.
viciLogic Build it Yourself Series
Over the coming months, Popular Electronics will introduce a series of short lesson articles on viciLogic chip design topics, with links to lessons, projects, CAD tools, and practical prototyping instructions.
The introductory directed learning lesson presents the fundamental 2-to-1 multiplexer component, widely-used for digital data channel selection and transmission. Register on viciLogic and select GET STARTED! The lesson demonstrates viciLogic, introducing a range of complementary behavior description views of the multiplexer component, and interacting with real hardware in the cloud. Views include truth table, timing diagram, sandbox, FPGA Lookup Table implementation, and VHDL, with practical viciLab FPGA prototyping and interactive GUI creation.
Later lessons will introduce more digital logic component building blocks, with hardware description language projects and the EDA tool usage to implement FPGA hardware. Components will include adders, registers, counters, state machine controllers, and their interconnection to create a series of practical digital logic projects with interactive GUI consoles. A later lesson will also introduce a working processor hardware design and low level programming tools to practically illustrate the relationships between code and “what’s inside.” You can use this online viciLab processor to develop a game application. We look forward to seeing you there! In the meantime, you can get in touch with us here: [email protected]
About the Author
Fearghal Morgan is a lecturer/researcher in Electrical & Electronic Engineering at the National University of Ireland, Galway (NUI Galway). He spent seven years as a design engineer in Digital equipment Corporation. Fearghal’s research and teaching interests include online learning and prototyping of reconfigurable computing (FPGA) applications and hardware neural network applications. In 2009, he was awarded the NUI Galway President’s Award for Excellence in Teaching and Learning.