main
higepi 1 year ago
parent 7d79021f73
commit 75ad3b3d06

Binary file not shown.

Binary file not shown.

@ -5,4 +5,76 @@ https://hedgedoc.auro.re/x2PBnMb4Q3CQg-DRtt6Kkg#
## Contexte
Les architectures récentes associent, dans la même puce, des FPGA et des processeurs pour constituer des SoC (System on Chip). Elles sont composées dunités optimisées et précâblées pour laccélération matérielle de certains traitements de données et permettent dinterfacer plusieurs périphériques selon différentes modalités : utilisation dun processeur matériel intégré ou dun processeur logiciel (Soft-Core).
Les architectures récentes associent, dans la même puce, des FPGA et des processeurs pour constituer des SoC (System on Chip). Elles sont composées dunités optimisées et précâblées pour laccélération matérielle de certains traitements de données et permettent dinterfacer plusieurs périphériques selon différentes modalités : utilisation dun processeur matériel intégré ou dun processeur logiciel (Soft-Core).
## RISC-V
On utilise pour ce projet, l'implémentation RISC-V neorv32
### Hardware
<< NEORV32 Processor Configuration >>
====== Core ======
Is simulation: no
Clock speed: 50000000 Hz
On-chip debugger: no
Custom ID: 0x00000000
Hart ID: 0x00000000
Vendor ID: 0x00000000
Architecture ID: 0x00000013
Implementation ID: 0x01080106 (v1.8.1.6)
Architecture: rv32-little
ISA extensions: C I M X Zicsr Zicntr
Tuning options:
Phys. Mem. Prot.: not implemented
HPM Counters: not implemented
====== Memory ======
Boot configuration: Boot via Bootloader
Instr. base address: 0x00000000
Internal IMEM: yes, 16384 bytes
Data base address: 0x80000000
Internal DMEM: yes, 8192 bytes
Internal i-cache: no
Ext. bus interface: no
Ext. bus endianness: little
====== Peripherals ======
[x] GPIO
[x] MTIME
[x] UART0
[ ] UART1
[ ] SPI
[ ] TWI
[ ] PWM
[ ] WDT
[ ] TRNG
[ ] CFS
[ ] SLINK
[ ] NEOLED
[ ] XIRQ
[ ] GPTMR
[ ] XIP
[ ] ONEWIRE
### Software
Print sur le série :
```
neorv32_uart0_puts("Hello world! :)\n");
```
Mesures :
```
Begin_Time = (long)neorv32_mtime_get_time();
End_Time = (long)neorv32_mtime_get_time();
User_Time = End_Time - Begin_Time;
uint32_t dhry_per_sec = (uint32_t)(NEORV32_SYSINFO.CLK / (User_Time / Number_Of_Runs));
neorv32_uart0_printf("NEORV32: Total cycles: %u\n", (uint32_t)User_Time);
neorv32_uart0_printf("NEORV32: Cycles per second: %u\n", (uint32_t)NEORV32_SYSINFO.CLK);
neorv32_uart0_printf("NEORV32: DMIPS/s: %u\n", (uint32_t)dhry_per_sec);
```
Loading…
Cancel
Save