如上面的代码设计,将一个叫mem的压缩数组和一个定义为eth_frame的以太网帧的压缩数据结构,由于压缩的数据变量存储空间是连续的,所以可以实现用不同格式对同一存储空间进行读写。
比如说在driver模块,这里只向mac核中送入数据,他看到的只是数据流而不是数据的内容,这里就可以用Mem送入数据(百兆mac的mii口数据位宽正好是4)。
pkg_temp.eth.FSC = FSC;
同时对于计分板模块来说也可以通过eth_frame结构来更细致的比较输入输出数据不同部分的差别,这样比较是更加精细灵活的。
$display("score_board work id is %d,error!",i++);
if(dri_frame.eth.preamble != mon_frame.eth.preamble)
$display("preamble is not compatible: \n dri_frame's is: %x\n mon_frame's is: %x\n",dri_frame.eth.preamble,mon_frame.eth.preamble);
if(dri_frame.eth.SDF != mon_frame.eth.SDF)
$display("SDF is not compatible: \n dri_frame's is: %x\n mon_frame's is: %x\n",dri_frame.eth.SDF,mon_frame.eth.SDF);
if(dri_frame.eth.DA != mon_frame.eth.DA)
$display("DA is not compatible: \n dri_frame's is: %x\n mon_frame's is: %x\n",dri_frame.eth.DA,mon_frame.eth.DA);
if(dri_frame.eth.SA != mon_frame.eth.SA)
$display("SA is not compatible: \n dri_frame's is: %x\n mon_frame's is: %x\n",dri_frame.eth.SA,mon_frame.eth.SA);
if(dri_frame.eth.len != mon_frame.eth.len)
$display("len is not compatible: \n dri_frame's is: %x\n mon_frame's is: %x\n",dri_frame.eth.len,mon_frame.eth.len);
if(dri_frame.eth.payload != mon_frame.eth.payload)
$display("payload is not compatible: \n dri_frame's is: %x\n mon_frame's is: %x\n",dri_frame.eth.payload,mon_frame.eth.payload);
用户421471 2012-6-26 08:25