• 方案介绍
  • 相关推荐
申请入驻 产业图谱

串行数据通信系统设计Verilog代码VIVADO仿真

05/13 15:09
1053
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

名称:串行数据通信系统设计Verilog代码VIVADO仿真

软件:VIVADO

语言:Verilog

代码功能:

一种串行数据通信系统

图1为一种数据通信系统的示意图,图2为数据包格式。

图1 数据通信系统示意图

图2 数据包格式

要求1:系统为同步设计。TX模块通过串行通道向RX模块发送串行数据,串行数据中包含有效数据和无效数据,串行通道仅有1位时钟和1位数据,RX应正确接收TX发来的有效数据,不接收无效数据。自定义标记有效数据和无效数据的方法。

要求2:在要求1的基础上,TX模块以数据包的形式向RX发送串行数据,TX发送的数据包来源于TS0、TS1、TS2...TSn等源节点模块(n不小于3)。每个源节点模块产生独立的数据包,产生数据包的事件由输入端口控制(该输入端口有脉冲信号则产生一个数据包)。数据包格式如图2所示。header字段为数据包包头,格式自定义,但须包含

源节点模块序号信息。payload字段为需要传输的数据载荷,格式自定义。TX与各源节点模块之间的接口自定义。

要求3:RX接收TX发送的数据包,并对收到的数据包进行解析,识别数据包来源于哪个源节点模块,并将数据包中的payload(不含header)发送给具有相同序号的阱节点模块。RS0、RS1、RS2...RSn为阱节点模块(n不小于3,且与源节点模块数量相同)。RX与各阱节点模块之间的接口自定义。

要求4:编写Testbench,对设计进行仿真。其中一个源节点模块产生的数据包中的payload应包含学号、姓名拼音的ASCII码等信息,并在文档中有清晰截图和文字说明。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

演示视频:

部分代码展示:

//接收
module RX(
input clock,//时钟
input data ,//数据
input reset,//复位
output [55:0] receive_data//接收到的有效数据
);
//数据包格式:
//header:ABCD
//paylod: 0123456789
//使用数据接收
reg [55:0] data_receive;
always@(posedge clock or posedge reset)
if(reset)
data_receive<=56'd0;//复位
else begin
data_receive[0]<=data;//将输入的数据移入最低位
data_receive[55:1]<=data_receive[54:0];//原数据整体左移1位
end

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1361

相关推荐