mirror of https://github.com/YosysHQ/picorv32.git
Merge pull request #56 from olofk/fusesoc
Verilator testbench and FuseSoC support
This commit is contained in:
commit
f9d4a5dc0c
|
@ -0,0 +1,78 @@
|
|||
CAPI=2:
|
||||
name : ::picorv32:0-r1
|
||||
|
||||
filesets:
|
||||
rtl:
|
||||
files: [picorv32.v]
|
||||
file_type : verilogSource
|
||||
tb:
|
||||
files: [testbench.v]
|
||||
file_type : verilogSource
|
||||
depend:
|
||||
tb_ez:
|
||||
files: [testbench_ez.v]
|
||||
file_type : verilogSource
|
||||
tb_wb:
|
||||
files: [testbench_wb.v]
|
||||
file_type : verilogSource
|
||||
tb_verilator:
|
||||
files:
|
||||
- testbench.cc : {file_type : cppSource}
|
||||
|
||||
targets:
|
||||
default:
|
||||
filesets: [rtl]
|
||||
lint:
|
||||
filesets: [rtl]
|
||||
default_tool : verilator
|
||||
tools:
|
||||
verilator:
|
||||
mode : lint-only
|
||||
toplevel : [picorv32_axi]
|
||||
test:
|
||||
default_tool: icarus
|
||||
filesets: [rtl, tb, "tool_verilator? (tb_verilator)"]
|
||||
parameters: [COMPRESSED_ISA, axi_test, firmware, noerror, trace, vcd, verbose]
|
||||
toplevel:
|
||||
- "tool_verilator? (picorv32_wrapper)"
|
||||
- "!tool_verilator? (testbench)"
|
||||
|
||||
tools:
|
||||
verilator :
|
||||
cli_parser : fusesoc
|
||||
mode : cc
|
||||
verilator_options : [-Wno-fatal, --trace]
|
||||
test_ez:
|
||||
default_tool: icarus
|
||||
filesets: [rtl, tb_ez]
|
||||
parameters: [vcd]
|
||||
toplevel: [testbench]
|
||||
test_wb:
|
||||
default_tool: icarus
|
||||
filesets: [rtl, tb_wb]
|
||||
parameters: [COMPRESSED_ISA, firmware, noerror, trace, vcd]
|
||||
toplevel: [testbench]
|
||||
|
||||
parameters:
|
||||
COMPRESSED_ISA:
|
||||
datatype : str
|
||||
default : 1
|
||||
paramtype : vlogdefine
|
||||
axi_test:
|
||||
datatype : bool
|
||||
paramtype : plusarg
|
||||
firmware:
|
||||
datatype : file
|
||||
paramtype : plusarg
|
||||
noerror:
|
||||
datatype : bool
|
||||
paramtype : plusarg
|
||||
trace:
|
||||
datatype : bool
|
||||
paramtype : plusarg
|
||||
vcd:
|
||||
datatype : bool
|
||||
paramtype : plusarg
|
||||
verbose:
|
||||
datatype : bool
|
||||
paramtype : plusarg
|
|
@ -0,0 +1,27 @@
|
|||
#include "Vpicorv32_wrapper.h"
|
||||
#include "verilated_vcd_c.h"
|
||||
|
||||
int main(int argc, char **argv, char **env)
|
||||
{
|
||||
Verilated::commandArgs(argc, argv);
|
||||
Verilated::traceEverOn(true);
|
||||
Vpicorv32_wrapper* top = new Vpicorv32_wrapper;
|
||||
|
||||
VerilatedVcdC* tfp = new VerilatedVcdC;
|
||||
top->trace (tfp, 99);
|
||||
tfp->open ("testbench.vcd");
|
||||
top->clk = 0;
|
||||
int t = 0;
|
||||
while (!Verilated::gotFinish()) {
|
||||
if (t > 200)
|
||||
top->resetn = 1;
|
||||
top->clk = !top->clk;
|
||||
top->eval();
|
||||
tfp->dump (t);
|
||||
t += 5;
|
||||
}
|
||||
tfp->close();
|
||||
delete top;
|
||||
exit(0);
|
||||
}
|
||||
|
Loading…
Reference in New Issue