IC验证中遇到一个棘手问题,请各位帮帮忙
时间:10-02
整理:3721RD
点击:
现在遇到的情况是这样的:在平台的drive类里,我需要对从generator类里得来的数据进行编码,这个编码方式简单来说是对得到的数据进行bit time的设置,变为4us,然后通过signal_out输给DUT(signal_out是定义在接口中,用时钟上升沿采样),现在我不知道怎么将bit time变为4us,目前尝试用##符号延迟来实现,比如 ##3 master_if.signal_out=1;##3 master_if.signal_out=0;我想问有没有更好的办法来实现呢?谢谢了!
自顶一下
是要加这组信号,每根信号加不同延时么?
fork
#0if.data[0] <= data_in[0];
#3if.data[1] <= data_in[1];
#6if.data[1] <= data_in[1];
......
join
设置Tclk=4us,
while(1)
begin
@(posedgeclk);
master_if.signal_out<=datain;
end
谢谢楼上,给了我一点思路
感觉问题描述的不太清楚
你好,我想再问下,signal_out 变量是logic的,即logic signal_out,但是datain是11位的,能直接每次采样signal_out<=datain吗,好像应该是是signal_out<=datain吧
你的设计是按照bit进行采样的,datain是多比特的数据,用个for 循环进行控制吧。不然数据位宽就不匹配了。
用for 循环 将多bit转换成单bit 流输出