13
©2015 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. Date: 11 March 2016 Revision: 1.0 Nios II Simple Socket Server on CVE FPGA Development Kit

Nios II Simple Socket Server on CVE FPGA Development Kit · 2. hange the P’s LAN to use static IP for TP/IPv4, such as t he example shown below: Figure 7: Change the PC’s LAN

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Nios II Simple Socket Server on CVE FPGA Development Kit · 2. hange the P’s LAN to use static IP for TP/IPv4, such as t he example shown below: Figure 7: Change the PC’s LAN

©2015 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services.

Date: 11 March 2016

Revision: 1.0

Nios II Simple Socket Server on CVE FPGA

Development Kit

Page 2: Nios II Simple Socket Server on CVE FPGA Development Kit · 2. hange the P’s LAN to use static IP for TP/IPv4, such as t he example shown below: Figure 7: Change the PC’s LAN

2

Table of Contents

1. Introduction .......................................................................................................................................... 3

2. Required Hardware and Software ........................................................................................................ 3

3. Block Diagram ....................................................................................................................................... 3

4. Demo Setup........................................................................................................................................... 4

4.1 Programming the Simple Socket Server Design ............................................................................ 4

4.2 Executing the Simple Socket Server program ............................................................................... 7

4.3 Running Simple MicroC/OS-II task to control LED ........................................................................ 9

5. Modifying the Simple Socket Server Hardware Design ...................................................................... 11

6. Modifying the Simple Socket Server Software Design ........................................................................ 12

7. Revision History .................................................................................................................................. 13

Page 3: Nios II Simple Socket Server on CVE FPGA Development Kit · 2. hange the P’s LAN to use static IP for TP/IPv4, such as t he example shown below: Figure 7: Change the PC’s LAN

3

1. Introduction

This design example shows a socket server using the NicheStack TCP/IP stack-Nios® II Edition on

MicroC/OS-II on a Cyclone V E development board. The server implements simple commands to control

board LEDs through a separate MicroC/OS-II task.

2. Required Hardware and Software

Altera Cyclone V E Development Kit Rev B

USB Type-B cable for programming the device

Ethernet Cable

PC running Windows 7 64-bit or Linux

ACDS version 15.1

3. Block Diagram

Figure 1 shows the various IP blocks within the Simple Socket Server design example. Details of the

connection between each IP blocks can be found in the included Qsys files for this design example.

Page 4: Nios II Simple Socket Server on CVE FPGA Development Kit · 2. hange the P’s LAN to use static IP for TP/IPv4, such as t he example shown below: Figure 7: Change the PC’s LAN

4

Figure 1: Major IP blocks within the Simple Socket Server Design Example

4. Demo Setup

First, ensure that the jumpers and switches on the Altera Cyclone V E development board are set to its

default settings. For details and documentation on the Altera Cyclone V E development board, refer to

this link.

4.1 Programming the Simple Socket Server Design

1. Connect the USB Blaster cable from the PC to the on-board USB Blaster II connector, as shown

below:

Page 5: Nios II Simple Socket Server on CVE FPGA Development Kit · 2. hange the P’s LAN to use static IP for TP/IPv4, such as t he example shown below: Figure 7: Change the PC’s LAN

5

Figure 2: Location of the on-board USB Blaster II connector

2. Open the Quartus programmer and select the on-board USB-Blaster II hardware. Press “Auto

Detect” and select “5CEFA7” when prompted by the programmer. You should then see two

devices in the scan chain

Figure 3: Devices in the Scan chain

Page 6: Nios II Simple Socket Server on CVE FPGA Development Kit · 2. hange the P’s LAN to use static IP for TP/IPv4, such as t he example shown below: Figure 7: Change the PC’s LAN

6

3. Click on the first device 5CEFA7. The, click “Change File” and select the sof file

“5cefa7_ethernet_std.sof” from the folder <project directory\master_image and tick

“Program/Configure”.

Figure 4: Programming the device with the provided .sof file

4. Press “Start” and wait until the device is successfully programmed

Page 7: Nios II Simple Socket Server on CVE FPGA Development Kit · 2. hange the P’s LAN to use static IP for TP/IPv4, such as t he example shown below: Figure 7: Change the PC’s LAN

7

Figure 5: Successful programming of the device

4.2 Executing the Simple Socket Server program

1. Connect the Ethernet cable from the PC’s RJ45 port to the RJ45 connector on the Altera Cyclone

V E development board as shown below:

Page 8: Nios II Simple Socket Server on CVE FPGA Development Kit · 2. hange the P’s LAN to use static IP for TP/IPv4, such as t he example shown below: Figure 7: Change the PC’s LAN

8

Figure 6: Location of the Ethernet port on Altera Cyclone V E development board

2. Change the PC’s LAN to use static IP for TCP/IPv4, such as the example shown below:

Figure 7: Change the PC’s LAN adapter setting to use static IP

3. Launch the Nios II Command Shell. For a PC running Microsoft Windows, this can be done via

Start All Programs Altera Nios II EDS <version> Nios II <version> Command Shell. For

Linux, user can type the following command:

4. Enter the following command:

nios2-download –g <project directory>/master_image/5cefa7_simple_socket_server.elf && nios2-terminal

and press enter.

5. You should begin to see the program downloading to the Nios processor.

Note: If you receive the following message below:

Figure 8: Potential message requesting for 9-digit serial number

Enter a potentially correct MAC address (for example, 255255248 or 123212341). This

happens because some boards do not have a MAC address dedicated in the CFI Flash.

Page 9: Nios II Simple Socket Server on CVE FPGA Development Kit · 2. hange the P’s LAN to use static IP for TP/IPv4, such as t he example shown below: Figure 7: Change the PC’s LAN

9

6. In this design example, the source codes (included in the <project directory>/software/src

folder) have been modified to default to IP address 192.168.1.234 when no DHCP server is

detected – which is the case since the board is connected directly to the PC. Note the port

number in the Nios II Command Shell:

Figure 9: Note the IP address and port number used in this design example

4.3 Running Simple MicroC/OS-II task to control LED

1. Launch a telnet client on your PC, such as PuTTY or Windows Telnet Client. Open a telnet session

to IP address 192.168.1.234 and port 30. You should be able to see the following display on the

telnet client display:

Figure 10: Telnet client successfully connected to the development board

2. This template is based on a 8-LED design, but since the Cyclone V E development board only has

4 LEDs, you will only see the LED blinking take effect will you enter number 0-3. When you did

that, the Nios II command shell will display the confirmation message that the value for

LED_PIO_BASE register has been modified:

Page 10: Nios II Simple Socket Server on CVE FPGA Development Kit · 2. hange the P’s LAN to use static IP for TP/IPv4, such as t he example shown below: Figure 7: Change the PC’s LAN

10

Figure 11: The Nios II Command Shell displayed confirmation message that the request to

toggle LED has been received

3. The location of LED 0-3 is shown below:

Figure 12: Location of LED 0-3 on Altera Cyclone V E development board

4. Press “Q” on the telnet client to close the telnet session. Press “Ctrl - C” on the Nios II Command

Shell to terminate the session.

Page 11: Nios II Simple Socket Server on CVE FPGA Development Kit · 2. hange the P’s LAN to use static IP for TP/IPv4, such as t he example shown below: Figure 7: Change the PC’s LAN

11

5. Modifying the Simple Socket Server Hardware Design

Follow the steps on the Design Store web page to install the design template. After installation is

successful, there are three .qsys system files in the project directory:

eth_std_main_system.qsys

peripheral_system.qsys

ethernet_system.qsys

“peripheral_system.qsys” and “ethernet_system.qsys” are Qsys subsystems within the top level system

“eth_std_main_system.qsys” as shown previously in Figure 1. From here, you can use the Qsys tool

within Quartus II to add/remove and modify individual IP components within the design.

After you’ve finished updating the Qsys systems, remember to click “Generate HDL…” to regenerate the

necessary files required by Quartus during compilation. For more information on using Qsys tool, refer

to online tutorial located in this link.

As we will be running the example on hardware, it is recommended to generate the Qsys system

without selecting the simulation model:

Page 12: Nios II Simple Socket Server on CVE FPGA Development Kit · 2. hange the P’s LAN to use static IP for TP/IPv4, such as t he example shown below: Figure 7: Change the PC’s LAN

12

Figure 13: Select simulation model as “None”

The top level connection for each exported Qsys port is assigned in the file “top.v”. If you add or remove

any IPs in the aforementioned Qsys systems, you need to ensure that this file is updated to reflect the

additional/removal of the exported Qsys ports.

6. Modifying the Simple Socket Server Software Design

The Simple Socket Server software used in this design example is based on the existing Simple Socket

Server template within the Nios Software Build Tools. For more information regarding this template,

refer to page 1-16 of the document “Using the NicheStack TCP/IP Stack - Nios II Edition” located at this

link.

Note: If you are unfamiliar with the GUI of the Nios II – Eclipse tool, you can refer to the

document here for assistance.

Page 13: Nios II Simple Socket Server on CVE FPGA Development Kit · 2. hange the P’s LAN to use static IP for TP/IPv4, such as t he example shown below: Figure 7: Change the PC’s LAN

13

After you generate the Simple Socket Server template from Nios II – Eclipse, you can replace the default

.c and .h files with the ones included in the <project directory>/software/src folder. These modified files

are updated to reflect the Qsys system names, as well as assign static IP address. For example, you can

change the IP address assignment in the file “simple_socket_server.h” as shown below:

Figure 14: Static IP address can be set in the file “simple_socket_server.h”

Remember to save and recompile the project once changes are done.

7. Revision History

Revision Description

1.0 Initial Revision