名称:随机数字生成器设计Verilog代码Quartus? DE2开发板
软件:Quartus
语言:Verilog
代码功能:
开发一个随机显示的设计DE2板7段显示器上的十进制数。随机数范围由1到59。
具体操作:
1.操作员按key1开始这个序列。
2.然后操作员按key2键挑选出的随机数字显示在HEX32上8秒。
3.然后系统再次开始计数,重复第2阶段,但是无法再次选择以前选择的号码。
4.重复此过程,直到选定的数字数等于7。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在DE2开发板验证,DE2开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
1.?工程文件
2.?程序文件
3.?程序编译
4.?RTL图
5.?Testbench
6.?仿真图
重复7次后停止
部分代码展示:
//随机1~59 module?Random_number( input?clk_in,//50MHz input?reset,//复位,低电平 input?key1,//开始,按下低电平 input?key2,//取随机数,按下低电平 output?[7:0]HEX3,//显示数码管3 output?[7:0]HEX2?//显示数码管2 ); wire?[5:0]?data_out; wire?[3:0]?data_ten;//输出十位 wire?[3:0]?data_one;//输出个位 wire?clk_1Hz; wire?[3:0]?BCD_10;//十位 wire?[3:0]?BCD_1;//个位 //分频模块,50M分频到1Hz fenping?i_fenping( .?clk_in(clk_in), .?clk_1Hz(clk_1Hz)//输出1Hz ); //随机数状态控制模块 random_state?i_random_state( .?clk_in(clk_in),//50MHz .?reset(reset),//复位 .?key1(key1),//开始 .?key2(key2),//取随机数 .?clk_1Hz(clk_1Hz),//1Hz信号,用于计1秒 .?data_out(data_out)//输出随机数 ); //二进制转BCD模块 BCD?i_BCD( .?data_in(data_out), .?BCD_10(BCD_10),//十位 .?BCD_1(BCD_1)//个位 ); //数码管译码 HEX_decode?i_HEX_decode( .?BCD_10(BCD_10),//输出十位 .?BCD_1(BCD_1),//输出个位 .?HEX3(HEX3),// .?HEX2(HEX2)?// );
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1206
阅读全文