基于FPGA的并行PRBS实现方法

为什么要并行

简单来说,串行PRBS的产生在高速时极不可靠。
因为构成寄存器的触发器运行速度在串行时必须与传输速度一致,其运算速度的提高完全依靠于时钟的速度。当信号速率高达上GHz时,每比特的宽度要小于1 ns。而已商品化的高速GaAs器件在2GHz的触发时钟到输出的延时仍有0.7ns,普通的高速器件延时更大。电路中连接器件的印制线路也会产生传输延时,若传输延时超过时钟周期,触发器就会产生误触发。
采用并行方式,以字节的方式产生伪随机码,即每个时钟脉冲输出并行8位数据信号,形成8路低速伪随机序列。可以将工作时钟频率降低到串行产生伪随机码的时钟频率的1/8,也就是说要产生1GHz时钟频率的伪随机序列,只需125MHz的时钟驱动即可。

并行实现思路

以生成16位的prbs15信号为例,本原多项式是X15+X14+1
PRBS发生器通常是由线性反馈移位寄存器(linear feedback shift registers,LFSR)和异或电路组成。
串行实现思路:将寄存器的第14位和第13位做异或运算后,输入到寄存器的第0位,寄存器的第14位同时也是PRBS15发生器的输出。
并行实现思路:给定初始的15位shift,做异或后的结果存入fb,输出的16位如图所示;下一个clk,fb的低15位构成新的shift,再做异或运算。
在这里插入图片描述

代码

module prbs15( //16位并行的prbs15 
	input		wire				clk,
	input		wire				rst,
	input		wire	[14:0]	prbs_ini,
	output	wire	[15:0]	prbs_out	
);

reg [14:0] shift; //移位寄存器
wire [15:0] data_fb; //xor feedback
//移位寄存
always@(posedge clk) begin
	if(rst)
		shift <= prbs_ini;
	else begin
		shift <= data_fb[14:0]; 
	end
end
//异或
assign data_fb[15:2] = shift[14:1]^shift[13:0];
assign data_fb[1
  • 12
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于FPGA并行PRBS序列实现是通过使用FPGA芯片的并行处理能力来生成并行伪随机二进制序列的一种方法PRBS(Pseudo Random Binary Sequence)是一种伪随机序列,具有随机性和统计性质。在通信系统中,PRBS序列常用于误码率测试、通信链路测试以及编码器的性能评估等应用。 在FPGA实现并行PRBS序列的主要步骤包括生成器设计和时钟控制。 生成器设计是指设计并实现PRBS序列的算法和逻辑。FPGA芯片中的LUT(Look-Up Table)和寄存器资源可以用来存储和计算PRBS序列。通过合理的设计和编程,可以实现不同长度的PRBS序列生成。 时钟控制是指通过FPGA芯片的时钟信号来控制PRBS序列的产生。FPGA芯片的时钟信号可以用作计数器的时钟源,通过控制计数器的计数速度来生成PRBS序列。在时钟控制中,还需要考虑到PRBS序列的自动重置,保证序列的周期性。 实现并行PRBS序列的好处是可以提高生成速度和数据处理效率。由于FPGA芯片具有并行处理的能力,可以同时生成多个并行PRBS序列,从而加快序列的产生速度。此外,通过并行处理,可以更高效地实现一些与PRBS序列相关的功能,如序列标记、校验等。 总之,基于FPGA并行PRBS序列实现能够在不同的应用场景中发挥重要作用,并且通过充分利用FPGA芯片的并行处理能力,可以提高序列生成速度和数据处理效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值