名称:误码率测试仪设计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开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
整体仿真图
//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
阅读全文
391