ARC EM Software Development Platform

Introduction

The ARC EM Software Development Platform (emsdp) is an FPGA based development platform intended to support ARC licenses in developing their software for the ARC EM processor family and ARC EM Subsystems. It has the support for ARC EM4, EM5D, EM6, EM7D, EM9D and EM11D processors. ARC EM Enhanced Security Package (ESP) and ARC EM Subsystems (DFSS, SCSS, DSS) are also supported.

The EM Software Development Platform board includes the following features:

  • Support for selected ARC EM and ARC EM Subsystem configurations
  • Drag-and-drop configuration of FPGA device through USB
  • Audio PLL capable of generating the most common audio reference clocks
  • Analog audio input and output
  • MEMs digital microphone stereo input
  • 16MB Quad-SPI flash memory supporting execute-in-place (XiP)
  • 16MB Pseudo-Static RAM
  • Bluetooth 4.0, Wi-Fi a,b,g,n and 802.15.4 (e.g ZigBee) wireless connectivity
  • On board 9-axis motion sensors
  • Expansion connectors
    • 1x Arduino UNO revision 3, over two connectors
    • 3x PMOD connector (2x6 header)
    • 1x MikroBUS
    • 1x generic pin header
  • Micro-SD card interface for user data
  • Console output via a micro USB® connector
  • Multiple debug ports
    • Micro-USB (Digilent® Adept Xilinx® programming)
    • Cortex 10-pin Debug Interface (adapter to Ashling® Opella-XD for ARC debug)
    • Mictor 38 pin (Ashling Ultra-XD)
  • Buttons, LEDs and switches

The EM Software Development Platform contains the following components:

  • FPGA
    • Xilinx Kintex-7 XC7325T-2
  • Memory
    • PSRAM (16 MB)
    • SPI Flash (16 MB quad-mode XiP)
    • Configuration memory (16 MB SPI flash)
  • Interfaces
    • Audio line in/out
    • USB Data port (JTAG/UART/access to configuration memory)
    • Micro-SD Card
    • Wi-Fi/BT/Zigbee module
    • ADC (eight channels)
    • Motion Sensor
    • Digital MEMs microphone (2x)
    • RTT Nexus, JTAG
  • Extensions
    • Arduino Interface headers (UNO R3 compatible)
    • mikroBUS headers
    • Pmod Interfaces (3x)
    • Generic Pin Header (52 pins)

FPGA

The FPGA on the EM Software Development Platform board is configured by storing an FPGA bitstream into the configuration memory of the EM Software Development Platform. Drag-and-drop feature enable users to copy an FPGA bitstream from the PC to the configuration memory and programmed into the FPGA.

Memory

Please refer to ARC_EM_SDP_User Guide for memory map and more details.

Interfaces

EM Software Development Platform board provides a variety set of peripherals for evaluate and development. There are many peripheral devices available, such as SPI, IIC, UART, GPIO. Upon these, the EM Software Development Platform offers multiple interfaces for audio, USB, micro-SD card, wireless, ADC, motion sensor, etc. External hardware modules can also be easily connected to the board though extension interfaces using Pmod Connectors, Arduino, mikro BUS.

|emsdp| Interfaces

Extensions

To bring your application context around the EM Software Development Platform, Pmod Connectors, Arduino, mikro BUS are supported. All the sets of connections are controlled by mux controller and can be switched by user. There are many peripheral devices available, such as SPI, IIC, UART, GPIO.

Usage

Setting Up

You can use either USB-JTAG or USB-UART interface to communicate with EM Software Development Platform board. Before the interfaces are used, you must install the required drivers on the computer where you intend to run the MetaWare debugger or other serial debug consoles (such as PuTTY or other hyper-terminals).

The driver is a part of the Digilent Adept tool. You can download the most recent version of the Digilent Adept tool from the Digilent website at http://www.digilentinc.com, and follow the installation instructions provided by Digilent.

You may also skip this step if you are using default settings.

Note

Learn more about programming FPGA device in ARC_EM_SDP_UserGuide

Package Preparation

This section talks about how to add new EM Software Development Platform cores into embARC OSP. If you are using default cores of EM Software Development Platform: em6_scss, em7d_esp_dfss, and em11d_dfss, then you may skip this section.

  1. You may download the package from our website. Suppose you want to add a new package called em9d_dfss, your package name would be emsdp_em9d_dfss.zip.
  2. Download the package and unzip it, you will find four folders: /doc, /fpga, /include, /tool_config. Now create a new folder according to your board revision and package name. In this case em9d_dfss is added to rev2 board, so you should set your directory as this:/board/emsdp/rev2/configs/em9d_dfss
  3. Copy the content of unzipped folder to /board/emsdp/rev2/configs/em9d_dfss. It would be like:
em9d_dfss
├─doc
├─fpga
├─include
└─tool_config
  1. You are done importing a new package, flash the bit file into board and build with it to make sure everything is working.

Run Your First Program

By setting up the board, you are now ready to run your first program on EM Software Development Platform. please refer to example example_blinky for further details. Build and download the example using either MetaWare or GNU. The command is shown below:

$ cd <embarc_root>/example/baremetal/blinky
$ gmake BOARD=emsdp BD_VER=rev2 CORE=em11d_dfss TOOLCHAIN=mw run

Note

Notice that for CORE option there are multiple core choices, please check <embarc_root>/board/emsdp/rev2 folder for available cores.

Development Guide

Please refer to Developer Guides. You may need to specify peripheral driver (<embarc_root>/device/peripheral) for your own code.

For example, if Wi-Fi rs9113 driver is needed, add this line in makefile:

EXT_DEV_LIST += wifi/rs9113

Another example is to add both wifi driver and audio codec driver for an online audio application:

EXT_DEV_LIST += wifi/rs9113 audio/max9880a

Contributing

EM Software Development Platform is welcome to your contribution. If you found any bug or issue or have suggestions, please feel free to raise issues or pull requests at [embARC Open Software Platform](https://github.com/foss-for-synopsys-dwc-arc-processors/embarc_osp) repository on GitHub.