Project

General

Profile

Xilink Vivado » History » Version 81

Frédéric Blanc, 2023-11-06 15:59

1 1 Frédéric Blanc
h1. Xilink Vivado
2
3
h2. installation Ubuntu 20.04
4 33 Frédéric Blanc
5
sur le site de xilinx telecharger:
6
https://www.xilinx.com/support/download.html
7 35 Frédéric Blanc
Xilinx Unified Installer 2020.1: Linux Self Extracting Web Installer
8 33 Frédéric Blanc
9 37 Frédéric Blanc
10 34 Frédéric Blanc
*en root*
11 33 Frédéric Blanc
12 1 Frédéric Blanc
<pre><code class="shell">
13 42 Frédéric Blanc
sudo bash
14 40 Frédéric Blanc
export XILINXD_LICENSE_FILE=2100@flexalter.laas.fr
15 39 Frédéric Blanc
chmod +x Xilinx_Unified_2020.1_0602_1208_Lin64.bin
16 36 Frédéric Blanc
sudo ./Xilinx_Unified_2020.1_0602_1208_Lin64.bin
17 33 Frédéric Blanc
</code></pre>
18 41 Frédéric Blanc
echo $XILINXD_LICENSE_FILE
19
2100@flexalter.laas.fr
20 33 Frédéric Blanc
21 32 Frédéric Blanc
22
https://danielmangum.com/posts/vivado-2020-x-ubuntu-20-04/
23
24 1 Frédéric Blanc
h2. installation Windows
25
26 6 Frédéric Blanc
27 5 Frédéric Blanc
h3. Vivado 2022.2
28
29 2 Frédéric Blanc
Windows 64-bit: Run the settings64.bat from the Vivado/<version> directory
30
31
On Windows, click Start > All Programs > Xilinx Design Tools > Vivado 2022.2 > Vivado 2022.2 Tcl Shell to launch the Vivado Design Suite Tcl shell.
32 3 Frédéric Blanc
33
<pre><code class="shell">
34
dir D:\Public\RedPitaya-FPGA
35
vivado -source red_pitaya_vivado_project_Z10.tcl -tclargs v0.94
36
</code></pre>
37 4 Frédéric Blanc
38
!clipboard-202304201305-exdsl.png!
39 5 Frédéric Blanc
40
We recommend Vivado 2020.1
41 7 Frédéric Blanc
42 8 Frédéric Blanc
h3. Vivado 2020.1
43 7 Frédéric Blanc
44 22 Frédéric Blanc
h2. Création d'un nouveau projet
45
46 47 Frédéric Blanc
Create a new project with Vivado.
47
!clipboard-202306070934-1ikrj.png!
48
49 67 Frédéric Blanc
*Select the device xc7z010clg400-1*
50 47 Frédéric Blanc
51
Add the constraint redpitaya.xdc .
52
53
Create a new Block Design 
54
!clipboard-202306070939-6delu.png!
55
56 57 Frédéric Blanc
*ERROR: Could not find a top module*
57
58
solution Create an HDL Wrapper.
59
!clipboard-202306201313-n0s0q.png!
60
61 47 Frédéric Blanc
h3. source 
62
63 24 Frédéric Blanc
soource: https://github.com/lvillasen/RedPitaya-Hello-World
64
65
Clone the repositiry
66
67
Create a new project with Vivado.
68 47 Frédéric Blanc
!clipboard-202306070934-1ikrj.png!
69 24 Frédéric Blanc
70 66 Frédéric Blanc
*Select the device xc7z010clg400-1*
71 1 Frédéric Blanc
72 47 Frédéric Blanc
Add the constraint redpitaya.xdc .
73 1 Frédéric Blanc
74 47 Frédéric Blanc
Create a new Block Design 
75
!clipboard-202306070939-6delu.png!
76 24 Frédéric Blanc
77
Add the IP called ZYNQ7 Processing System from the menu and Run Block Automation with default options.
78
79
Add Module counter.v from the menu.
80
81
clic doit 
82
!clipboard-202304261446-zpxnx.png!
83
84
Add a Binary Counter from thr Add IP menu.
85
86
Add a port called led_o with components from 7 down to 0.
87
88
!clipboard-202304261452-qlhno.png!
89
90 25 Frédéric Blanc
connect
91
92 28 Frédéric Blanc
!clipboard-202304261515-hhbvn.png!
93 25 Frédéric Blanc
94 24 Frédéric Blanc
From the menu click on Validate Design
95
96
In 'Sources' go to 'IP Sources' right-click on 'project1' and select 'Create HDL Wraper'
97
98 26 Frédéric Blanc
!clipboard-202304261503-3iuu2.png!
99
100 24 Frédéric Blanc
Proceed to run Synthesis, Implementation and Bitstream Generation
101
102
Find the bitstream file (you may use the command 'find . -name *bit')
103
104
Transfer the bitstream file (*.bit) to the Red Pitaya (you may use *sftp root@rp-ip and put *.bit)
105
106 22 Frédéric Blanc
clic doit 
107 23 Frédéric Blanc
!clipboard-202304261446-zpxnx.png!
108 22 Frédéric Blanc
109 10 Frédéric Blanc
Tcl Console
110
111 9 Frédéric Blanc
<pre><code class="shell">
112
cd d:/Public/RedPitaya-FPGA/prj/Examples/Led_blink
113
source D:/Public/RedPitaya-FPGA/prj/Examples/Led_blink/make_project.tcl
114
</code></pre>
115
116 11 Frédéric Blanc
!clipboard-202304251008-te1ah.png!
117 17 Frédéric Blanc
pour éviter cette erreur copier le dossier core dans ../tmp/
118 11 Frédéric Blanc
119 16 Frédéric Blanc
attachment:cores.zip
120 12 Frédéric Blanc
121 18 Frédéric Blanc
h4. Bitstream
122
123 43 Frédéric Blanc
le Bitstream ce trouve dans le dossier /.../RedPitaya/fpga/<project...>/<project...>.runs/impl_1
124
125 18 Frédéric Blanc
!clipboard-202304251107-19zhk.png!
126
127 20 Frédéric Blanc
128
le fichier bitstream doit être remplacer le fichier /dev/xdevcfg
129
130 44 Frédéric Blanc
131
*rp-ip 140.93.64.197*
132
133
Transfer the bitstream file (*.bit) to the Red Pitaya (you may use *sftp root@rp-ip and put *.bit)
134
135
Connect to the RedPitaya (ssh root@rp-ip)
136
137
Program the FPGA with the command cat file_name.bit > /dev/xdevcfg
138
139 69 Frédéric Blanc
h2. GPIO
140
141
142 45 Frédéric Blanc
h3. Console TCL
143 44 Frédéric Blanc
144 45 Frédéric Blanc
utilisation des exemples 
145
146
https://github.com/RedPitaya/RedPitaya-FPGA
147
148
!clipboard-202306021352-vc13m.png!
149
150
utiliser les commandes suivante dans vivado console TCL
151
152
<pre><code class="shell">
153
cd /tools/redpitaya/RedPitaya-FPGA-master/prj/Examples
154
source make_project.tcl
155
</code></pre>
156 46 Frédéric Blanc
cela va ouvrir le projet complet de Led_Blink
157
158 48 Frédéric Blanc
h3. GPIO
159
160 50 Frédéric Blanc
!clipboard-202306071537-n2vfw.png!
161 49 Frédéric Blanc
connecteur E1
162 65 Frédéric Blanc
exp_n_tri_io    (OUT)
163
exp_p_tri_io    (IN)
164 51 Frédéric Blanc
165 52 Frédéric Blanc
exp_n_tri_io[1.1] correspond a DIO1_N
166 53 Frédéric Blanc
!clipboard-202306081407-xqky7.png!
167
!clipboard-202306081409-vulz6.png!
168 54 Frédéric Blanc
exemple de slice pour extraire du vecteur exp_p_tri_io[7.0] le scalaire exp_p_tri_io[3.3] qui correspond au GPIO DIO3_P du connecteur E1
169 53 Frédéric Blanc
Slice pour démultiplexer le vecteur
170
Concat pour multiplexer
171 48 Frédéric Blanc
172 70 Frédéric Blanc
h4. bidirectional
173
174 72 Frédéric Blanc
h5. IOBUF
175 70 Frédéric Blanc
176
!clipboard-202310231532-idfoo.png!
177
178
https://docs.xilinx.com/r/en-US/ug1344-versal-architecture-libraries/IBUFDS_DIFF_OUT_IBUFDISABLE
179
180 72 Frédéric Blanc
h5. Utility Buffer (seulement pour les horloges)
181 1 Frédéric Blanc
182
https://www.xilinx.com/products/intellectual-property/util_ds_buf.html#documentation
183 72 Frédéric Blanc
184
h5. Modification du fichier de contraite
185 71 Frédéric Blanc
186 73 Frédéric Blanc
<pre><code class="shell">
187
### set_property PACKAGE_PIN M14 [get_ports {exp_p_tri_io[7]}]
188
set_property PACKAGE_PIN M15 [get_ports {exp_n_tri_io[7]}]
189
 ### IN
190
 set_property IOSTANDARD LVCMOS33 [get_ports {exp_p_in7[*]}]
191
 set_property SLEW FAST [get_ports {exp_p_in7[*]}]
192
 set_property DRIVE 8 [get_ports {exp_p_in7[*]}]
193
 set_property PULLTYPE PULLUP [get_ports {exp_p_in7[*]}]
194
 set_property PACKAGE_PIN M14 [get_ports {exp_p_in7[0]}]
195
</code></pre>
196
197
 
198
199 55 Frédéric Blanc
h3. FIFO
200
201 59 Frédéric Blanc
!clipboard-202306221115-rthjy.png!
202 55 Frédéric Blanc
IP FIFO generator
203 58 Frédéric Blanc
*IN*
204 1 Frédéric Blanc
!clipboard-202306151112-equbx.png!
205 58 Frédéric Blanc
*OUT*
206 56 Frédéric Blanc
!clipboard-202306151112-gvamj.png!
207
208 62 Frédéric Blanc
h3. Shift Register
209
210
!clipboard-202307041436-0ex9q.png!
211
212 63 Frédéric Blanc
h3. Block Memory Generator
213
214
!clipboard-202307041437-3fhkj.png!
215
216 75 Frédéric Blanc
h3. Clock
217 1 Frédéric Blanc
218 76 Frédéric Blanc
le mode auto ne détecte pas le 125MHz(FCLK_CLK0) mais semble prendre 50MHz, d'ou une erreur de x2.5 (overcloking)
219 75 Frédéric Blanc
!clipboard-202310301446-afoxm.png!
220
221
parametre a modifier dans le zynq pour avoir la bonne fréquence 125MHz(FCLK_CLK0) 
222
223
!clipboard-202310301443-qm7dq.png!
224 68 Frédéric Blanc
225 74 Frédéric Blanc
h3. Bascule D flip-flop
226
227
!clipboard-202310301320-froal.png!
228
util ff
229
230 77 Frédéric Blanc
h3. PULSE
231
232
!clipboard-202310301452-mrz0e.png!
233 78 Frédéric Blanc
bascule D en mode FDCE, wizard clock 400Mhz bus par défaul 50Mhz (125MHz réel)
234 77 Frédéric Blanc
235 79 Frédéric Blanc
h2. RAM
236
237 81 Frédéric Blanc
!clipboard-202311061559-umyvt.png!
238
239 80 Frédéric Blanc
https://forum.redpitaya.com/viewtopic.php?t=1675
240
241 79 Frédéric Blanc
https://www.fpgadeveloper.com/2014/08/using-the-axi-dma-in-vivado.html/
242
243
How to control AXI DMA and/or BRAM cores in a ZYNQ
244
245
https://electronics.stackexchange.com/questions/482233/how-to-control-axi-dma-and-or-bram-cores-in-a-zynq
246
247 1 Frédéric Blanc
h3. tuto Web
248 19 Frédéric Blanc
249 21 Frédéric Blanc
https://github.com/lvillasen/RedPitaya-Hello-World
250
251 19 Frédéric Blanc
https://redpitaya.readthedocs.io/en/latest/developerGuide/software/build/fpga/fpga.html
252 7 Frédéric Blanc
253
https://antonpotocnik.com/?p=487360
254 29 Frédéric Blanc
255
https://easytp.cnam.fr/alexandre/index_fichiers/support/zynq_cours_tp_vivado_zc702.pdf
256 30 Frédéric Blanc
257
http://jmfriedt.free.fr/redpitaya.pdf
258 31 Frédéric Blanc
259
http://staff.ltam.lu/feljc/electronics/redpitaya/RedPitayaScriptingSummary_1.pdf
260 60 Frédéric Blanc
261
RAM
262
263
https://community.element14.com/technologies/fpga-group/b/blog/posts/learning-xilinx-zynq-use-ram-design-for-altera-cyclone-on-vivado-and-pynq
264 61 Frédéric Blanc
265 1 Frédéric Blanc
https://elinux.org/Connect_a_ARM_Microcontroller_to_a_FPGA_using_its_Extended_Memory_Interface_%28EMI%29
266 64 Frédéric Blanc
267
http://islab.soe.uoguelph.ca/sareibi/TEACHING_dr/XILINX_VIVADO_dr/HwSw_dr/VivadoEmbeddedZyncTutorial.pdf
268 79 Frédéric Blanc
269
https://www.fpgadeveloper.com/2014/08/using-the-axi-dma-in-vivado.html/