Menu Close

高速通信中的信道编码–加扰与解扰(加性加扰实验)

在上篇文章中,我们讨论并实现了加性/加扰的算法,原理,以及实现方式。在文章中,揭示了算法的实现,设计了利用加扰,解扰演示实例,但是这个演示实例不是非常完善通信工程(目的是演示加扰,解扰的算法)。对于接收端的通讯实现,需要发送端的同步信号,这种方法对于真实的通讯来说,是很难实现的(发送端和接收端都是异步通讯的)。本文中将修改之前的工程,增加preamble + SFD , 实现工程收发同步。 这样,在接收端就可以利用preamble + SFD 所提供的同步信息, 提取出同步字,实现解扰的算法。

仿真工程代码:


 

顶层文件:


 

trans_data.v文件:


 

trans_pma.v


 

rec_pcs.v


 

recv_data.v


 

仿真结果:

图1

仿真程序中发送数据 8’h00, 8’h01, 8’h02, ….. 8’h1f , 接收端可以正常接收到8’h00, 8’h01, 8’h02, …. 8’h1f。

图2

高速通信中的信道编码–加扰与解扰(加性加扰实验)

图3

tx_pma_reload 将tx_data_temp (之前锁存的数据)装载到tx_shift 中, 同时发送tx_pma_req 请求下一个数据,只要下一个数据在reload之前准备好就可以了, 这样就给上层程序预留了很多时间(有一定的弹性)。

quartus 代码

[contend_control]

high_speed_txrx

[/contend_control]

关于程序的更多讲解, 请参照视频文件。

Posted in FPGA, FPGA 教材教案, Verilog, 教材与教案, 文章