基于verilog的 PRBS编码

本文介绍了PRBS(伪随机二进制序列)的概念及其在通信领域的应用,特别是作为高速设计中测试误码率的编码类型。PRBS码的周期长度与其阶数相关,常用阶数包括PRBS7到PRBS31。在verilog实现中,参考了Xilinx的官方写法。
摘要由CSDN通过智能技术生成

PRBS

什么是PRBS?,我相信当你点开这篇博文的时候肯定对PRBS有一定了解,或者你只是单纯了解verilog。对于什么是PRBS,百度百科给出的解释是

PRBS的验证就是PRBS的产生的反过程,具体方法是Transceiver接收端首先将收到的数据寄存一拍(并行数据),将寄存的数据进行PRBS编码,编码后的数据与最新接收到的数据进行比较,如果一致则表示PRBS校验正确。

PRBS: Pseudo-Random Binary Sequence 伪随机二进制序列。
PRBS伪随机码不仅具有随机序列的一些统计特性和高斯噪声所有的良好的自相关特征,而且具有某种确定的编码规则,同时又便于重复产生和处理,因而在通信领域应用广泛。因此PRBS编码主要是在用于在高速设计中测试高速串行通道传输误码率的一种编码类型。

编码原理

PRBS编码的原则就是当前码字是上拍码字进行PRBS编码得到了,所以校验利用这个原则来进行验证。PRBS 码具有“随机”特性,是因为在 PRBS 码流中,二进制数“ 0 ” 和“ 1 ” 是随机出现的,但是它又和真正意义上的随机码不同,这种“随机”特性只是局部的,即在周期内部,“0”和“1”是随机出现的(码流生成函数与初始码确定后,码流的顺序也是固定的),但各个周期中的码流却是完全相同的,所以我们称其为“”伪随机码。
PRBS 码的周期长度与其阶数有关,常用的阶数有 7 、 9 、 11 、 15 、 20 、 23 、 31 ,也就是我们常说的 PRBS7 、 PRBS9 、 PRBS11 、 PRBS15 、 PRBS20 、 PRBS23 、 PRBS31 。
在对高速信号链路进行误码测试时,基本上都是利用 PRBS 码流来模拟真实的线网码流环境,因为在线网中,所有的数据都是随机出现的,没有任何规律可言,而 PRBS 码流在一定程度上具有这种“随机数据”特性,二进制“ 0 ”和“ 1 ”随机出现,其频谱特征与白噪声非常接近。 PRBS 码流的阶数越高,其包含的码型就越丰富,就越接近真实的线网环境,测试的结果就越准确

verilog

verilog主要参考 xilinx官方的写法。有兴趣的同学可以参考一下。

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date:
// Design Name: 
// Module Name: PRBS_GEN
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//

`timescale 1ps/1ps

module PRBS_GEN #
  (
   parameter TCQ                 = 100,
   parameter FAMILY              = "SPARTAN6",
   parameter ADDR_WIDTH          = 29,
   parameter DWIDTH              = 32,
   parameter PRBS_CMD  
  • 3
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值