Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
| howtos:red_pitaya [2025/09/20 15:28] – hackens-pub | howtos:red_pitaya [2025/09/20 15:34] (Version actuelle) – hackens-pub |
|---|
| ### Programmer le FPGA | ### Programmer le FPGA |
| |
| Le Red Pitaya utilise un SOC avec un FPGA Xilinx et un Arm-Cortex-A9 (deux coeurs) sur lequel tourne un linux. Si le Red Pitaya est programmer avec un firmware antérieur à 2.0 il suffit de se connecter au board en SSA, et d'utiliser la commande: | Le Red Pitaya utilise un SOC avec un FPGA Xilinx |
| | et un Arm-Cortex-A9 (deux coeurs) sur lequel tourne un linux. Si le Red Pitaya est programmer avec un firmware antérieur à 2.0 il suffit de se connecter au board en SSH, et d'utiliser la commande: |
| |
| ```bash | ```bash |
| ### Communication entre le FPGA et les coeurs Arm | ### Communication entre le FPGA et les coeurs Arm |
| |
| Pour communiquer avec le CPU il est possible d'utiliser les ports ``` MAXI0```, ``` MAXI1``` et ``` SAXIACP``` du module ``` PS7```. Ces ports permettent de communiquer avec le CPU en utilisant le protocole ``` AXI3```. Dans un cas, le FPGA est le slave du CPU (``` MAXI*```), cela permet de recevoir des commandes de la part du CPU (par exemple en écrivant dans ``` /dev/mem``` à l'adresse ``` 0x40000000```). À l'inverse, on peut écrire dans la RAM et les caches du CPU en utilisant l'interface ``` SACP``` (pour Slave Accelerator Coherent Interface) toujours avec le protocole ``` AXI3```, mais en tant que master. Le device tree du cpu défini une région commençant à l'adresse ``` 0x1000000``` de taille ``` 0x180000``` dans laquelle le FPGA peut écrire sans corrompre la mémoire du CPU en utilisant cette interface. | Pour communiquer avec le CPU il |
| | est possible d'utiliser les ports ``` MAXI0```, ``` MAXI1``` et ``` SAXIACP``` du module ``` PS7```. Ces ports permettent de communiquer avec le CPU en utilisant le protocole ``` AXI3```. Dans un cas, le FPGA est le slave du CPU (``` MAXI*```), cela permet de recevoir des commandes de la part du CPU (par exemple en écrivant dans ``` /dev/mem``` à l'adresse ``` 0x40000000```). À l'inverse, on peut écrire dans la RAM et les caches du CPU en utilisant l'interface ``` SACP``` (pour Slave Accelerator Coherent Interface) toujours avec le protocole ``` AXI3```, mais en tant que master. Le device tree du cpu défini une région commençant à l'adresse ``` 0x1000000``` de taille ``` 0x180000``` dans laquelle le FPGA peut écrire sans corrompre la mémoire du CPU en utilisant cette interface. |
| | |
| | Pour cela j'utilise la librarie [BlueAXI](https://github.com/esa-tu-darmstadt/BlueAXI) qui permet d'utiliser facilement le protocoles AXI3. |
| |