自我介绍:
转行的原因
- 当然是发展的前景,往后的时间内IC行业的发展好。
- 针对于我个人而言,我觉得编码运行通过的感觉很爽。
- 最后就是薪资的水平普遍高于传统的制造业。
MCDF 如何提高覆盖率:
最终的总结,就是通过以上的学习
1.通过修改约束和创建新的条件进行测试
2.或者写新的测试来进行测试
3.创建conner case来进行测试
4.对于我们不需要的覆盖率,通过exclude的方式进行排除,也可以提高覆盖率的收集
5.使用不同的随机种子来进行测试(也就是说(随机测试+定向测试)
4.对于代码覆盖率:line、paths、toggle、FSM这几个的行覆盖率。
代码覆盖率的成果:
1.通过对MCDF 编写MCDF的测试用例使得寄存器的读写测试覆盖率达到100%
2.通过对异步fifo的读写寄存器编写,使得FIFO的代码覆盖率达到90%以上,
其中的一个难点就是:
1.分支覆盖率没有满足:回头review代码,发现满状态下写没有满足。
2.toggle覆盖率没有满足,是因为randmoize的次数不够。
验证点:
寄存器的读写测试
寄存器的稳定性测试
数据通道的开关测试
优先级测试
下行从端低带宽测试
APB协议
1.APB有8个信号: clk与rst信号、psel片选信号与penble使能信号、pwrite读写信号(高为写入、低为读出信号)、paddr 地址位、还有padta与rdata信号
2.APB:有3个状态、idel状态、setup状态与enable状态,各个状态的使能拉高情况
3.APB的VIP实现的功能,有slave、maser连个agent。agent中有dr、mon、sequencer、等。从master—driver中发的数据,直接传输到slaver-DRIVER
中的一个小的men然后与test中的men进行比较。
实现了读操作、写操作、先读后写和先写后读的操作。连续写再连续读的操作。
断言分为:
立即断言:非时序的,如同过程语句、可以在initial过程块中执行
并行断言:proporty为关键字,与时序有关。他们可以与设计模块一同执行。
先定义sequence,然后在定义proprety。
比如:
psel信号拉高的时候penable不能为x。
psel信号拉高的上一个周期,penable为高。
penable拉高的下一个周期,penable应该为低。
psel与pwrite同时保持为高的阶段,pdata需要保持。
对同一个地址做两次写操作再从中读数据。
写操作时,先分别发生连续写和非连续写。
当然我写的case比较简单,所以覆盖率也达到了100%。
AHB总线的协议:
1.AHB中包括master、slave译码器与编码器,
有两个类型的突发操作:增量突发、回环突发。
基本传输:包括地址相位与数据相位。地址相位只存在单个周期。数据相位:可存在多个周期,这里通过HREADY信号实现。
HTRANS[1:0],有四种状态。空闲、忙、非连续、连续的传输。
突发操作由HBURST的来表示SINGLE 单一传输 \INCR4\8\16突发传输 \WRAP4\8\16增量回环。
Router
于这里是sa是固定的端口,而da是随机的端口。所以实现了,由不同的端口向不同的端口传输数据的实现。
在scoraboard中可以表示出先将driver中的数据push_back到队列中,之后根据pak中的da的值与reciver中的匹配,然后进习性比较。
也收获了关于覆盖率。可以将覆盖率100%作为表示将每一个端口都覆盖到。
0