Aurora设计注意问题
一、IP核的使用
1.新手推荐直接使用aurora ip core,简单易操作
2.高手,可以直接使用aurora ip core,也可以使用gt搭建
二、dataflow mode模式
1.有tx-simplex,rx-simplex,tx/rx-simplex,以及duplex
2.关于tx/rx-simplex和duplex都有tx和rx接口,但是确实是有本质区别
三、tx/rx-simplex和duplex的异同
关于相同点
1.都可以实现双工
关于不同点
1.实现双工的资源不一样,实现双工,tx/rx-simplex资源占用比较多
2.tx/rx-simplex实现双工,tx和rx是相互独立的,互不影响,可以用于单工设计,也可以用于双工设计,
使用tx/rx-simplex当实现单工的时候,只需要连接一根光纤线即可;
3.duplex模式的,tx和rx是被bonding的,那么这种情况下,就需要两根光纤线才能工作,就是必须有收和发
四、数据接口
1.frame帧接口
2.stream数据流接口
五、流控设计
1.ufc设计
2.nfc设计
3.ufc + nfc设计
4.none设计
六、复位设计
1.当线速率固定的时候pma_init和pb_rst的设计可能关系不大
2.当线速率可配的时候pma_init和pb_rst的设计必须按照手册时序图来设计,也就是pma_rst先拉低,最后才拉低pb_rst,否则链路会出问题
七、关于NFC设计说明
1.大家设计aurora的时候,应该看到过rx的stream流接口上面没有ready,说明数据直接往后级灌输
2.所以需要后级加FIFO用于存储数据,但是只加FIFO并不能保证FIFO不溢出
3.nfc的作用就是通知上游对端,我这个要满了,你搞慢点,别一个劲的给我数据
4.nfc充分利用fifo的empty和full信号,当然最好用半满信号作为控制,然后下游发送nfc暂停位,
告诉上游,先休息一下,等会儿再发数据,协议里面有描述就是xon和xoff
八、关于UFC设计
1.如果只是传输数据,就不需要UFC设计
2.如果既要传输数据,还要传输命令,那么就可以使用UFC来传输命令控制。
3.关于ufc用于发送控制命令,大家可能会想,搞这么复杂干啥,我用两个stream流合并不就行了,其实也是可以的,只不过UFC还有一个优先级最高的功能,它的优先级高于数据传输
4.UFC的优先级高于USER_K的优先级,USER_K的优先级高于普通数据传输的优先级
九、数据误码
1.关于hard_error
这种错误不可以恢复,要查看原因,比较常见的几个原因:
a.参考时钟使用和配置的时钟不一致
b.时钟精度和误差比较大
c.pcb设计或者板材存在问题
d.高速连接器问题
e。其他问题
2.soft_error
关于软错误,分为大量软错误和少量软错误,如果是大量软错误,需要使用ibert进行误码和眼图测试,
找合适的参数,然后替换aurora的接口参数
关于软错误,如果是少量软错误,可以不管,当然也可以通过加扰来改善。