2.1 为啥接口信号那么多?


上一章是个引子,涉及到GTP的少之又少,这章算是正式踏上我们对GTP的征途。本章的主要解决如下三个问题

1、 为什么!为什么?接口信号那么多???

2、 GTP的硬核长什么模样? 

3、 GTP核的程序是个什么样的架构?


 image.png

image.png

第一部分:为什么!为什么?接口信号那么多???

  看下图是我对GTP核的例化,为了不让截图太长,我中间还隐藏了些,大概有100多行吧。而且啊,这还只是一通道,我们可以最多例化四通道呢,那代码长度可想而知。

image.png 

 我上章说了,直接控制6个信号就可以实现数据收发了,为什么要整这么多?因为通用和特制是一对矛盾。我们在写代码的时候也应该有过这样的经验,如果一个模块不具备通用性,那么可以写得很精简,如果要考虑诸多场合,具备广泛的适用性,那么就会加很多内容来满足需求。这原本就是一堆矛盾,问题就在于如何取舍。

    GTP核就是在追求极致的通用性,具有广泛的适用性。因为通用,所以繁杂。它就好比一块猪肉,原汁原味的呈现给你,你可以红烧、可以炒菜、可以卤肉、可以腌制,随你之心,如你所愿,怎么着都行。GTP也是,你可以自定义协议直接用它,也可以在它基础上开发PCIE、开发SRIO、开发SATA等等等。所以还是那句话,因为通用,所以繁杂。

 另外,我们在开发一个功能模块时候,接口会有什么信号呢?时钟、复位、配置、状态监测、数据的输入输出。GTP亦是如此,那么多的信号无外乎这几种,而之所以多,也是因为他并不是如ram那般一个简单的核,它要做的事是实现高速串行通讯,是在并行通讯遇到瓶颈后新的解决方案,是提高数据吞吐量的依靠,其复杂程度可不一个串并转换可以概况的。

 综上,一个兼复杂与通用与一身的核,自然接口显得不友好,但只要静下心来去研究,就会发现,眼睛欺骗了你。





快来扫描下方二维码关注公众号,领取站内所有相关资料,所有哦~

有建议、有需求、有疑问、联系我