Project

General

Profile

Xilink Vivado » History » Version 90

Frédéric Blanc, 2023-12-04 15:22

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