BFM1
BFM应该描述的是具有某种具体功能的电路。比如说,你的待测电路是一个智能卡,那他的BFM就是读卡器;那你就要根据协议,在BFM中描述出读卡器的具体行为。
写BFM就类似于写testbench了。BFM里面有需要主动触发的动作,以及被动接受的动作。主动触发的动作,你写成task,
这样方便在testcase中调用。被动触发的动作,你在BFM里面直接写成电路就可以了。当然你可以灵活处理。
以下是闲话:
我觉得你可能不知道怎末对电路写测试。
我认为测试分为两部分:1 功能分析;2 testbench编写
1 功能分析
你在编写测试之前,要仔细分析电路有哪些功能,并对这些功能分类。哪些是必须测的(must),哪些是应该测的(should),
哪些是最好测的(Nice to do)。然后,你将功能相近的feature分为一类,你可以用一个testcase来测试。
2 testbench
当testcase分类完毕,你就开始琢磨怎么写testbench了。testbench要能够提供所有激励,并且能够将激励传播到待测电路中,而且能够侦测错误。
另外,测试编写完毕了,测试通过了并不是就万事大吉了。通常,有些东西是工程师没想到的问题,而导致测试不全面。
这些就需要我们不断扩大知识面了。要特别提醒的是复位测试,复位和时钟的配合,跨时钟域的处理等。
啰嗦了一大堆,希望对你有点帮助。
BFM1的更多相关文章
- 阿里云ECS部署maven项目
1.配置JDK和tomcat: https://www.cnblogs.com/congcongdi/p/11227771.html 2.使用eclipse打包项目 在项目上点击右键-->run ...
随机推荐
- [light oj 1013] Love Calculator
1013 - Love Calculator Yes, you are developing a 'Love calculator'. The software would be quite comp ...
- MySQL优化技巧之五(mysql查询性能优化)
对于高性能数据库操作,只靠设计最优的库表结构.建立最好的索引是不够的,还需要合理的设计查询.如果查询写得很糟糕,即使库表结构再合理.索引再合适,也无法实现高性能.查询优化.索引优化.库表结构优化需要齐 ...
- FZU 2122 又见LKity
直接模拟或者KMP #include <iostream> #include <string.h> #include <stdio.h> #include < ...
- uvalive 7331 Hovering Hornet 半平面交+概率期望
题意:一个骰子在一个人正方形内,蜜蜂在任意一个位置可以出现,问看到点数的期望. 思路:半平面交+概率期望 #include<cstdio> #include<cstring> ...
- sql执行计划
http://www.cnblogs.com/kissdodog/p/3160560.html
- java 小结1(static ,final,泛型)
static,final. (1)final: final:属于“终态”,意思就是不可以改变.可以修饰非抽象类,非抽象类的方法等.反正就是不能够再改变赋值了. 注意:1)fina类不能被继承,所以它没 ...
- 把普通的git库变成bare库
$ cd your_repo $ mv .git .. && rm -fr * $ mv ../.git . $ mv .git/* . $ rmdir .git $ git conf ...
- POJ1182食物链 (并查集)
第一反应就是和那个搞基的虫子的题很像(poj2492 http://www.cnblogs.com/wenruo/p/4658874.html),不过是把种类从2变成了3. 错在很白痴的地方,卡了好久 ...
- [二]poi实践一
1.创建时间格式的cell 2.创建不同格式的cell(字符串.布尔.数值) 3.读取遍历xls文件 4.抽取excel的内容
- jQuery中get与eq的区别
get与eq的区别 .eq() 减少匹配元素的集合,根据index索引值,精确指定索引对象. .get() 通过检索匹配jQuery对象得到对应的DOM元素. 同样是返回元素,那么eq与get有什么区 ...