You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.3 KiB
Markdown
69 lines
1.3 KiB
Markdown
# A2 Interfaces to WB
|
|
|
|
* core interfaces
|
|
|
|
* A2I/A2O A2L2 bus
|
|
|
|
* Single (combined I/D) w/SMP extensions
|
|
|
|
* Dual (separate I/D) WB buses w/SMP extensions
|
|
|
|
* bus interfaces
|
|
|
|
* single WB
|
|
|
|
* dual WB
|
|
|
|
* functions
|
|
|
|
* queues one or more core commands
|
|
|
|
* point of coherncy for larx/stcx, sync, tlbie, etc. for multicores below it (single/mulithread)
|
|
|
|
* address compares necessary for ordering/coherency
|
|
|
|
* optional mailbox interface for core-core peer and broadcast
|
|
|
|
* arbitrates for WB bus(es)
|
|
|
|
* gen responses for cores
|
|
|
|
## Possible configurations
|
|
|
|
* one core, WB: pass-through with SMP functions
|
|
|
|
* one core, A2L2: bridge with SMP functions
|
|
|
|
* multi-core: identical or mixed WB1/WB2/A2L2, queueing, arbitration, and SMP functions
|
|
|
|
|
|
### syntax check
|
|
|
|
```verilator --lint-only a2wb.v -Wno-LITENDIAN```
|
|
|
|
### sim build
|
|
|
|
```
|
|
verilator --cc --exe --trace -Wno-Litendian -Wno-fatal -I./src top.v tb.cpp
|
|
cd obj_dir;make -f Vtop.mk;cd ..
|
|
obj_dir/Vtop
|
|
```
|
|
|
|
### synth build (Litex)
|
|
|
|
* had to make some source changes for Vivado
|
|
|
|
```
|
|
rm obj_dir/*
|
|
# use sim top so tb.cpp is ok
|
|
verilator --cc --exe --trace -Wno-Litendian -Wno-fatal -I./litex/a2node/verilog -I./src top.v tb.cpp uart.cpp
|
|
cd obj_dir;make -f Vtop.mk;cd ..
|
|
obj_dir/Vtop
|
|
|
|
gtkwave wtf.vcd wtf.gtkw
|
|
|
|
vcd2fst wtf.vcd wtf.fst
|
|
gtkwave wtf.fst wtf.gtkw
|
|
```
|
|
|