Menu Close

高速串行通信接收端乒乓Buffer数据缓冲Verilog代码

在串行高速通信的发送端加入乒乓Buffer缓冲后,经过仿真可以看出,的确有效的缓解了异步过程中数据突发性,随机性与过程调度的冲突。同时也打破了数据链路层与应用层的紧耦合的逻辑,降低了设计的复杂度。在接收端也面临同样的问题,因此也需要加入乒乓Buffer机制有效缓冲调度机制带来的压力。在本高速通信的案例工程中,经研究在接收端,乒乓Buffer仍然插入到应用层与数据链路层之间是最合适的。

1. 乒乓Buffer例化

由于在数据接收端依然使用TDP RAM, 而且两边都是16位接口,因此直接使用发送端生成的TDP RAM进行例化即可,不需要重新生成新的IP。数据链路层的 乒乓Buffer例化如下:


其中双端口RAM的b端口用于和物理层(Phy)做接口, 而a端口用于与应用层的接口。

2. 数据链路层的程序设计

参照数据缓冲与乒乓Buffer 的交换机制,以及与物理层的握手机制,数据链路层代码如下:

2. 顶层修改后的文件


 

4.应用层程序

应用层的代码(这里用仿真程序模拟应用层程序)


 

新的应用程序只展示了应用层读数据的过程,并在该程序中加了新的调度。

5.仿真波形:

图1-1  数据链路层仿真波形1

观察双口RAM b端口的控制字的值,数据链路层与物理层的握手。

图1-2  数据链路层仿真波形2

图1-2中注意观察写关键字的情况以及乒乓Buffer的交换。

图2-1  观察调度的时间分配

 

图2-2  观察接收端数据的读取

程序的细节解释请观看对应的视频。

Posted in FPGA, FPGA 教材教案, FPGA硬件资源, IP开发, Verilog, 开发语言, 教材与教案, 文章, 集成电路