c打印一片地址的值_在SV验证平台中如何实现CPU/DSP打印信息

在验证平台中,常常遇到内含CPU/DSP(以下简称CORE), 却无法打印信息到屏幕的情况。本文介绍一种思路,供各位感兴趣的同学参考。

一般情况下,我们运行CORE相关的case,都有下面几个步骤。

  1. 编写希望在CORE上运行的c/asm代码
  2. 使用gcc扩展的专用编译器编译代码,生成bin文件
  3. 将生成的bin文件preload到instruction memory和data memory中
  4. 启动CORE,CORE开始从instruction mem中某个地址开始取指执行

CORE在这种情况下只能访问其内部的memory地址空间。即使某些地址被映射到接口上,可以通过接口访问外部设备,其结果还是只能访问到design上的地址空间,别说访问PC的地址,就连访问TB的资源都几乎是不可能完成的任务。这种情况下,一种可以预见的交互方式就是硬件交互了。


为了简便起见,我们以内部mem为例,作为交互的媒介。主体思路如下:

  1. Case中按照c style直接printf信息
  2. 将case中需要print的信息提取出来,做成一个table,里面有两项内容,一是待打印的字符串,二是递增的数字label.这个table信息需要与sv侧共享
  3. 将case中的print函数替换成写内部mem的函数,写入的内容即消息对应的数字label
  4. sv monitor该地址,一旦发现有写操作,获取写入数据,查table,将对应信息print出来

本质上,就是将打印信息通过硬件地址传递给TB,TB负责打印。原理上很简单,但是实际实现的时候,有很多细节需要处理。下面介绍一个use case.

在最少资

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值