126
My First Nios II for Altera DE2- 115 Board 數數數數數數 TA: 數數數 Author: Trumen

My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

Embed Size (px)

Citation preview

Page 1: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

My First Nios II for Altera DE2-115

Board數位電路實驗TA: 吳柏辰

Author: Trumen

Page 2: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

2

Outline

• Hardware Design

• NIOS II IDE Build Flow

• Programming the CFI Flash

Page 3: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

3

Hardware Design

Page 4: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

4

Introduction

• This slides provides comprehensive information that will help you understand how to create a FPGA based SOPC system implementing on your FPGA development board and run software upon it.

Page 5: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

5

Required Features (1/2)

• The Nios II processor core is a soft-core central processing unit (CPU) that you could program onto an Altera field programmable gate array (FPGA).

• This chapter illustrates you to the basic flow covering hardware creation and software building.

Page 6: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

6

Required Features (2/2)

• The example NIOS II standard hardware system provides the following necessary components:

• Nios II processor core, that’s where the software will be executed.

• On-chip memory to store and run the software.

• JTAG link for communication between the host computer and target.

• Hardware (typically using a USB-Blaster cable).

• LED peripheral I/O (PIO), be used as indicators.

Page 7: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

7

Creation of Hardware Design

1

2

3

Page 8: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

8

1

2

3

same as (top-level) file name

Page 9: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

9

1

Page 10: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

10

1

2for DE2-115

3

Page 11: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

11

1

2

Page 12: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

12

1

2

3 4

Page 13: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

13

1

2

Page 14: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

14

1(double-click)

2

Page 15: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

15

1

2

Page 16: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

16

1

2(double-click)

3

Page 17: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

17

1

2

Page 18: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

18

12(double-click)

3

4

Page 19: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

19

1

2

Page 20: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

20

1

2(double-click)

3

4

5

Page 21: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

21

1(double-click)

2

Page 22: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

22

1

2

Page 23: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

23

1

2(double-click)

3

Page 24: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

24

1

2

Page 25: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

25

1

Page 26: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

26

1

Page 27: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

27

1

2

Page 28: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

28

1

Page 29: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

29

Page 30: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

30

1

2

3

4

5

Page 31: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

31

1

2

3

4

Page 32: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

32

1

Page 33: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

33

module NiosII ( clk, rst_n, led,);input clk, rst_n;output [7:0] led;DE2_115_QSYS DE2_115_QSYS_inst ( .clk_clk(clk), .reset_reset_n(rst_n), .led_export(led),);endmodule

Page 34: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

34

1

2 3

Page 35: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

35

1

2

3

Page 36: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

36

12

3

4

Page 37: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

37

1

2

Page 38: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

38

Page 39: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

39

1

2

34

Page 40: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

40

1

23

Page 41: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

41

1

2

Page 42: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

42

1

2

Page 43: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

43

1

2

Page 44: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

44

12

Page 45: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

45

create_clock -period 20 [get_ports clk]derive_clock_uncertaintyset_input_delay 0 -clock clk [all_inputs]set_output_delay 0 -clock clk [all_outputs]

Page 46: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

46

1

2

46

34

5

Page 47: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

47

1

Page 48: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

48

1

Page 49: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

49

1

Page 50: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

50

When configuration is complete, the FPGA is configured with the Nios II system, but it does not yet have a C program in memory to execute.

Page 51: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

51

NIOS II IDE Build Flow

This Chapter covers build flow of Nios II C coded software program.

Page 52: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

52

Introduction

• The Nios II IDE build flow is an easy-to-use graphical user interface (GUI) that automates build and makefile management.

• In this section you will use the Nios II IDE to compile a simple C language example software program to run on the Nios II standard system configured onto the FPGA on your development board.

Page 53: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

53

1

2

3

4

Page 54: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

54

1

2 3

Page 55: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

55

1

2

3

Page 56: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

56

1

Page 57: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

57

Page 58: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

58

Project Description

• When you create a new project, the NIOS II SBT for Eclipse creates two new projects in the NIOS II C/C++ Projects tab:• Hello_NiosII is your C/C++ application

project. This project contains the source and header files for your application.

• Hello_NiosII_bsp is a board support package that encapsulates the details of the Nios II system hardware.

Page 59: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

59

1(right-click)

2

Page 60: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

60

Page 61: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

61

2

3

1(right-click)

Page 62: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

62

Page 63: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

63

Edit and Re-Run the Program

1

2

Page 64: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

64

#include <stdio.h>#include "system.h"#include "altera_avalon_pio_regs.h"

int main(){ printf("Hello from Nios II!\n"); int count = 0; int delay; while(1) { IOWR_ALTERA_AVALON_PIO_DATA(LED_BASE, 1 << count); delay = 0; while(delay < 2000000 ) { delay++; } count = (count+1) % 8; } return 0;}

Page 65: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

65

1(right-click)

2

3

Page 66: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

66

Orient your development board so that you can observe LEDGs blinking

Page 67: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

67

Why the LEDs Blink? (1/2)

• The Nios II system description header file, system.h, contains the software definitions, name, locations, base addresses, and settings for all of the components in the Nios II hardware system.

• The system.h file is located in the in the Hello_NiosII_bsp directory.

Page 68: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

68

Page 69: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

69

Why the LED Blinks? (2/2)

• The Nios II processor controls the PIO ports (and thereby the LED) by reading and writing to the register map.

• For the PIO, there are four registers: data, direction, interrupt mask, and edge capture.

• To turn the LED on and off, the application writes to the PIO data register.

Page 70: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

70

Register Map File (1/2)

• The PIO core has an associated software file altera_avalon_pio_regs.h. • This file defines the core's register

map, providing symbolic constants to access the low-level hardware.

• This file is located in Project\software\Hello_NiosII_bsp\drivers\inc\.

Page 71: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

71

Register Map File (2/2)

• When you include this file, several useful functions that manipulate the PIO core registers are available to your program.

• In particular, the function IOWR_ALTERA_AVALON_PIO_DATA (base, data) can write to the PIO data register, turning the LED on and off.

• The PIO is just one of many SOPC peripherals that you can use in a system.

Page 72: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

72

Debugging the Application

• Before you can debug a project in the NIOS II SBT for Eclipse, you need to create a debug configuration that specifies how to run the software.

Page 73: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

73

1(double-click)

Page 74: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

74

1(right-click)

23

4

Page 75: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

75

1

2

Page 76: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

76

Debugging Tips

• When debugging a project in the Nios II SBT for Eclipse, you can pause, stop or single step the program, set breakpoints, examine variables, and perform many other common debugging tasks.

Page 77: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

77

Return to the Nios II C/C++ project perspective from the debug perspective.

1

2

Page 78: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

78

Configure BSP Editor

• In this section you will learn how to configure some advanced options about the target memory or other things.

• By performing the following steps, you can charge all the available settings.

Page 79: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

79

1(right-click)

2

3

Page 80: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

80

1

Page 81: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

81 1

Page 82: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

82

Note

• If you make changes to the system properties or the Qsys properties or your hardware, you must rebuild your project

• To rebuild, right-click the Hello_NiosII_BSP->Nios II->Generate BSP and then Rebuild Hello_NiosII Project.

Page 83: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

83

Programming the CFI Flash

Page 84: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

84

Introduction

• With the density of FPGAs increasing, the need for larger configuration storage is also increasing.

• If your system contains a common flash interface (CFI) flash memory, you can use your system for FPGA configuration storage as well.

Page 85: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

85

1

2

Page 86: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

86

1

2

Page 87: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

87

1(double-click)

Page 88: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

88

2

1

Page 89: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

89

1

2

Page 90: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

90

1

Page 91: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

91

1

Page 92: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

92

12

Page 93: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

93

2

1

Page 94: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

94

1

2

3

4

Page 95: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

95

1

2

Page 96: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

96

1(double-click)

2

3

Page 97: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

97

1

2

Page 98: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

98

1(double-click)

2

Page 99: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

99

1

2

Page 100: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

100

1

2(double-click)

Page 101: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

101

1

2

3

Page 102: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

102

1

Page 103: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

103

1(double-click)

Page 104: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

104

1

2

Page 105: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

105

1

2

Page 106: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

106

1

2

3

4

Page 107: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

107

1

Page 108: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

108

module NiosII ( clk, rst_n, led, // flash FL_ADDR, FL_CE_N, FL_DQ, FL_OE_N, FL_RESET_N, FL_RY, FL_WE_N, FL_WP_N );input clk, rst_n;output [7:0] led;// flashoutput [22:0] FL_ADDR;output FL_CE_N;inout [7:0] FL_DQ;output FL_OE_N;output FL_RESET_N;input FL_RY;output FL_WE_N;output FL_WP_N;DE2_115_QSYS DE2_115_QSYS_inst ( .clk_clk(clk), .reset_reset_n(rst_n), .led_export(led), // flash .tristate_bridge_flash_out_fs_addr(FL_ADDR), .tristate_bridge_flash_out_fl_read_n(FL_OE_N), .tristate_bridge_flash_out_fl_cs_n(FL_CE_N), .tristate_bridge_flash_out_fs_data(FL_DQ), .tristate_bridge_flash_out_fl_we_n(FL_WE_N),);// flash configassign FL_RESET_N = 1'b1;assign FL_WP_N = 1'b1;endmodule

Page 109: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

109

12

34

Page 110: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

110

1

2

Page 111: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

111

Page 112: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

112

1

Page 113: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

113

1

Page 114: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

114

1

Page 115: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

115

Page 116: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

116

1

2

3

4

Page 117: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

117

1(right-click)

2 3

Page 118: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

118

1(right-click)

2

Page 119: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

119

1(right-click)

2

3

Page 120: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

120

1

2

3

4

5

Page 121: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

121

2

3

4

5

1

Page 122: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

122

1

Page 123: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

123

1

Page 124: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

124

Finally...

• Restart power on the development board.

• Download NiosII.sof of your project “NiosII” to the board.

• You will see that the LEDs blink!

Page 125: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

The End.Any question?

Page 126: My First Nios II for Altera DE2-115 Board 數位電路實驗 TA: 吳柏辰 Author: Trumen

126

Reference

1. "My First Nios II for Altera DE2-115 Board" by Terasic Technologies Inc.

2. "My First Nios II for Altera DE2i-150 Board" by Terasic Technologies Inc.

3. "DE2-115 User Manual" by Terasic Technologies Inc.