Chapter 3 Using the DE0-Nano-SoC Board ..........12 3.1 Settings of FPGA Configuration Mode ..................12 3.2 Configuration of Cyclone V SoC FPGA on DE0-Nano-SoC ........... 14 3.3 Board Status Elements ......................19 3.4 Board Reset Elements ......................20 3.5 Clock Circuitry ......................... 21 3.6 Peripherals Connected to the FPGA ..................
Page 3
Chapter 4 DE0-Nano-SoC System Builder ........... 42 4.1 Introduction ..........................42 4.2 Design Flow ..........................42 4.3 Using DE0-Nano-SoC System Builder ..................43 Chapter 5 Examples For FPGA ..............49 5.1 DE0-Nano-SoC Factory Configuration ..................49 5.2 ADC Reading ........................... 50 Chapter 6 Examples for HPS SoC ..............
Page 4
9.1 What's different between the DE0-Nano-SoC kit and the Atlas-SoC kit?........ 78 Chapter 10 Appendix B ..................79 10.1 Revision History ........................79 10.2 Copyright Statement ....................... 79 DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
In addition, DE0-Nano-SoC Kit is also called Atlas-SoC Kit in Altera's Rockboard.org Linux community (http://www.rocketboards.org/atlas-soc). The hardware of DE0-Nano-SoC Kit and Atlas-SoC Kit are exactly the same, however, this community provides different development resource from DE0-Nano-SoC Kit. The details of kit contents can be found in the Appendix chapter. DE0-Nano-SoC www.terasic.com...
5V/2A DC power adapter 4GB microSD Card (Installed) The DE0-Nano-SoC System CD contains all the documents and supporting materials associated with DE0-Nano-SoC, including the user manual, system builder, reference designs, and device datasheets. Users can download this system CD from the link: http://cd-de0-nano-soc.terasic.com.
Here are the addresses where you can get help if you encounter any problems: Altera Corporation 101 Innovation Drive San Jose, California, 95134 USA Email: university@altera.com Terasic Technologies 9F., No.176, Sec.2, Gongdao 5th Rd, East Dist, Hsinchu City, 30070. Taiwan Email: support@terasic.com Tel.: +886-3-575-0880 Website: de0-nano-soc.terasic.com...
Figure 2-1 Figure 2-2 shows a photograph of the board. It depicts the layout of the board and indicates the location of the connectors and key components. Figure 2-1 DE0-Nano-SoC development board (top view) DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
Page 9
Figure 2-2 DE0-Nano-SoC development board (bottom view) The DE0-Nano-SoC board has many features that allow users to implement a wide range of designed circuits, from simple circuits to various multimedia projects. The following hardware is provided on the board: FPGA ...
All the connections are established through the Cyclone V SoC FPGA device to provide maximum flexibility for users. Users can configure the FPGA to implement any system design. DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
Page 11
Figure 2-3 Block diagram of DE0-Nano-SoC Detailed information about Figure 2-3 are listed below. Cyclone V SoC 5CSEMA4U23C6N Device Dual-core ARM Cortex-A9 (HPS) 40K programmable logic elements 2,460 Kbits embedded memory 5 fractional PLLs 2 hard memory controllers ...
Page 12
3 user Keys (FPGA x2, HPS x1) 4 user switches (FPGA x4) 9 user LEDs (FPGA x8, HPS x 1) 2 HPS reset buttons (HPS_RESET_n and HPS_WARM_RST_n) G-Sensor on HPS 5V DC input DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
This chapter provides an instruction to use the board and describes the peripherals. When the DE0-Nano-SoC board is powered on, the FPGA can be configured from EPCS or HPS. The MSEL[4:0] pins are used to select the configuration scheme. It is implemented as a 6-pin DIP...
Page 14
If developers using the "Linux Console with frame buffer" or "Linux LXDE Desktop" SD Card image, the MSEL[4:0] needs to be set to “00000” before the board is powered on. Table 3-2 MSEL Pin Settings for FPGA Configure of DE0-Nano-SoC SW10.1 SW10.2 SW10.3...
The information is retained within EPCS even if the DE0-Nano-SoC board is turned off. When the board is powered on, the configuration data in the EPCS device is automatically loaded into the Cyclone V SoC FPGA.
Page 16
Open the Quartus II programmer and click “Auto Detect”, as circled in Figure 3-3 Figure 3-3 Detect FPGA device in JTAG mode Select detected device associated with the board, as circled in Figure 3-4. Figure 3-4 Select 5CSEMA4 device DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
Page 17
Figure 3-5 FPGA and HPS detected in Quartus programmer Right click on the FPGA device and open the .sof file to be programmed, as highlighted in Figure 3-6. Figure 3-6 Open the .sof file to be programmed into the FPGA device DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
Page 18
Figure 3-7 Select the .sof file to be programmed into the FPGA device Click “Program/Configure” check box and then click “Start” button to download the .sof file into the FPGA device, as shown in Figure 3-8. Figure 3-8 Program .sof file into the FPGA device DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
Page 19
Configure the FPGA in AS Mode The DE0-Nano-SoC board uses a serial configuration device (EPCS) to store configuration data for the Cyclone V SoC FPGA. This configuration data is automatically loaded from the serial configuration device chip into the FPGA when the board is powered up.
In addition to the 9 LEDs that FPGA/HPS device can control, there are 6 indicators which can indicate the board status (See Figure 3-10), please refer the details in Table 3-3 Figure 3-10 LED Indicators on DE0-Nano-SoC Table 3-3 LED Indicators Board Reference LED Name Description LED9 3.3-V Power...
There are two HPS reset buttons on DE0-Nano-SoC, HPS (cold) reset and HPS warm reset, as shown in Figure 3-11. Table 3-4 describes the purpose of these two HPS reset buttons. Figure 3-12 is the reset tree for DE0-Nano-SoC. Figure 3-11 HPS cold reset and warm reset buttons on DE0-Nano-SoC...
Figure 3-12 HPS reset tree on DE0-Nano-SoC board Figure 3-13 shows the default frequency of all external clocks to the Cyclone V SoC FPGA. A clock generator is used to distribute clock signals with low jitter. The two 50MHz clock signals connected to the FPGA are used as clock sources for user logic.
Figure 3-14 Connections between the push-buttons and the Cyclone V SoC FPGA Pushbutton depressed Pushbutton released Before Debouncing Schmitt Trigger Debounced Figure 3-15 Switch debouncing There are four slide switches connected to the FPGA, as shown in Figure 3-16. These switches are DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
Page 25
LED on or off, respectively. Figure 3-17 shows the connections between LEDs and Cyclone V SoC FPGA. Table 3-6, Table 3-7 Table 3-8 list the pin assignment of user push-buttons, switches, and LEDs. DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
Page 26
LED [1] 3.3V LED[2] PIN_V16 LED [2] 3.3V LED[3] PIN_V15 LED [3] 3.3V LED[4] PIN_AF26 LED [4] 3.3V LED[5] PIN_AE26 LED [5] 3.3V LED[6] PIN_Y16 LED [6] 3.3V LED[7] PIN_AA23 LED [7] 3.3V DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
The 16 GPIO pins are provided to the Arduino Header for digital I/O. Table 3-11 lists the all the pin assignments of the Arduino Uno connector (digital), signal names relative to the Cyclone V SoC FPGA. DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
Page 31
Besides 16 pins for digital GPIO, there are also 6 analog inputs on the Arduino Uno R3 Expansion Header (ADC_IN0 ~ ADC_IN5). Consequently, we use ADC LTC2308 from Linear Technology on the board for possible future analog-to-digital applications. We will introduce in the next section. DE0-Nano-SoC www.terasic.com User Manual...
FPGA, 2x5 header, Arduino Analog input, and the A/D converter. More information about the A/D converter chip is available in its datasheet. It can be found on manufacturer’s website or in the directory \Datasheet\ADC of DE0-Nano-SoC system CD. DE0-Nano-SoC www.terasic.com...
Page 33
FPGA Pin No. Description I/O Standard ADC_CONVST PIN_U9 Conversion Start 3.3V ADC_SCK PIN_V10 Serial Data Clock 3.3V ADC_SDI PIN_AC4 Serial Data Input (FPGA to ADC) 3.3V ADC_SDO PIN_AD4 Serial Data Out (ADC to FPGA) 3.3V DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
The pin assignment associated to Gigabit Ethernet interface is listed in Table 3-14. More information about the KSZ9031RN PHY chip and its datasheet, as well as the application notes, which are available on the manufacturer’s website. DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
Page 35
Ethernet PHY (KSZ9031RN). The LED control signals are connected to the LEDs on the RJ45 connector. The state and definition of LEDG and LEDY are listed in Table 3-15. For instance, the connection from board to Gigabit Ethernet is established once the LEDG lights on. DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
FT232R chip to the host with an USB Mini-B connector. More information website, about chip available manufacturer’s directory \Datasheets\UART_TO_USB of DE0-Nano-SoC system CD. Figure 3-23 shows the connections between the HPS, FT232R chip, and the USB Mini-B connector. Table 3-16 lists the pin assignment of UART interface connected to the HPS.
HPS DDR3 Chip Select SSTL-15 Class I HPS_DDR3_DM[0] PIN_G28 HPS DDR3 Data Mask[0] SSTL-15 Class I HPS_DDR3_DM[1] PIN_P28 HPS DDR3 Data Mask[1] SSTL-15 Class I HPS_DDR3_DM[2] PIN_W28 HPS DDR3 Data Mask[2] SSTL-15 Class I DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
Page 38
HPS DDR3 Data Strobe p[3] Differential 1.5-V SSTL Class I HPS_DDR3_ODT PIN_D28 HPS DDR3 On-die Termination SSTL-15 Class I HPS_DDR3_RAS_n PIN_A25 DDR3 Row Address Strobe SSTL-15 Class I HPS_DDR3_RESET_n PIN_V28 HPS DDR3 Reset SSTL-15 Class I DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
HPS USB_DATA[7] 3.3V HPS_USB_DIR PIN_E5 Direction of the Data Bus 3.3V HPS_USB_NXT PIN_D5 Throttle the Data 3.3V HPS_USB_RESET PIN_H12 HPS USB PHY Reset 3.3V HPS_USB_STP PIN_C5 Stop Data Stream on the Bus 3.3V DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
I2C interface. The I2C address of G-sensor is 0xA6/0xA7. More information about this chip can be found in its datasheet, which is available on manufacturer’s website or in the directory \Datasheet\G-Sensor folder of DE0-Nano-SoC system CD. Figure 3-26 shows the connections between the HPS and G-sensor.
This chapter describes how users can create a custom design project with the tool named DE0-Nano-SoC System Builder. The DE0-Nano-SoC System Builder is a Windows-based utility. It is designed to help users create a Quartus II project for DE0-Nano-SoC within minutes. The generated Quartus II project files include: ...
Figure 4-1. The DE0-Nano-SoC System Builder will generate two major files, a top-level design file (.v) and a Quartus II setting file (.qsf) after users launch the DE0-Nano-SoC System Builder and create a new project according to their design requirements.
Page 45
Install and Launch the DE0-Nano-SoC System Builder The DE0-Nano-SoC System Builder is located in the directory: “Tools\SystemBuilder” of the DE0-Nano-SoC System CD. Users can copy the entire folder to a host computer without installing the utility. A window will pop up, as shown in...
Page 46
Figure 4-4. Each component onboard is listed and users can enable or disable one or more components at will. If a component is enabled, the DE0-Nano-SoC System Builder will automatically generate its associated pin assignment, including the pin name, pin location, pin direction, and I/O standard.
Page 47
Figure 4-4 System configuration group GPIO Expansion If users connect any Terasic GPIO-based daughter card to the GPIO connector(s) on DE0-Nano-SoC, the DE0-Nano-SoC System Builder can generate a project that include the corresponding module, as shown in Figure 4-5. It will also generate the associated pin assignment automatically, including pin name, pin location, pin direction, and I/O standard.
Page 48
The “Prefix Name” is an optional feature that denote the pin name of the daughter card assigned in your design. Users may leave this field blank. Project Setting Management The DE0-Nano-SoC System Builder also provides the option to load a setting or save users’ current board configuration in .cfg file, as shown in Figure 4-6.
Page 49
Figure 4-6 Project Settings Project Generation When users press the Generate button, the DE0-Nano-SoC System Builder will generate the corresponding Quartus II files and documents, as listed in Table 4-1: Table 4-1 Files generated by the DE0-Nano-SoC System Builder...
Project directory: DE0_NANO_SOC_Default Bitstream used: DE0_NANO_SOC_Default.sof or DE0_NANO_SOC_Default.jic Power on the DE0-Nano-SoC board with the USB cable connected to the USB-Blaster II port. If necessary (that is, if the default factory configuration is not currently stored in the EPCS device), download the bit stream to the board via JTAG interface.
12-bit voltage measurement is displayed on the NIOS II console. Figure 5-2 shows the block diagram of this demonstration. If the input voltage is -2.0V ~ 2.0V, a pre-scale circuit can be used to adjust it to 0 ~ 4V. DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
Page 52
Nios II console. Figure 5-3 Pin distribution of the 2x5 Header for the ADC DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
Page 53
System Requirements The following items are required for this demonstration. DE0-Nano-SoC board x1 Trimmer Potentiometer x1 Wire Strip x3 Demonstration File Locations Hardware project directory: DE0_NANO_SOC_ADC Bitstream used: DE0_NANO_SOC_ADC.sof Software project directory: DE0_NANO_SOC_ADC \software ...
These examples demonstrate major features of peripherals connected to HPS interface on DE0-Nano-SoC board such as users LED/KEY, I2C interfaced G-sensor. All the associated files can be found in the directory Demonstrations/SOC of the DE0-Nano-SoC System CD. Please refer to Chapter 5 "Running Linux on the DE0-Nano-SoC board"...
Page 55
A Makefile is required to compile a project. The Makefile used for this demo is: Compile Please launch Altera SoC EDS Command Shell to compile a project by executing C:\altera\14.0\embedded\Embedded_Command_Shell.bat The "cd" command can change the current directory to where the Hello World project is located. DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
Execute command: ./my_first_hps Demonstration Setup Connect a USB cable to the USB-to-UART connector (J4) on the DE0-Nano-SoC board and the host PC. Copy the demo file "my_first_hps" into a microSD card under the "/home/root" folder in Linux.
Page 57
GPIO Interface. GPIO[28..0] is controlled by the GPIO0 controller and GPIO[57..29] is controlled by the GPIO1 controller. GPIO[70..58] and input-only GPI[13..0] are controlled by the GPIO2 controller. Figure 6-2 Block diagram of GPIO Interface GPIO Register Block DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
Page 58
The registers of the GPIO1 controller are mapped to the base address 0xFF708000 with 4KB size, and the registers of the GPIO2 controller are mapped to the base address 0xFF70A000 with 4KB size, as shown in Figure 6-3. DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
Page 59
alt_clrbits_word: set specified bit value to zero for a specified register The program must include the following header files to use the above API to access the registers of GPIO controller. #include <stdio.h> #include <unistd.h> #include <fcntl.h> DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
Page 60
LED and KEY Control Figure 6-4 shows the HPS users LED and KEY pin assignment for the DE0-NANO-SoC board. The LED is connected to HPS_GPIO53 and the KEY is connected to HPS_GPIO54. They are controlled by the GPIO1 controller, which also controls HPS_GPIO29 ~ HPS_GPIO57.
Page 61
Execute command: ./hps_gpio Demonstration Setup Connect a USB cable to the USB-to-UART connector (J4) on the DE0-Nano-SoC board and the host PC. Copy the executable file "hps_gpio" into the microSD card under the "/home/root" folder in Linux.
The G-sensor on the DE0-Nano-SoC board is connected to the I2C0 controller in HPS. The G-Sensor I2C 7-bit device address is 0x53. The system I2C bus driver is used to access the register files in the G-sensor. The G-sensor interrupt signal is connected to the PIO controller.
Page 63
The step 4 above can also be changed to the following to read multiple byte values. read(file, &szData8, sizeof(szData8)); // where szData is an array of bytes The step 4 above can be changed to the following to write multiple byte values. DE0-Nano-SoC www.terasic.com User Manual...
Page 64
Execute command: ./gsensor [loop count] Demonstration Setup Connect a USB cable to the USB-to-UART connector (J4) on the DE0-Nano-SoC board and the host PC. Copy the executable file "gsensor" into the microSD card under the "/home/root" folder in Linux.
Page 65
Launch PuTTY to establish connection to the UART port of DE0-Nano-SoC board. Type "root" to login Yocto Linux. Execute "./gsensor" in the UART terminal of PuTTY to start the G-sensor polling. The demo program will show the X, Y, and Z values in the PuTTY, as shown in Figure 6-8.
The HPS uses Lightweight HPS-to-FPGA AXI Bridge to communicate with FPGA. The hardware in FPGA part is built into Qsys. The data transferred through Lightweight HPS-to-FPGA Bridge is converted into Avalon-MM DE0-Nano-SoC www.terasic.com User Manual...
Page 67
IPs. For instance, the base address of the PIO slave IP in this system is 0x0001_0040, the direction control register offset is 0x01, and the data register offset is 0x00. The following statement is used to retrieve the base address of PIO slave IP. DE0-Nano-SoC www.terasic.com User Manual...
Page 68
HPS_CONTROL_FPGA_LED.rbf " into the microSD card under the "/home/root" folder in Linux. Insert the booting microSD card into the DE0-Nano-SoC board. Please refer to the chapter 5 "Running Linux on the DE0-Nano-SoC board" on DE0-Nano-SoC _Getting_Started_Guide.pdf on how to build a booting microSD card image.
Page 69
The message shown in Figure 7-3, will be displayed in the terminal. The LED[7:0] will be flashing. Figure 7-3 Running result in the terminal of PuTTY Press "CTRL + C" to terminate the program. DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
The FPGA should be set to AS x1 mode i.e. MSEL[4..0] = “10010” to use the Flash as a FPGA configuration device, as shown in Figure 8-1. Figure 8-1 DIP switch (SW10) setting of Active Serial (AS) mode DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
6. Browse to the target directory from the File name field and specify the name of output file. 7. Click on the SOF data in the section of Input files to convert, as shown in Figure 8-3. DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
Page 72
9. Select the .sof to be converted to a .jic file from the Open File dialog. 10. Click Open. 11. Click on the Flash Loader and click Add Device, as shown in Figure 8-4. 12. Click OK and the Select Devices page will appear. DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
Page 73
13. Select the targeted FPGA to be programed into the Flash Loader, as shown in Figure 8-5. 14. Click OK and the Convert Programming Files page will appear, as shown in Figure 8-6. 15. Click Generate. DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
Page 74
Figure 8-5 “Select Devices” page Figure 8-6 “Convert Programming Files” page after selecting the device DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
5. Program the EPCS device by clicking the corresponding Program/Configure box. A factory default SFL image will be loaded, as shown in Figure 8-8. 6. Click Start to program the EPCS device. Figure 8-7 Two devices are detected in the Quartus II Programmer DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
Programming File page will appear. Select the correct .jic file. 5. Erase the EPCS device by clicking the corresponding Erase box. A factory default SFL image will be loaded, as shown in Figure 8-9. DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
Before programming the EPCS via nios-2-flash-programmer, users must add an EPCS patch file nios-flash-override.txt into the Nios II EDS folder. The patch file is available in the folder Demonstation\EPCS_Patch of DE0-Nano-SoC System CD. Please copy this file to the folder [QuartusInstalledFolder]\nios2eds\bin (e.g. C:\altera\14.0\nios2eds\bin)
There is a known problem in Quartus II software that the Quartus Programmer must be used to program the EPCS device on DE0-Nano-SoC board. Please refer to Altera’s website here with details step by step. DE0-Nano-SoC www.terasic.com User Manual August 31, 2017...
Chapter 9 Appendix A The hardware is the same for the DE0-Nano-SoC kit and the Atlas-SoC kit. The only difference is the getting-started process for the two kits. Users can freely use the DE0-Nano-SoC kit resources on the Atlas-SoC kit and vice versa.For more details on the Atlas-SoC kit, please visit: http://www.rocketboards.org/atlas-soc...
Need help?
Do you have a question about the DE0-Nano-SoC and is the answer not in the manual?
Questions and answers