diff options
| author | Alejandro Soto <alejandro@34project.org> | 2022-09-18 17:17:02 -0600 |
|---|---|---|
| committer | Alejandro Soto <alejandro@34project.org> | 2022-09-18 17:17:02 -0600 |
| commit | 4dc4e712b21fcf08143005a56b1501f53c127a67 (patch) | |
| tree | d3f9c43a36136e30f7a817204c320dc009cbaa65 | |
| parent | 503957e2883e754fc8424c420c3d9838bd639ed3 (diff) | |
Fix public_flat_rw signals
| -rw-r--r-- | pitfalls.txt | 12 | ||||
| -rw-r--r-- | tb/platform.sv | 4 |
2 files changed, 14 insertions, 2 deletions
diff --git a/pitfalls.txt b/pitfalls.txt index 9cca2c2..b77168e 100644 --- a/pitfalls.txt +++ b/pitfalls.txt @@ -16,3 +16,15 @@ pin_assignments.tcl . Select that script, run it and try and compile the project again Nota: es *_pin_assignments.tcl y no ningún otro + + === + [II] Emulación de Avalon + === + +Para las señales fuera del top que C++ escribe, por ejemplo en tb/platform.sv, +se necesita /*verilator public_flat_rw @(negedge clk_clk)*/ en vez de +/*verilator public*/ (la última igual se usa para señales que C++ lee). Poner +lo segundo en una señal `s` hace que `assign a = s;` no tenga ningún efecto, +lo cual es difícil de depurar. + +https://github.com/verilator/verilator/issues/2262 diff --git a/tb/platform.sv b/tb/platform.sv index 10df2e0..7c2ef90 100644 --- a/tb/platform.sv +++ b/tb/platform.sv @@ -28,9 +28,9 @@ module platform ( logic[31:0] avl_address /*verilator public*/; logic avl_read /*verilator public*/; logic avl_write /*verilator public*/; - logic[31:0] avl_readdata /*verilator public*/; + logic[31:0] avl_readdata /*verilator public_flat_rw @(negedge clk_clk)*/; logic[31:0] avl_writedata /*verilator public*/; - logic avl_waitrequest /*verilator public*/; + logic avl_waitrequest /*verilator public_flat_rw @(negedge clk_clk)*/; logic[3:0] avl_byteenable /*verilator public*/; bus_master master_0 |
