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