符合学术规范的学术服务

基于FPGA的数据编码电路设计

分类:科技论文 时间:2019-04-29

  摘要:在数据传输系统中,数据在传输的过程里会存在一些冗余信息,而且传输的数据需要预先进行编码处理。针对数据传输过程中的问题,文中设计了一种数据编码电路。该电路能将接收到的数据以四种不同的编码方式发送出去,而且可以将传输数据中的冗余信息去除。该数据编码电路通过Vivado硬件仿真平台进行仿真验证,使用XilinxZedBoardFPGA开发板来实现。实验结果表明,本方案合理地使用了片上资源,在满足电路在时序与功耗上的要求的同时,也满足了功能上的要求。

  关键词:半导体技术;数据编码;VerilogHDL;FPGA

电子设计工程

  科技的进步推动着高速信息处理技术的发展,在工业生产、科研探索、消费电子等诸多领域中,信号处理传输的应用与日俱增[1-5]。当今世界科学技术快速发展,使得通信、雷达、航空航天等军事或民用的各个领域对信息转换的要求越来越高,因此对数据编码的需求越来越广泛[6-10]。数据编码电路是不同模块电路之间的桥梁,具有快速获取信息、存储信息、处理信息和发送信息的作用。数据编码电路能对信号快速、有效地处理,尤其是在军事领域和通信领域,早些将信息处理,这往往能达到至关重要的效果[11-13]。

  本文基于现场可编程门阵列(FieldProgrammableGateArray,FPGA)设计了一种数据编码电路,解决数据传输过程中数据需要编码转换的问题。

  1数据编码电路系统

  1.1数据编码电路功能

  数据通过数据线DIN采用串行方式不间断地输入该电路,并且与时钟CLK_30MHz同步。该电路根据模式MODE的设定,对接收到的有效数据进行重新排列。通过系统时钟CLK_48MHz产生不同频率的输出信号,即同步时钟信号CLK_OUT。为了使得通信持续进行,该电路需要使得接收有效数据的时间与输出有效数据的时间基本一致。

  最终将有效信号分别输出到三个数据输出端DOUT_A、DOUT_B和DOUT_C上,同时产生有效指示信号VALID。数据编码电路的主要功能包括:①接收数据,识别有效数据,并存储数据;②根据模式,产生不同频率的输出时钟,使得接收有效数据的时间与输出有效数据的时间基本一致;③根据模式,对三个端口的数据进行编码转换,串行发送数据。

  1.2数据编码电路结构

  接收模块识别数据,组装数据并且产生写使能与写地址;分频模块得到输出的频率;存储模块将得到的数据存储与读出;发送模块将数据从存储模块读出,将并行数据串行输出,并且与控制模块通过握手进行协同操作;控制模块产生读使能与读地址来控制存储模块,根据模式控制分频模块的分频状态,并且与发送模块进行握手通信[14-15]。

  2硬件模块设计

  对于输入数据端口DIN,每帧输入数据由720组数据组成,每组数据由八位有效数据和两位无效数据构成。对于输出数据端口DOUT_A、DOUT_B和DOUT_C,输出数据只输出不同模式下的有效数据。硬件电路实现了输入到输出之间的数据处理过程。

  2.1接收模块

  接收模块由三部分电路组成,即串并转换电路、写地址产生电路与写使能产生电路。首先,串并转换电路识别帧头;再将串行数据DIN并行化,得到数据传输过程中的有效信号;之后产生相应的写地址与写使能。接收模块每次并行化的数据由6组有效数据构成。这可以减少了写使能与写地址的变化频率,从而降低了动态功耗。

  2.2存储模块

  存储模块是一个典型的伪双口RAM,一个端口只读,另一个端口只写。伪双口RAM存储了两帧数据,根据地址将该存储模块分为两个部分,这两部分分别存储了两帧数据。当一部分数据进行写操作,另一部分数据可以进行读操作,这完成了数据的无缝缓冲和处理。这两部分可以同时分别进行读或写,从而实现典型的乒乓操作。存储模块需要耗费大量的寄存器资源。通过调用相应的IP核,并且使用块RAM来实现,不仅合理地使用了FPGA资源,而且降低了电路的功耗。

  2.3控制模块

  控制模块调节各个模块进行协同工作。该模块通过接收模块收到数据之后生成的写地址与写使能,可以得到数据是否已经读入完毕;根据与发送模块间的握手信号REC_ACK产生读使能与读地址,从而控制存储模块;通过与发送模块的握手进行协调通信;根据MODE端口来控制分频模块产生不同频率的信号。

  2.4发送模块

  发送模块通过与控制模块协调得到读数据,并且将读数据分解成相应的串行输出数据。该电路主要由握手电路与并串转换电路构成。在握手电路中,发送模块REC_ACK拉高表明已准备好接收下一组读数据。而控制模块据此在产生读使能与读地址后拉高KEY信号,表明读数据已经有效,从而实现了跨时钟域的握手操作。并串转换电路则根据模式来对数据进行拆解与并串转换操作。

  3实验结果分析

  本实验首先在Modelsim上进行功能仿真,之后使用Xilinx公司的Vivado2017.1进行硬件开发。FPGA使用XilinxZedBoardZynqEvaluationandDevelopmentKit开发板。

  3.1功能仿真

  通过功能仿真对电路实现的功能进行验证分析。首先,制定了合理的仿真验证方案,保证该电路的所有功能都测试;其次,通过观察仿真结果确保功能的正确性。

  3.1.1仿真验证方案

  在进行仿真验证时,首先在MATLAB中用序列发生器产生随机的输入数据,从而得到了发送数据的文本文档;再将得到的文本文档的数据读出,并以串行的方式按照时钟数据输入到DIN端口,从输出端口可以得出相应数据;最后根据输出端口的数据与预期的输出结果是否一致来判断电路是否符合要求,从而验证了电路功能的正确性。

  ①激励对电路信号进行初始化,产生复位信号、系统时钟与同步时钟,之后选择电路模式;②输入端口DIN按照同步时钟输入数据的帧头;③输入端口DIN将输入数据按照同步时钟进行串行发送;④将经过电路处理后的数据与事先估计的结果进行比对,若一致,则电路正确。根据模式的不同,将电路分为四个测试点。在测试点1、2、3和4中,MODE分别设定为0、1、2和3,观察输出是否满足数据输出规则。flag为输出是否正确的标志位,如果仿真输出结果与预期结果相同,则flag为1,否则为0。

  4结束语

  针对数据传输过程中数据的特点,提出了一种数据编码电路。该编码电路合理划分电路模块,实现了四种不同的编码方式。实验结果表明,该电路满足功能、资源、时序与功耗的要求,达到相应指标。

  参考文献:

  [1]张平.基于FPGA的高速8B/10B解码电路设计[D].合肥:安徽大学,2016.

  [2]李长庆,程军,李梁,等.采用并行8b/10b编码的JESD204B接口发送端电路设计[J].微电子学与计算机,2017,34(8):70-75.

  [3]吴光珩,张兴明,刘冬培,等.基亏PRBS检测的8B/10B编码器设计[J].电子设计工程,2017,25(20):56-59.

  [4]史策,韩焱,李剑,等.SOPC的多路信号同步采集编码系统[J].单片机与嵌入式系统应用,2017,17(10):33-36.

  [5]夏宇闻.Verilog数字系统设计教程.第3版[M].北京:北京航空航天大学出版社,2013.

  [6]吴厚航.深入浅出玩转FPGA[M].北京:北京航空航天大学出版社,2010.

  相关刊物推荐:《电子设计工程》Electronic Design Engineering(半月刊),创刊于1993年,原名《国外电子元器件》,主要介绍具有较高学术水平的、电子领域相关的理论、技术、方法的专业性技术期刊。17年来,《电子设计工程》知识涵盖面广、影响力度大,以弘扬科技创新、扩展学术领域为契机,为科研事业传播知识、积累学术成果以及国家科技发展做出了诸多贡献。

  

获取发表周期短、审稿速度快、容易录用的期刊

* 稍后学术顾问联系您

学术顾问回访> 详细沟通需求> 确定服务项目> 支付服务金> 完成服务内容

SCI期刊

国际英文期刊

核心期刊

国外书号出书

国内纸质出书

2023最新分区查询