README.rst 4.38 KB
Newer Older
1 2 3 4 5 6
.. _introduction:description:

============
Introduction
============

Federico Vaga's avatar
Federico Vaga committed
7
The Mock Turtle is a framework to develop embedded systems on FPGA.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37

The need for this framework comes from the fact that in some contexts
the development of a gateware core is more complex than writing a
software application. Software takes more computation time than a
custom-designed gateware core; but on the other hand, the development
and support efforts are significantly reduced. Mock Turtle is a solution
for such problem. The gateware core complexity is moved to the software
domain within the Mock Turtle boundaries, without sacrificing
determinism.

The Mock Turtle framework provides an infrastructure on which you can
build an FPGA-based embedded system. The basic ingredient of this
framework is a soft-cpu multi-core environment that can be used to write
firmware to control/monitor gateware cores. In other words, you can
connect Mock Turtle to your gateware cores and control them with the
firmware running on the soft-cpu. In addition, the Mock Turtle framework
provides a communication channel between the firmware and the
host applications which can be used to configure or control the
firmware.

The Mock Turtle framework focuses mainly on the determinism of the
firmware running in it. Indeed, Mock Turtle does not support any kind of
interrupt or scheduling which might compromise the determinism.

The Mock Turtle framework includes the following components:

-  Gateware

   -  The Mock Turtle core

Federico Vaga's avatar
Federico Vaga committed
38
      -  Shared Memory among soft-CPUs and host system
39 40 41

      -  Up to 8 soft-CPUs

Federico Vaga's avatar
Federico Vaga committed
42
      -  communication with the host system (input, output)
43

Federico Vaga's avatar
Federico Vaga committed
44
      -  communication with remote systems (input, output)
45 46 47 48

-  Software

   -  the Mock Turtle firmware library to access gateware cores from the
Federico Vaga's avatar
Federico Vaga committed
49
      firmware
50

Federico Vaga's avatar
Federico Vaga committed
51
   -  the Mock Turtle firmware framework to develop firmware
52 53 54 55 56

If the Mock Turtle is used within a Linux host system, the user can take
advantage of a number of software components which run on the host and
support Mock Turtle:

Federico Vaga's avatar
Federico Vaga committed
57
-  the Mock Turtle Linux device driver
58

Federico Vaga's avatar
Federico Vaga committed
59
-  the Mock Turtle library that provides uniform access to the driver
60

Federico Vaga's avatar
Federico Vaga committed
61
-  the Mock Turtle Python module to access the library using Python
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

.. _introduction:use-cases:

Use Cases
==========

The focus on the high determinism of the soft-cpus makes the Mock Turtle
a very good candidate to implement rtc systems and control
systems (which are, typically, rtc applications).

To make clear the system architecture differences let’s take the
classical control system from the control theory: the heating system. We
have a thermometer sensor, and an actuator to adjust the temperature.

The following figures show the control system architecture with and
without Mock Turtle.

.. list-table::
   :header-rows: 0
   :widths: 1 1

   * - .. figure:: img/mock-turtle-use-case-1.svg
          :align: center

          Control system **without** Mock-Turtle

     - .. figure:: img/mock-turtle-use-case-2.svg
          :align: center

          Control system **with** Mock-Turtle



In the scenario without Mock-Turtle in figure the
user is responsible for the entire development. On the other hands, with
Mock Turtle, the user will be responsible of the development only of
your business logic. This will limit your gateware development to the
essential blocks, and move the control logic to the software domain. You
do not have to care about the communication with the host system or the
external world because it’s already part of the Mock Turtle framework.

.. _introduction:when-do-not-consider-mock-turtle:

105
When To Not Consider Mock Turtle
106 107 108 109 110 111 112 113 114
--------------------------------

The Mock Turtle soft-CPUs have limited computation power, this precludes
some applications like: dsp.

If you really want to use Mock Turtle for dsp analysis, please consider
the development of a dedicated gateware core to perform the dsp analysis
and to use the Mock Turtle as a control system for the dsp gateware
core.
115 116 117 118 119 120 121 122 123 124 125 126 127 128 129

Where To Get Mock Turtle
========================

Mock Turtle is officially hosted on the `Open Hardware Repository`_:
`Mock Turtle`_. This project is distributed as a git repository which can
be cloned using the following command::

    git clone https://@ohwr.org/gitolite/hdl-core-lib/mock-turtle.git

In it you can find all sources: HDL, software, demos, tests and this
documentation.

.. _`Open Hardware Repository`: https://www.ohwr.org/
.. _`Mock Turtle`: https://www.ohwr.org/projects/mock-turtle/repository