Verilator使用示例


 1 #include "verilated_vcd_c.h"
 2 #include "Vtop.h"
 3 
 4 vluint64_t main_time = 0;  5 
 6 double sc_time_stamp()  7 {  8     return main_time;  9 } 10 
11 int main(int argc, char **argv) 12 { 13  Verilated::commandArgs(argc, argv); 14     Verilated::traceEverOn(true); 15     VerilatedVcdC* tfp = new VerilatedVcdC; 16 
17     Vtop *top = new Vtop("top"); 18 
19     top->clk    = 0; 20     top->rst_n  = 0; 21 
22     top->trace(tfp, 0); 23     tfp->open("wave.vcd"); 24 
25     while (sc_time_stamp() < 1000 && !Verilated::gotFinish()) { 26         if (main_time > 14) { 27             top->rst_n = 1; 28  } 29         if ((main_time % 10) == 5) { 30             top->clk = 1; 31  } 32         if ((main_time % 10) == 0) { 33             top->clk = 0; 34  } 35 
36         top->eval(); 37         tfp->dump(main_time); 38         main_time++; 39  } 40 
41     top->final(); 42     tfp->close(); 43     delete top; 44 
45     return 0; 46 }

 

 1 # Makefile for Verilator  2 
 3 export PRJ_PATH=$(shell pwd)/..  4 export DESIGN=top  5 
 6 all:  7     @echo "Verification based on Verilator"
 8 
 9 cmp: 10     verilator -Wno-fatal top.v main.cpp --top-module $(DESIGN) --cc --trace --exe
11     make -C obj_dir -f V$(DESIGN).mk V$(DESIGN) 12 
13 run: 14     ./obj_dir/V$(DESIGN) 15 
16 wave: 17     gtkwave wave.vcd &
18 
19 clean: 20     @rm -rf obj_dir wave.vcd

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM