.. _nsim_em:

DesignWare(R) ARC(R) Emulation (nsim)
#####################################

Overview
********

This board configuration will use `Designware ARC nSIM`_ to emulate a virtual
ARC EM based board including the following features:

* ARC EM processor
* ARC internal timer
* a virtual output only console (uart-nsim)

There are two sub configurations in board:

* nsim_em which includes normal em features and ARC MPUv2
* nsim_sem which includes secure em features and ARC MPUv3

For detailed arc features, please refer to
:zephyr_file:`boards/arc/nsim_em/support/nsim.props` and
:zephyr_file:`boards/arc/nsim_em/support/nsim_sem.props`.


Hardware
********
Supported Features
==================

The following hardware features are supported:

+-----------+------------+-----+-------+-----------------------+
| Interface | Controller | EM  | SEM   | Driver/Component      |
+===========+============+=====+=======+=======================+
| INT       | on-chip    | Y   | Y     | interrupt_controller  |
+-----------+------------+-----+-------+-----------------------+
| UART      | nsim uart  | Y   | Y     | serial port-polling   |
+-----------+------------+-----+-------+-----------------------+
| TIMER     | on-chip    | Y   | Y     | system clock          |
+-----------+------------+-----+-------+-----------------------+


Programming and Debugging
*************************

Required Hardware and Software
==============================

To use Zephyr RTOS applications on this board, `Designware ARC nSIM`_ or
`Designware ARC nSIM Lite`_ is required.

Building Sample Applications
==============================

Use this configuration to run basic Zephyr applications and kernel tests in
nSIM, for example, with the :ref:`synchronization_sample`:

.. zephyr-app-commands::
   :zephyr-app: samples/synchronization
   :host-os: unix
   :board: nsim_em
   :goals: flash

This will build an image with the synchronization sample app, boot it using
nsim, and display the following console output:

.. code-block:: console

        ***** BOOTING ZEPHYR OS v1.12 - BUILD: July 6 2018 15:17:26 *****
        threadA: Hello World from arc!
        threadB: Hello World from arc!
        threadA: Hello World from arc!
        threadB: Hello World from arc!


.. note::
   To exit the simulator, use Ctrl+], then Ctrl+c

Debugging
=========

Refer to the detailed overview about :ref:`application_debugging`.

References
**********

.. _Designware ARC nSIM: https://www.synopsys.com/dw/ipdir.php?ds=sim_nsim
.. _Designware ARC nSIM Lite: https://www.synopsys.com/cgi-bin/dwarcnsim/req1.cgi
