|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
我用sv写的一个testbench,其中有一段一直有问题: 波形显示赋值的位置一直是反的.
本来应该是g2xclkcnt=0赋值p0_rxd[3:0], 等于1时赋值p0_rxc[7:4],仿真结果却正好相反;
而下面的p0_rxd和byteidx本该在g2xclkcnt=1才更新,结果却是在=0的时候更新;
请高手帮我看一下我得代码有什么问题吗?
//testbench里面的激励产生代码;
while(byteidx!=mpt.total_num_of_bytes)
begin
@(posedge g_2Xrxclk)
begin
if(~g2xclkcnt)
begin
g0_rxctl<=p0_rxdv;
g0_rxd<=p0_rxd[3:0];
end
else
begin
g0_rxctl<=p0_rxdv;
g0_rxd<=p0_rxd[7:4];
end
if(g2xclkcnt)
begin
if(p0_rxd==8'h55)
p0_rxdv<=1;
else if(datain[byteidx]==8'hee && datain[byteidx+1]==8'hee && datain[byteidx+2]==8'hee && datain[byteidx+4]==8'hee)
p0_rxdv<=0;
p0_rxd<=datain[byteidx];
byteidx<=byteidx+1;
end
end
end
//top文件里面的时钟产生代码(时钟波形在仿真时是正确的)
always #2 g_2Xrxclk=~g_2Xrxclk; //250Mhz
always @(posedge g_2Xrxclk) g2xclkcnt<=~g2xclkcnt; //125Mhz |
|