zoukankan      html  css  js  c++  java
  • Modelsim——显示状态机名称的方法

      方法在本人博客《状态机的Verilog写法》已经写明,为了方便查看,特意拎出来。

    方法1: 转ASCII码

      设计文件含有状态机时,增加一段"参数转ASCII码"的代码,即可在 Modelsim 中显示出状态机名称,如下所示:

    reg [15:0] state_name; //1个字符8位宽
    
    always @(*) begin
        case(state_c)
            S0:     state_name = "S0";
            S1:     state_name = "S1";
            S2:     state_name = "S2";
            S3:     state_name = "S3";
            default:state_name = "S0";
        endcase
    end

      在 Modelsim 中点击信号 state_name,右键选择用 ASSIC 码查看就可以看到该状态机的名称。编写时注意一下位宽,1个ASSIC码字符宽度是8位,例如“S0”有2个字符则需要16位宽。如果不想动设计文件,也可以直接在 testbench 中引出该模块的 state_c 来增加这段代码。

    方法2: do文件(tcl文件也是一样的)

      首先你得学会怎么使用Modelsim的自动化脚本仿真,详情见本人博客《Modelsim——do脚本、bat命令》,那么我们只要在do文件中加入这段代码即可:

    # 结构体设置
    virtual type {
        {4'b0001 S0}
        {4'b0010 S1}
        {4'b0100 S2}
        {4'b1000 S3}
    } fsm_type;
    
    # 结构体和信号名关联,命名为state_name
    virtual function {(fsm_type)/fsm_tb/u_fsm/state} state_name

      当然还有其他的方法,这两种是最常见最快捷的,掌握这两个足够应付日常设计了。

  • 相关阅读:
    svn TortoiseSVN 回滚版本
    侵入式菜单
    Android 布局开发之百分比布局、弹性布局
    webstorm 使用svn
    bootstarp
    Retrofit get post query filed FiledMap
    http和https
    深入理解乐观锁与悲观锁
    数据库的锁机制
    数据库读现象浅析
  • 原文地址:https://www.cnblogs.com/xianyufpga/p/11326100.html
Copyright © 2011-2022 走看看