• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

误码率测试仪设计Verilog代码Quartus ep1c3开发板

09/15 11:20
391
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-24101QQTHa.doc

共1个文件

名称:误码率测试仪设计Verilog代码Quartus? ep1c3开发板

软件:Quartus

语言:Verilog

代码功能:

误码率测试仪

可以控制产生误码率为百分之10,1,0.1

的信号,通过内部误码率检测模块检测实际误码率并通过LCD1602显示在液晶屏上

包含模块:

1、伪随机信号产生模块-m序列

2、误码信号产生模块

3、误码率计算

4、显示内容控制

5、LCD显示控制模块

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在ep1c3开发板验证,ep1c3开发板如下,其他开发板可以修改管脚适配:

ep1c3开发板.jpg

演示视频:

设计文档:

整体仿真图

//LCD分频模块

//LCD驱动模块

//伪随机信号产生模块

//误码信号产生模块

//误码率计算模块

//显示内容控制模块

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 管脚分配

6. Testbenh

7. 仿真图

部分代码展示:

//误码率计算
module?error_rate_cal(
????input?clk,//时钟
????input?rst_n,//复位
input?seq_o,//伪码序列--作为比对的标准信号
????input?error_seq,//误码序列
output?reg?[9:0]?rate//误码率?
????);
reg?[9:0]?rate_cnt=10'd0;
always@(posedge?clk?or?negedge?rst_n)
if(!rst_n)
rate_cnt<=10'd0;
else
if(rate_cnt>=10'd1010)//计数1010
rate_cnt<=10'd0;
else
rate_cnt<=rate_cnt+10'd1;//计数
//0.1%误码率就是1000内有1个误码
//??1%误码率就是1000内有10个误码
//?10%误码率就是1000内有100个误码
//误码个数计算
reg?[9:0]?error_cnt=10'd0;
always@(posedge?clk?or?negedge?rst_n)
if(!rst_n)
error_cnt<=10'd0;
else?begin
if(rate_cnt<=1000?&&?rate_cnt>=1)//1~1000内
if(seq_o!=error_seq)//检测到误码
error_cnt<=error_cnt+1;//误码个数计算
else
error_cnt<=error_cnt;
else?if(rate_cnt==0)
error_cnt<=10'd0;//清零
end
always@(posedge?clk?or?negedge?rst_n)
if(!rst_n)
rate<=10'd0;
else?if(rate_cnt==1005)
rate<=error_cnt;//输出误码率
endmodule

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1231

  • 2-24101QQTHa.doc
    下载

相关推荐