You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/learning-paths/embedded-and-microcontrollers/advanced_soc/_index.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,6 +3,8 @@ title: Design an AXI-Lite peripheral to control GPIOs
3
3
4
4
minutes_to_complete: 60
5
5
6
+
description: Learn how to design and integrate a custom AXI-Lite peripheral with a Cortex-A9 processor on the Zybo Z7-10 board using Vivado, configuring GPIOs to control LEDs based on switch inputs.
7
+
6
8
who_is_this_for: This is an introductory topic for software developers interested in System on Chip Design.
Copy file name to clipboardExpand all lines: content/learning-paths/embedded-and-microcontrollers/advanced_soc/connecting_peripheral.md
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,23 +12,23 @@ Follow the steps outline below to connect the AXI4 peripheral you created in the
12
12
13
13
1. Right-click on the empty space again in the diagram and choose “Create Port...” (Ctrl+K). Create 2 ports with the following settings and names:
14
14
15
-

15
+

16
16
17
17
*Figure 3.1. Creating output port*
18
18
19
-

19
+

20
20
21
21
*Figure 3.2. Creating input port*
22
22
23
23
2. Wire the “sw[3:0]” input to the “sw[3:0]” port of the “axi_gpio_asoc_0” block and the same for the “led[3:0]” output to the equivalent port of the block as shown in the diagram below. This connects them to external ports of the ZYNQ chip:
24
24
25
-

25
+

26
26
27
27
*Figure 3.3. Vivado block diagram*
28
28
29
29
3. Two IP blocks will be generated automatically. The “Processor System Reset” IP is used to generate reset signals for different peripherals. The “AXI Interconnect” IP here is used to interconnect AXI4-Lite Subordinate and AXI Manager. Select the “Address Editor” tab next to “Diagram” and change the “64K” to “4K”. Save all your progress.

@@ -40,26 +40,26 @@ Follow the steps outline below to connect the AXI4 peripheral you created in the
40
40
41
41
5. Right-click the “Generate Bitstream” option in the “Flow Navigator” on the left and select “Bitstream settings”. Click the three dots next to “tcl.pre”:

44
44
45
45
*Figure 3.5. Changing bitstream settings*
46
46
47
47
6. Select the “New Script” option, click the three dots next to the empty box, choose the “pins.tcl” file you created earlier and click “Ok” on all windows.
48
48
Right-click the “Constraints” under the sources tab and select “Add sources”:
49
49
50
-

50
+

51
51
52
52
*Figure 3.6. Adding sources*
53
53
54
54
7. Select “Add or create constraints” and click “Next”. Select “Create File”, give any name to the file for example pin_constraints, and click “Finish”:
55
55
56
-

56
+

57
57
58
58
*Figure 3.7. Creating a constraints file*
59
59
60
60
8. Expand the “Constraints” folder within the “Sources” tab and double-click the file you just created to open it. Add the following constraints from [Digilent/Zybo-Z7-10-Pmod-VGA/blob/master/src/constraints/Zybo-Z7-Master.xdc](https://github.com/Digilent/Zybo-Z7-10-Pmod-VGA/blob/master/src/constraints/Zybo-Z7-Master.xdc), and save the file:
61
61
62
-

62
+

Copy file name to clipboardExpand all lines: content/learning-paths/embedded-and-microcontrollers/advanced_soc/creating_peripheral.md
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,19 +12,19 @@ The Xilinx Vivado tools provide a simplified way to create an AXI4 peripheral. Y
12
12
13
13
1. Start by clicking “Tools” -> “Create and Package New IP”. Click “Next” and choose the following option:
14
14
15
-

15
+

16
16
17
17
*Figure 2.1. Creating AXI4 peripheral*
18
18
19
19
2. Give the following name to the IP (you may keep the IP location path as provided by default):
20
20
21
-

21
+

22
22
23
23
*Figure 2.2. Adding peripheral details*
24
24
25
25
3. You need a Subordinate interface and four 32-bit registers for the switches and LEDs.
26
26
27
-

27
+

28
28
29
29
*Figure 2.3. Peripheral settings for Subordinate interface*
30
30
@@ -36,7 +36,7 @@ These are the basic template files generated for an AXI-Lite peripheral. You can
36
36
37
37
5. Double-click to open the top-level Verilog file called “AUP_advanced_SoC_v1_0.v”:

40
40
41
41
*Figure 2.4. Editing top-level Verilog file*
42
42
@@ -64,7 +64,7 @@ These are the basic template files generated for an AXI-Lite peripheral. You can
64
64
```
65
65
8. Save the changes in the file (Ctrl+S). Next, expand and open the other Verilog file (AUP_advanced_SoC_v1_0_S00_AXI.v) shown below:
66
66
67
-

67
+

68
68
69
69
*Figure 2.5. Edit the second Verilog file*
70
70
@@ -93,7 +93,7 @@ These are the basic template files generated for an AXI-Lite peripheral. You can
93
93
94
94
12. Save the changes in the file (Ctrl+S). Next, go to the “Package IP – AUP_advanced_SoC” tab, choose the “Customization Parameters” option on the left and click “Merge Changes from Customization Parameters Wizard” to update the IP package with the changes made in HDL files:
95
95
96
-

96
+

97
97
98
98
*Figure 2.6. Saving all the changes*
99
99
@@ -127,15 +127,15 @@ These are the basic template files generated for an AXI-Lite peripheral. You can
127
127
```
128
128
15. Then, click on “Settings” (under “Project Manager”) in the “Flow Navigator” menu on the left. Expand the “IP” section in the new window that appears and choose the “Repository” option.
129
129
130
-

130
+

131
131
132
132
*Figure 2.7. Adding IP Repository*
133
133
134
134
16. Click the “+” option under “IP Repositories” on the right and choose the AXI4 peripheral folder you created earlier (if it hasn’t already appeared) and click “Ok”. Right-click in the empty space of the “Diagram” box again and choose “Add IP”. Type “custom” in the search box and choose “custom_axi_gpio_asoc_v1_0” from the options.
135
135
136
136
17. Click “Run Connection Automation” and then click “OK” to connect the AXI-Lite Subordinate interface on GPIO peripheral to the AXI Manager interface on Arm processor.
137
137
138
-

138
+

Copy file name to clipboardExpand all lines: content/learning-paths/embedded-and-microcontrollers/advanced_soc/generating_bitstream.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,43 +12,43 @@ In this section you will generate the bitstream for this project and write a C p
12
12
13
13
1. Under the “Sources” tab on the left, expand the “Design Sources” folder, right-click the design1.bd file, choose the “Create HDL Wrapper” and select all default options.
14
14
15
-

15
+

16
16
17
17
*Figure 3.1. Creating HDL Wrapper*
18
18
19
19
2. Save any other changes and click “Generate Bitstream” on the left and click “Ok” for all pop-ups. This process takes some time. Once the process is done, select “Open Hardware Manager”:
20
20
21
-

21
+

22
22
23
23
*Figure 3.2. Generating bitstream and uploading to board*
24
24
25
25
3. Connect the board and make sure the jumper (JP3) above the red LED on the Zybo board is in JTAG mode. Then, in Vivado, click “Auto Connect” in the Hardware Manager as shown below:
26
26
27
-

27
+

28
28
29
29
*Figure 3.3. Connecting the board*
30
30
31
31
4. Right-click on the board, select “Program Device” as shown below and click “Program” on the pop-up window.
32
32
33
-

33
+

34
34
35
35
*Figure 3.4. Programming the board*
36
36
37
37
5. Once the board is programmed, the green LED labeled “LD12” should light up on the board. Click “File” on the main menu bar and select “Export” -> “Export Hardware” and click “Next” on the pop-up window. Choose the following option on the next page:
38
38
39
-

39
+

40
40
41
41
*Figure 3.5. Exporting hardware and bitstream file*
42
42
43
43
6. Choose the “export to” location as the project folder and save the file. Then click “Finish”. Next, click “Tools” on the main menu bar and select “Launch Vitis IDE”. Choose the same project folder as your workspace. Click “File” -> “New” -> “Application Project”.
44
44
45
-

45
+

46
46
47
47
*Figure 3.6. Creating a new application project*
48
48
49
49
7. Select the “Create a new platform from hardware (XSA)” tab and click browse to select the XSA file you saved earlier:
50
50
51
-

51
+

0 commit comments