You are on page 1of 3

Vayve Training Program

Vayve Summer Training Programs - Industrial/ Practical

Inspiration / Motivation
Engineering is a skill that can be learnt by practising backing the practice with core concepts makes
the experience better.
Present Scenario
Throughout the school and college curriculum, focus has been devoted to reading books and
answering questions serving only a limited role in practical world. As an engineering student or an
engineer, the primary focus has to be implementation. Even when one considers implementation
there is a huge gap between hobby-projects and industrial grade and deployable projects which are
designed and tested to work in all conditions. When it comes to designing systems that will be used
by end customers one has to be sure that implementation is hassle free and debug in case anything
crops up (which always does) a skill that cannot be picked up and mastered by just reading books
and excelling in exams.
What current approach is lacking
Trivially an introductory course will fall into one of two extremes: either focusing on the details of the
tool that is being used or looking at things in a completely abstract manner for example while
teaching a computer science course focussing on a programming language and where the semicolons
go or else treating programming as a matter of choosing components and plugging them into a GUI.
The basics how to design and analyze algorithms and data structures are covered summarily if at
all. Software methodologies such as Object Orientation that are best approached in the context of the
development life cycle for large applications, are introduced through trivial examples before their
benefits can be appreciated: the proverbial cannon that is used to shoot a fly. Important issues, such
as understanding language-related vulnerabilities and knowing how to avoid them, are not explored.
Modification to current approach
At Vayve Academy, focus is to remove the inertia, the fear that students or engineers have in
implementing projects, in using the technology and tools they have never used before. Thus focus is
equally divided between the abstract and the details giving equal attention to both and asserting
the benefit of when to focus on which, by using real-world projects. Rote learning and teaching the
same concepts written in hundreds of books in dry manner, bringing everyone to sleep is eliminated.
We believe that once we see a practical demonstration of a concept, understanding it becomes that
much easier and interesting. Once we use the concept to implement things, it gets imbibed in our
thought process and we can apply the same to solve multiple problems instead of just that one
problem.
Implementation methodology
Each module is broken into a series of practical concepts that build up the entire subject. The students
proceed through these concepts one by one with a larger goal of creating a practical working product
that can be taken to market as it is. We will not end the course with prototypes or proof of concepts
but put in the effort and hours required to create a product. Another benefit of this approach is that
everyone can proceed at their own pace fast learners need not waste time on concepts they already
understood and slow learners need not feel that they are lagging behind. As said earlier, engineering
is all about practice and if you keep practicing, there is always success.

Thats what our approach to teaching is. There is no fixed syllabus, no fixed set of concepts that will
make you master of this field. We cannot teach you everything the subject has to offer in a short
duration of the course and we do not intend to. We want to take you to a level when you have no fear
of implementing stuff and can keep adding to your skillset by reading books, blogs etc.. The aim is to
make you self-dependent so that you know how to solve problems in future.
A word of caution though we expect the student to put in as much effort as we do in this course.
Those who do not wish to learn are not invited.

Modules offered: (Topics)


Module 1 Embedded Systems: Programming the real world using microcontrollers and SOCs
Duration: 1 month without project / 3 months with project
Embedded systems is a very mature field and there are many people teaching it. But still many of the
project that we see in the market are either overprovisioned or not properly designed. The reason for
this is that embedded designers have to take care of the hardware they are working with directly. Each
resource is in their control and reliability, safety, and correctness are their immediate concerns. There
are usually real-time constraints, memory/resource constraints and often one has to deal with
hardware that is buggy. The easy approach is to overprovision and somehow have some workaround
solutions which increases both time and cost something that is not acceptable if you remain to be
competitive. Topics covered are:
-

Structure of a microprocessor
Interfacing microprocessor to the real world
Schematics, PCB, Gerbers and related stuff
Algorithms and why they are useful
Coding the microprocessor from assembly to C
Things to care of while designing systems
Project tracks robotics, medical equipments, automation

Module 2 VLSI system design: Leveraging the power of programmable logic and FPGAs
Duration: 1 month without project / 3 months with project
To this day FPGAs are still very, very, difficult to learn and teach. There are people who want to learn
logic and FPGAs and are turned off by the subject because the barrier to entry is still so high. The
reason for this is not that the subject is complex but the approach has been completely wrong. One
cannot learn hardware design using FPGAs by just learning the tools or mastering concepts of digital
logic design. It can be learnt only after you start thinking in terms of a system and then decompose
the system into the logic blocks that build up this system. The concepts come in handy once you reach
this stage and not before.
-

How programmable logic works and what can we do with it.


Multiplexers, adders and state machines making sense of flips and flops.
Modelling systems as hardware blocks and how to realize these blocks.
HDLs and tools that make our life easier.
FPGA and their architecture.
Project tracks FPGA-Accelerated Simulators, bitcoin miner, network coprocessor, network
switch

Module 3 Software for controlling embedded systems and embedded FPGA microprocessors
Duration: 1 month without project / 3 months with project
One has to follow a completely different thought process when coding for embedded systems or
microprocessors embedded inside an FPGA. The reason for this being the close coupling between the
hardware and software. An efficient embedded software programmer must understand the basic
functionality of the underlying hardware to extract maximum performance with the limited resources
available and to ensure that all the corner cases (cases that occur rarely and result in hard to catch
bugs) are taken care of. This is quite different from application programming where the underlying
hardware is abstracted by the Operating System and it does not matter how much memory or internal
registers is the processor having. Much more understanding or the core system is required when we
want to write real-time systems with strict timing requirements in the order of microseconds and
nanoseconds.
-

Structure of a microprocessor.
Inputs and Outputs making sense of timing characteristic from a software designers
perspective.
Algorithms and data structures for embedded programmers.
Assembly and C.
Creating software frameworks for embedded systems and working with existing ones.
How operating systems work.
Embedded Linux.

You might also like