diff options
| -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 |
