数字IC设计随笔之六(DVE中波形数据alias显示)

本文介绍了如何在DVE中为波形信号设置别名,以提高仿真调试效率。通过用户定义基数对话框,可以使用列表方式或TCL脚本方式实现。列表方式直接映射波形值和显示字符串,而TCL脚本方式则通过自定义TCL过程根据输入的波形数据返回对应字符串。文中给出了一个CPU指令译码的TCL脚本示例,将指令码转换为易于理解的指令名称,便于理解CPU执行流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DVE中波形信号alias的定义

在使用VCS做仿真时,将波形中状态值显示为容易理解的具有实际有意义的字符串,将会大大提高debug的效率。

在DVE窗口中选择需要别名替换的信号,然后点击菜单signal—set radix—user defined—edit显示编辑用户定义基数对话框,点击New、Delete新建或者删除定义的别名。可以通过两种方式实现,一种是列表形式,一种是TCL脚本。

  • 列表方式

列表方式的实现非常简单,只需要将波形值与显示字符串做称列表即可。
在这里插入图片描述

  • TCL脚本方式

TCL方式需要定义一个TCL proc,波形中的数据以参数的方式输入,然后TCL proc返回对应的字符串,可以用switch或者if-else实现。

在这里插入图片描述
下面简单示例代码为CPU中指令译码部分的相关处理,将取到的指令数据处理为具有实际意义的指令码,可以更方便的理解cpu执行的行为。

proc inst_alias { arg }  {
 
 set hex [expr 0x$arg]
 set opcode [ expr $hex & 0x0000007F]
 
 set fun1 [ expr [ expr $hex >> 12] & 0x7]
 
  #Proc contents here ... 
  switch $opcode {
    19 {
        switch $fun1 {
        0 {
            set results "ADDI"
           }
        }
    }
    23 {
        set results "AUIPC"
    }
    99 {
        switch $fun1 {
            0  {
            set results "BEQ"
            }
            1 {
            set results "BNE"
            }
        } 
    }
  }
  return $results
}

上述内容仅记录实现的方法,如有错误,还请各位同行指出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值