最近在搭建公司的testbench,主要有一下总结:
1.TB主要有两部分:部分一,软件部分主要用C写的,她的作用是写硬件的驱动(其实就是让核的外围设备可以正常工作或工作到特定的环境上)甚至有可能写整个系统的bootloader(嵌入式)。部分二,verilog或systemverilog部分,她的作用可以时gen active / send trans/check /monitor....或者控制整个仿真的流程比如verify start /verify end
2.需要注意一点:如何让自己的软件部分跟.v/.sv部分正常的沟通。起码让verilog/systemverilog 知道.c运行到那个阶段了,时编译成功了,是配置成功了,是写入成功了,还是读取成功了...等等。.v/.sv知道了 .c的进度才可以对整个的仿真流程合理的控制,进一步做check或打印一些提示字符串,以方便进行debug。
3.平台搭建初期要尽可能的简单,代码量要少,机制要简单,这样方便debug.随着平台主要流程正确了,再丰富平台内容,让平台更加智能化,可维护化。
4.在debug时,需要读懂汇编文件(主要是.list文件/.hex文件和编译日志)和AMBA总线时序要完全掌握。还有就是需要一种方法可以立即定位到错误的地方。
我才用的方法是:如何check时发生错误,直接在.c中改变一个不常用的寄存器的值。如果在波形(Nwave)中看到这个reg值发生变化说明此处出错。当然也可以借此把错误的地址直接写入到该register中,跟方便debug 。

TB平台搭建之一的更多相关文章

  1. TB平台搭建之三

    有简单到复杂,可以简单的决不复杂化,事情从可控开始,即使再好的技术如果不可控最好不要用否则以后的debug可能比较麻烦. 无论是搭建平台还是写复杂的case都是尽量从简单开始,不要上来复杂,否则deb ...

  2. TB平台搭建之二

    主要想记录关于debug问题: 一般我会1.定位问题所在位置比如使能信号错误.地址读写错误.数据流pipeline错误.... 2.首先看问题的源头(对应信号)是否还正确,比如出现XX要查看她的第一级 ...

  3. 【iOS】Jenkins Gitlab持续集成打包平台搭建

    Jenkins Gitlab持续集成打包平台搭建 SkySeraph July. 18th 2016 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点: ...

  4. hadoop伪分布式平台搭建(centos 6.3)

    最近要写一个数据量较大的程序,所以想搭建一个hbase平台试试.搭建hbase伪分布式平台,需要先搭建hadoop平台.本文主要介绍伪分布式平台搭建过程. 目录: 一.前言 二.环境搭建 三.命令测试 ...

  5. LNMP平台搭建---MySQL安装篇

    在前两篇中,安装了一个基本的Web服务器,但是只能提供静态网页查看,要做成动态网站,就必须要数据库或其他编程语言支持了,这里先介绍MySQL数据库的安装. MySQL是一个开源的数据库,在互联网行业应 ...

  6. 基于Moodle的IT课程辅助教育平台搭建

    基于Moodle的IT课程辅助教育平台搭建 Moodle是一个开源课程管理系统(CMS),也被称为学习管理系统(LMS)或虚拟学习环境(VLE).它已成为深受世界各地教育工作者喜爱的一种为学生建立网上 ...

  7. [Openwrt 项目开发笔记]:Openwrt平台搭建(一)

    [Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 最近开始着手进行Openwrt平台的物联网网关设 ...

  8. LNMP平台搭建---Nginx安装篇

    在上一篇博文<LNMP平台搭建---Linux系统安装篇>中,我们安装了CentOS版本的Linux操作系统,现在,我们来安装一个Web服务器,大标题写着LNMP,其中的N就是Nginx, ...

  9. LNMP平台搭建---Linux系统安装篇

    在互联网网站开发领域,有一个名词,大家一定不陌生,那就是LAMP,经典的Web服务器环境,由Linux+Apache+MySQL+PHP组成,,后来,一个名叫Nginx的Web服务器开源出来了,因其更 ...

随机推荐

  1. Net Core IIS Express In

    IIS Express In Asp.Net Core   IIS Express是一个Mini版的IIS,能够支持所有的Web开发任务,但是这种设计有一些缺陷,例如只能通过localhost:< ...

  2. NetCore上传多文件

    .NetCore上传多文件的几种示例   本章和大家分享的是.NetCore的MVC框架上传文件的示例,主要讲的内容有:form方式提交上传,ajax上传,ajax提交+上传进度效果,Task并行处理 ...

  3. CSS——制作天天生鲜登陆页面

    这个登陆页面主要是有一个form表单,其他的和首页差不多的. login.html: <!DOCTYPE html> <html lang="en"> &l ...

  4. Function.prototype.apply.call

    我们先从一道简单的题目开始,前几天在git上看到的: 定义log方法,它可以代理console.log的方法.log(1,2,3)  =>  1 2 3 通常,你的答案会是这样的: functi ...

  5. Main函数中的参数argc,argv的使用简单解析

    本篇文章是对Main函数中的参数argc,argv的使用进行了简单的分析介绍,需要的朋友参考下: C/C++语言中的main函数,经常带有参数argc,argv,如下:  int main(int a ...

  6. 打war包时无法把src/main/java里的xml文件打包上去

    maven打包默认打src/mian/resource里面的xml,而不会去src/main/java,所以 再pom.xml里的bulid节点里加上 <resources> <re ...

  7. C#使用GZipStream实现压缩和解压缩

    前言 我们在项目中,有可能会遇到存入到数据库或者传输的数据量比较大,这个时候,就可以考虑在存入数据库或者发送传输之前,将数据压缩下,当从数据库中取出时,再解压还原数据. 正文 废话不多说,我封装了一个 ...

  8. new() 与new

    一般写的时候,new对象都要加()

  9. leetcode84 Largest Rectangle in Histogram

    思路: 使用单调栈计算每个位置左边第一个比它矮的位置和右边第一个比它矮的位置即可. 实现: #include <bits/stdc++.h> using namespace std; cl ...

  10. JavaWeb_02_CSS学习

    CSS简介 Cascading Style Sheets (CSS)层叠样式表:en.wikipedia.org 层叠:一层一层的叠加样式 样式表:提供更多属性和属性值实现更多样式变化 css将显示样 ...