随机数生成电路设计VHDL代码Quartus仿真

名称:随机数生成电路设计VHDL代码Quartus仿真

软件:Quartus

语言:VHDL

代码功能:

(1)设计并实现一个随机数生成电路,每2秒随机生成一个0~999之间的数字并在数码管上显示生成的随机数

(2)数码管选通序列cat统一为1:“11111101“111101”,“1111”,即使用第一,第二,第三数码管显示;

(3)为系统设置一个复位键,复位后数码管显示自己学好的后三位,2秒后再开始每2秒生成并显示随机数,可以不需要防抖

随机数生成电路.png

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


演示视频:

设计文档:

设计文档.doc

1. 工程文件

Quartus9.0软件版本


2. 程序文件


3. 程序编译


4. RTL图


5. 仿真图

整体仿真图



M序列随机数仿真图



10位2进制转换为3位十进制仿真图


数码管显示模块仿真图




部分代码展示:

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
   USE ieee.std_logic_unsigned.all;
--数码管显示模块
ENTITY display IS
   PORT (
      clock       : IN STD_LOGIC;
      ran_hun      : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
      ran_ten      : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
      ran_one      : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
      bit_select  : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
      seg_select  : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
   );
END display;
ARCHITECTURE behave OF display IS
   
   SIGNAL geshu        : STD_LOGIC_VECTOR(1 DOWNTO 0) := "00";
   SIGNAL display_data : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0000";
BEGIN
--个数0~2,因为只需要显示3个数
   PROCESS (clock)
   BEGIN
      IF (clock'EVENT AND clock = '1') THEN
         IF (geshu = "10") THEN--0~2
            geshu <= "00";
         ELSE
            geshu --百位
               bit_select <= "11111110";--数码管选中序列
               display_data --十位
               bit_select <= "11111101";--数码管选中序列
               display_data --个位
               bit_select <= "11111011";--数码管选中序列
               display_data 
         END CASE;
   END PROCESS;

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 随机数生成电路设计VHDL代码Quartus仿真

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员