readme
parent
6e0650fc3a
commit
ea5d30deb2
Binary file not shown.
After Width: | Height: | Size: 49 KiB |
Binary file not shown.
After Width: | Height: | Size: 207 KiB |
Binary file not shown.
After Width: | Height: | Size: 265 KiB |
@ -0,0 +1,140 @@
|
|||||||
|
# A2P
|
||||||
|
|
||||||
|
<img align="right" src="media/banner.png">
|
||||||
|
|
||||||
|
## Back to the 90s!
|
||||||
|
|
||||||
|
A2P is a mashup of OpenPOWER architecture and VexRiscv, creating a new 32b Power core for experimentation and lightweight designs.
|
||||||
|
|
||||||
|
## Status
|
||||||
|
|
||||||
|
### Function
|
||||||
|
|
||||||
|
<img align="right" width="50%" src="media/sim.png">
|
||||||
|
|
||||||
|
* Ops (100+) not thoroughly tested, but running a minimal kernel and partial Litex BIOS in Verilator and on FPGAs. Likely still
|
||||||
|
some bugs in CR/XER handling.
|
||||||
|
|
||||||
|
* Need to define supported translation modes.
|
||||||
|
|
||||||
|
* SOC builds with Litex; software is built manually and runs from 'ROM' with on-board RAM.
|
||||||
|
|
||||||
|
* Core and SOC run in Verilator/pyverilator. SOC uses emulated host UART.
|
||||||
|
|
||||||
|
### FPGA Implementation
|
||||||
|
|
||||||
|
* Currently using Cmod A7-35T board.
|
||||||
|
|
||||||
|
* Needs SOC code update to access external SRAM. I2C works.
|
||||||
|
|
||||||
|
<img width="50%" src="media/fpga.png">
|
||||||
|
|
||||||
|
* A lot of LUTs are being used by bypass/GPR write. Recent analysis (100MHz, Vivado/Artix):
|
||||||
|
|
||||||
|
```
|
||||||
|
cellanal.py
|
||||||
|
|
||||||
|
--- cells_ff.txt ---
|
||||||
|
|
||||||
|
Total: 1791
|
||||||
|
|
||||||
|
IC 115
|
||||||
|
decode 244
|
||||||
|
execute 456
|
||||||
|
regfile 0
|
||||||
|
hazards 38
|
||||||
|
ALU2 32
|
||||||
|
MULDIV 136
|
||||||
|
memory 295
|
||||||
|
DC 69
|
||||||
|
SPR 239
|
||||||
|
MSR 15
|
||||||
|
writeBack 1
|
||||||
|
ibus 32
|
||||||
|
dbus 32
|
||||||
|
SPINAL _zz_ 87
|
||||||
|
Total in matched areas 1791
|
||||||
|
|
||||||
|
*** >32 bits (93): a2p_i/A2P_WB/inst/IBusCachedPlugin_fetchPc_pcReg_reg ***
|
||||||
|
*** >32 bits (52): a2p_i/A2P_WB/inst/memory_to_writeBack_MUL_LOW_reg ***
|
||||||
|
Totals by cells:
|
||||||
|
1: 131 131
|
||||||
|
2: 16 163
|
||||||
|
3: 7 184
|
||||||
|
4: 6 208
|
||||||
|
5: 18 298
|
||||||
|
6: 1 304
|
||||||
|
7: 1 311
|
||||||
|
8: 5 351
|
||||||
|
10: 1 361
|
||||||
|
11: 2 383
|
||||||
|
26: 1 409
|
||||||
|
30: 3 499
|
||||||
|
31: 5 654
|
||||||
|
32: 31 1646
|
||||||
|
52: 1 1698
|
||||||
|
93: 1 1791
|
||||||
|
|
||||||
|
--- cells_lut.txt ---
|
||||||
|
|
||||||
|
Total: 2539
|
||||||
|
|
||||||
|
IC 85
|
||||||
|
decode 262
|
||||||
|
execute 1758
|
||||||
|
regfile 9
|
||||||
|
hazards 35
|
||||||
|
ALU2 0
|
||||||
|
MULDIV 145
|
||||||
|
memory 133
|
||||||
|
DC 1
|
||||||
|
SPR 56
|
||||||
|
MSR 0
|
||||||
|
writeBack 0
|
||||||
|
ibus 1
|
||||||
|
dbus 8
|
||||||
|
SPINAL _zz_ 46
|
||||||
|
Total in matched areas 2539
|
||||||
|
|
||||||
|
*** >32 bits (35): a2p_i/A2P_WB/inst/Hazards_writeBackBuffer_payload_data ***
|
||||||
|
*** >32 bits (62): a2p_i/A2P_WB/inst/IBusCachedPlugin_fetchPc_pcReg_reg ***
|
||||||
|
*** >32 bits (34): a2p_i/A2P_WB/inst/MULDIV1_result ***
|
||||||
|
*** >32 bits (66): a2p_i/A2P_WB/inst/MULDIV_accumulator ***
|
||||||
|
*** >32 bits (40): a2p_i/A2P_WB/inst/_zz_141_ ***
|
||||||
|
*** >32 bits (42): a2p_i/A2P_WB/inst/decode_to_execute_RA ***
|
||||||
|
*** >32 bits (220): a2p_i/A2P_WB/inst/decode_to_execute_RB ***
|
||||||
|
*** >32 bits (107): a2p_i/A2P_WB/inst/execute_to_memory_BRANCH_CALC ***
|
||||||
|
*** >32 bits (64): a2p_i/A2P_WB/inst/execute_to_memory_CR_WRITE_imm ***
|
||||||
|
*** >32 bits (212): a2p_i/A2P_WB/inst/execute_to_memory_DECODER_stageables_49 ***
|
||||||
|
*** >32 bits (1028): a2p_i/A2P_WB/inst/execute_to_memory_REGFILE_WRITE_DATA ***
|
||||||
|
*** >32 bits (86): a2p_i/A2P_WB/inst/execute_to_memory_SRC_CR ***
|
||||||
|
*** >32 bits (37): a2p_i/A2P_WB/inst/execute_to_memory_XER_WRITE_imm ***
|
||||||
|
*** >32 bits (68): a2p_i/A2P_WB/inst/memory_to_writeBack_MUL_LOW ***
|
||||||
|
Totals by cells:
|
||||||
|
1: 158 158
|
||||||
|
2: 1 160
|
||||||
|
3: 5 175
|
||||||
|
4: 1 179
|
||||||
|
5: 5 204
|
||||||
|
8: 2 220
|
||||||
|
9: 1 229
|
||||||
|
17: 1 246
|
||||||
|
20: 2 286
|
||||||
|
25: 1 311
|
||||||
|
31: 1 342
|
||||||
|
32: 3 438
|
||||||
|
34: 1 472
|
||||||
|
35: 1 507
|
||||||
|
37: 1 544
|
||||||
|
40: 1 584
|
||||||
|
42: 1 626
|
||||||
|
62: 1 688
|
||||||
|
64: 1 752
|
||||||
|
66: 1 818
|
||||||
|
68: 1 886
|
||||||
|
86: 1 972
|
||||||
|
107: 1 1079
|
||||||
|
212: 1 1291
|
||||||
|
220: 1 1511
|
||||||
|
1028: 1 2539
|
||||||
|
```
|
Loading…
Reference in New Issue