zoukankan      html  css  js  c++  java
  • 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

     

  • 相关阅读:
    Canvas基础讲义
    封装一个DivTag
    递归深拷贝
    构造函数的执行过程
    封装一个Ajax工具函数
    数组去重
    [js开源组件开发]js多选日期控件
    自己写的表格插件autotable
    复杂表格的树形结构的添加删除行div实现
    自制html5塔防游戏
  • 原文地址:https://www.cnblogs.com/lyuyangly/p/15000215.html
Copyright © 2011-2022 走看看