|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
这是例程的仿真,在参数设计时,我只使能了NWRITE的功能,按说仿真图应该很清楚的看明白。但是我还是有一些问题,大家帮忙看一下。
对比两张图。我的问题如下:在第一张图中,在tvalid,tready有效的情况下,tdata=64'h0054 20fde0000600,这是帧头,没有问题,其中关键说明:00是srcID,54表明NWRITE,0f是size-1的数值。余下的36位或34位(没有区别)是地址。
接下来,在接下来的时钟,发送了两个有效的64位数据,64'h0000000000000000,64'h0101010101010101,发送第二个数据时tlast由0变为了1,表明这一帧数据发送完了,size-1=8'h0f,可以发送16个数据,但是只发送了2个数据就结束了,有点浪费。我的这种理解是正确的吗?还是理解错误?这是第一个问题。下面是第二个问题。
据说链路的建立是为了确定串行数据的边界,似乎是有道理的,但是怎么样确立呢,是靠编码的方式,比如8B/10B?
我好奇的部分是链路是怎么建立的,发送端的txn,txp发送数据给另一个ip核的rxn,rxp,接收端把接收到的串行数据处理处理,确定好边界就会通知发送端链路建立好了,此时发送端的link_initialized变为1,发送端可以发送第一张图所示的两个64位的数据。因此这里存在着接收端告诉发送端链路建立好了的机制,怎么告诉呢?接收端用用什么状态标志位来通知接收端呢?
这是逻辑层,也是用户接口,这就是我们所关心的,内部的一些处理暂时不讨论。 |
|