Project

General

Profile

Xilink Vivado » History » Version 94

Frédéric Blanc, 2024-07-26 15:17

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