微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > uvm field_automation

uvm field_automation

时间:10-02 整理:3721RD 点击:
uvm 的field_automation里pack_bytes和bit 有将transaction类打包成位流或者字节流的功能,假设使用位流打包功能,但是数据发送的帧格式不同,其对应的transaction内的各个数据出现的顺序就会不一样,此时位流打包功能似乎就不能用了?那么应该怎么解决这个问题呢?求助。这是在写SJA1000的验证平台遇到的问题,图为can协议规定的两种帧格式,上面为标准帧,。下面为扩展帧,标准帧和扩展帧的transaction内的各个数据出现的顺序出现是不一样的,那么此时应该如何使用pack_byte才能将transaction打包成不同帧的位流呢?


uvm 的field_automation功能可以用选择开关功能(if else )。你采用一个标位来区分就行。

懂了,谢谢。

还有一个问题,就是在transaction里面定义动态数组时,在使用transaction的unpack_bytes时需要指定动态数组的大小,能不能在transaction内部定义一个变量来表示数组的大小,使得transaction调用unpack_bytes函数时,可以不用指定其大小,因为是直接将收集到的数据队列进行unpack操作,这样就提高了灵活性,

附上代码吧,没太明白你的问题。



上图是transaction类,里面有一个动态数组,和一个data_size来指定这个数组的大小,我想要通过uvm_unpack将一个数据队列中的数据解析到transaction中,但是在下图中在monitor调用unpack时需要需要指定动态数组的大小,

怎么可以实现用transaction里的data-sizelai 指定动态数组的大小呢,

这种只能靠自己手动处理了,没法自动吧。我是没见过怎么自动unpack这种packet.

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top