Skip to content

Commit 8621483

Browse files
committed
README.md: cleanup
1 parent 90bce47 commit 8621483

1 file changed

Lines changed: 30 additions & 29 deletions

File tree

README.md

Lines changed: 30 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,42 @@
11
# ACE SystemVerilog modules for cache coherent SoC design
22

3-
This repository provides modules to implement cache coherence SoC's.
3+
> 🚧 **Work in progress:** this repository is under active development. Breaking changes can happen at any time. 🚧
44
5-
## List of modules
5+
This repository provides modules to implement cache coherence SoCs.
66

7-
| Name | Description | Doc |
8-
|------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|--------------------------------|
9-
| [`ace_ccu_top`](src/ace_ccu_top.sv) | ACE interconnector, broadcasts snooping messages to the cache controllers and AXI transactions to the slave | [Doc](doc/ace_ccu_top.md) |
7+
## Repository structure
108

11-
## Verification
12-
13-
Generate the initial cache and memory states, as well as the transaction streams, with the following command:
14-
15-
```
16-
make init_mem
17-
```
18-
19-
You can control simulation parameters, such as the memory and cache sizes and structures, number of caches, and number of transactions, in `Makefile`.
20-
21-
You can simulate the top level design with
229
```
23-
make -B sim-ace_ccu_top.log
10+
src/
11+
├── ace_intf.sv # ACE bus interface definitions
12+
├── ace_pkg.sv # ACE type definitions and constants
13+
├── snoop_intf.sv # Snoop channel interface definitions
14+
└── ccu/ # Coherence Control Unit
15+
├── ccu_top.sv
16+
├── ccu_pkg.sv
17+
├── ccu_frontend.sv
18+
├── ccu_frontend_arbiter.sv
19+
├── ccu_read_engine.sv
20+
├── ccu_write_engine.sv
21+
├── ccu_snoop_pipeline.sv
22+
├── ccu_replay.sv
23+
├── ccu_exclusive_monitor.sv
24+
├── ccu_csr_wrap.sv
25+
├── ccu_scoreboard.sv
26+
└── regs/ # CSR definitions and generated register files
27+
28+
include/
29+
└── ace/ # SystemVerilog header files (typedef, assign, convert, domain macros)
2430
```
2531

26-
### Coherency check
32+
## Include files
2733

28-
To run coherency check, run
29-
```
30-
make init_mem CHECK=1
31-
```
32-
It will generate the initial cache and memory states, and stall until given a prompt.
33-
34-
Next, open another terminal and simulate the top level design with
35-
```
36-
make -B sim-ace_ccu_top.log
37-
```
38-
Once the simulation finishes, press enter on the coherency check prompt. A coherency check will be run. A log file is generated called `cache_python.log`. Search with keyword `ERROR` to find whether coherency was broken during the simulation. When run with `DEBUG=1` (the default option), a pdb session is opened the moment a coherency problem is found.
34+
| Name | Description |
35+
|---------------------------------------------------|----------------------------------------------------|
36+
| [`ace/typedef.svh`](include/ace/typedef.svh) | Macros for defining ACE and snoop struct types |
37+
| [`ace/assign.svh`](include/ace/assign.svh) | Macros for assigning ACE and snoop signals |
38+
| [`ace/convert.svh`](include/ace/convert.svh) | Macros for converting between ACE signal formats |
39+
| [`ace/domain.svh`](include/ace/domain.svh) | Macros for ACE domain signal handling |
3940

4041
## License
4142

0 commit comments

Comments
 (0)