Project

General

Profile

Wiki » History » Revision 53

Revision 52 (Frédéric Blanc, 2023-12-12 09:27) → Revision 53/55 (Frédéric Blanc, 2023-12-12 09:40)

h1. RedPitaya 

 {{toc}} 

 h2. Zynq-7000 SoC 

 The Zynq®-7000 family is based on the Xilinx SoC architecture. These products integrate a feature-rich dual-core or single-core ARM® 
 Cortex™-A9 based processing system (PS) and 28 nm Xilinx programmable logic (PL) in a single device. The ARM Cortex-A9 CPUs are 
 the heart of the PS and also include on-chip memory, external memory interfaces, and a rich set of peripheral connectivity interfaces. 

 AMD Zynq 7000 XC7Z010 

 *Vivado Select the device xc7z010clg400-1* 

 CLB Flip-Flops 35,200 
 Look-Up Tables (LUTs) 17,600 
 Logic Cells 28K 

 h2. Carte Redpitaya 

 !clipboard-202312041324-mzqat.png! 
 https://redpitaya.com/ 
 !clipboard-202312011541-sbukm.png! 
 *Attention il existe plusieurs version de redpitaya* 

 STEMlab 125-14 *external clock* (The OS will *not boot* without providing an external clock.) 
 https://redpitaya.readthedocs.io/en/latest/developerGuide/hardware/125-14_EXT/top.html 

 pour modifier une STEMlab 125-14 *external clock* en STEMlab 125-14 normale il faut souder 2 resistances 0402 de 22R sur R26 et R25 et dessouder R23 et R24 

 !clipboard-202311231551-ugmwn.png! 
 !clipboard-202311271003-ym5pn.png! 
 !clipboard-202311231537-zevpq.png! 
 !clipboard-202311271000-jz8ux.png! 

 *connecteur E1* défini dans le fichier de contrainte *redpitaya.xdc* 
 les ports GPIO N et      P sont avec des Pullup interne (définie dans le fichier de contrainte) 
 *exp_n_tri_io* [0..7] (G18,H17,H18,K18,L15,L16,J16,M15) 
 *exp_p_tri_io* [0..7] (G17,H16,J18,K17,L14,L17,K16,M14) 
 *exp_p_trg* (M14) exp_p_tri_io[7] 
 *exp_n_alex*    [0..3] (L15,L17,J16,M15) 
 *LED* 
 *led_o* [0..7] (F16,F17,G15,H15,K14,G14,J15,J14) 

 exp_n_tri_io[1.1] correspond a DIO1_N 
 frequence max 464.037Mhz 

 h3. Code commande 

 *STEMLab 125-14* 

 Code commande RS: *127-1087* 
 https://fr.rs-online.com/web/p/oscilloscopes/1271087 

 Code Commande farnell: *3935507*  
 https://fr.farnell.com/red-pitaya/izd0007/kit-de-d-m-stemlab-125-14-acq/dp/3935507 

 Code Commande Mouser: *892-028*  
 https://www.mouser.fr/ProductDetail/Red-Pitaya/28 


 

 h2. OS 

 h3. OS 1.04 

 Please note that you need to change the forward slashes to backward slashes on Windows. 


 Send the file .bit (red_pitaya_top.bit is the default name) to the Red Pitaya with the scp command. 

 <pre><code class="shell"> 
 scp red_pitaya_top.bit root@rp-xxxxxx.local:/root 
 </code></pre> 


 Now establish an SSH communication with your Red Pitaya and check if you have the copy red_pitaya_top.bit in the root directory. 

 <pre><code class="shell"> 
 redpitaya> ls 
 </code></pre> 


 Load the red_pitaya_top.bit to xdevcfg with 

 <pre><code class="shell"> 
 redpitaya> cat red_pitaya_top.bit > /dev/xdevcfg 
 </code></pre> 

 https://redmine.laas.fr/attachments/download/4691/STEMlab_125-xx_OS_1.04-18_stable.img.zip 

 h3. OS 2.0 

 sur l'ordinateur où est installer *Vivado* 

 Create .bif file (for example, red_pitaya_top.bif) and use it to generate a binary bitstream file (red_pitaya_top.bit.bin) 

 <pre><code class="shell"> 
 echo -n "all:{ red_pitaya_top.bit }" >    red_pitaya_top.bif 
 bootgen -image red_pitaya_top.bif -arch zynq -process_bitstream bin -o red_pitaya_top.bit.bin -w 
 </code></pre> 

 Bootgen se trouve dans ../Vivado/2023.1/bin 

 Send the file .bit.bin to the Red Pitaya with the scp command. 

 <pre><code class="shell"> 
 scp red_pitaya_top.bit.bin root@rp-xxxxxx.local:/root 
 </code></pre> 

 sur la *redpitaya* 

 Now establish an SSH communication with your *Red Pitaya* and check if you have the copy red_pitaya_top.bit.bin in the root directory. 

 <pre><code class="shell"> 
 ls 
 </code></pre> 


 Load the red_pitaya_top.bit.bin image into the FPGA: 

 <pre><code class="shell"> 
 /opt/redpitaya/bin/fpgautil -b red_pitaya_top.bit.bin 
 </code></pre> 


 *autre tuto:* 

 Génération du fichier crypté 
 Vivado génère par défaut un fichier .bit. Le pilote s’attend à un autre format contenant un entête particulier. La 
 conversion se fait avec l’utilitaire *bootgen* fourni par le *SDK de Vivado* . 
 Cet outil attend un fichier .bif contenant : 

 <pre><code class="shell"> 
 a l l : 
 { 
 n o m d u b i t s t r e a m . b i t 
 } 
 </code></pre> 


 qui sera ensuite fourni à bootgen : 

 <pre><code class="shell"> 
 ../bin/bootgen −image fichierbif.bif −arch zynq −processbitstream bin 
 </code></pre> 


 Suite à cette commande un fichier nom du bitstream.bit.bin est créé dans le répertoire courant. 

 Flasher par utilisation directe de fpga manager 

 Le fichier .bit.bin doit être copié/déplacé dans /lib/firmware. 
 Afin d’informer le pilote que le PL doit être flashé, et quel bitstream utiliser, la commande suivante est à utiliser : 

 <pre><code class="shell"> 
 echo " nom_du_bitstream.bit.bin " > /sys/class/fpga manager/fpga0/firmware 
 </code></pre> 


 La ligne : 
 <pre><code class="shell"> 
 fpga-manager fpga0: writing nom_du_bitstram.bit.bin to Xilinx Zynq FPGA Manager 
 </code></pre> 

 s’affichera en cas de succés et la LED connectée sur Prog done doit s’allumer (LED bleue sur la RedPitaya). 

 page 34 de document:"tuto redpitaya UdFC" 

 https://downloads.redpitaya.com/downloads/Unify/RedPitaya_OS_2.00-18_stable.img.zip 

 h3. bitstream de test 

 Le test est un compteur qui fait clignoter les LED du Redpitaya 

 https://redmine.laas.fr/attachments/download/4689/led_fred.bit 

 https://redmine.laas.fr/attachments/download/4690/led_fred.bit.bin 

 h2. pinout 

 !clipboard-202304261053-qqtl1.png! 
 !clipboard-202304251234-p78ss.png! 

 h2. Matlab Simulink HDL 

 h2. Xilinx Vivado 

 La carte Red Pitaya a une logique programmable faite par Xilinx et pour l'écrire pour décrire votre système numérique, vous devez utiliser le logiciel Vivado. Vivado sert à écrire votre système numérique avec un HDL et à implémenter votre système dans la logique programmable. Le résultat de la mise en œuvre d'un projet Vivado est un fichier appelé bitstream qui a une extension .bit, qui contient les informations sur les connexions des blocs logiques qui seront utilisés et les connexions entre eux. 

 [[Xilink_Vivado]] 

 h2. Shared RAM PS (CPU) PL (FPGA) 

 [[Shared_RAM_CPU_FPGA]]