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/ |