基于FPGA的并行PRBS实现方法

本文探讨了在高速场景下,基于FPGA的并行PRBS实现方法优于串行的原因,通过并行处理,时钟频率可降至原来的1/8,解决了高速信号产生的延时问题。详细介绍了并行实现思路,包括16位PRBS15的生成,并给出了代码及仿真结果验证,证明其正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么要并行

简单来说,串行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[
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值