在verilog中从PRBS生成器向错误检查模块提供输入

时间:2018-05-28 07:01:28

标签: verilog fpga hdl

我在verilog中编写了模式生成器模块和错误检查模块的代码。 模式生成器模块生成PRBS-7。 错误检查器模块采用两个8位序列的序列并告诉我BER(我已经通过testbench验证了)。 但是我在从模式生成器模块向错误检查模块提供输入时遇到了麻烦。怎么做?

PRBS Generator Error checking Module

1 个答案:

答案 0 :(得分:0)

你必须制作一个包含两个模块的测试平台并将它们连接起来。

要生成人为错误,您必须更改生成器和检查器之间连接中的一个或多个位:

wire [7:0] prbs_out,checker_in;
reg  [7:0] make_error;
assign checker_in = prbs_out ^ make_error;

只要make_error全为零,位就不会改变。如果你有一个测试循环,你可以偶尔使用$ random函数发出错误:

   ... // Your major test loop
// 1 in 16 times there is an error
if (($random & 32'h0F)==0)
   make_error = 8'h01;
else
   make_error = 8'h00;

一旦这样你就可以开始玩错误向量:

   // On average 1 in 16 times there is an error
   if (($random & 32'h0F)==0)
      make_error = $random & 32'h00FF; 
   else
      make_error = 8'h00;

请注意,上面介绍了多个错误位,在某些情况下可能会检测不到。