投票器电路设计VHDL代码Quartus EPF10K开发板

名称:投票器电路设计VHDL代码Quartus  EPF10K开发板

软件:Quartus

语言:VHDL

代码功能:

投票器电路设计(平台实现)★

1)四个按键可为4人(甲乙丙丁)投票,每按下一次,票数加一

2)每2个数码管实时显示各人票数

3)设计计时按键(即投票开始),按下后投票计时开始,设置1分钟投票时间。时间到用LED灯显示,同时投票按键无效。

4)设计复位按键,按下后复位,票数清零。

5)投票结束后票数最多的数码管闪烁。

要求.jpg

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

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

演示视频:

设计文档:

设计文档.doc

1. 工程文件

Quartus9.0版本


2. 程序文件



3. 程序编译



4. RTL图


5. 管脚分配


6. 仿真图







部分代码展示:

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
   USE ieee.std_logic_unsigned.all;
--二进制转BCD码
ENTITY BCD IS
   PORT (
      clk      : IN STD_LOGIC;--时钟
      binary  : IN STD_LOGIC_VECTOR(7 DOWNTO 0);--二进制输入
      Tens    : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--十位
      Ones    : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)--个位
   );
END BCD;
ARCHITECTURE RTL OF BCD IS
   
   SIGNAL state     : STD_LOGIC_VECTOR(1 DOWNTO 0) := "00";
   SIGNAL data_buf  : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000";
   SIGNAL Tens_buf : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000";
   SIGNAL Ones_buf : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0000";
BEGIN
   PROCESS (clk)
   BEGIN
      IF (clk'EVENT AND clk = '1') THEN
         CASE state IS
            WHEN "00" =>
               data_buf <= binary;
               Tens_buf <= "00000000";
               Ones_buf <= "0000";
               state 
               IF (data_buf >= "00001010") THEN--是否大于10
                  data_buf <= data_buf - "00001010";--减10
                  Tens_buf <= Tens_buf + "00000001";--十位加1
                  Ones_buf <= Ones_buf;
                  state <= "01";
               ELSE
                  data_buf <= data_buf;
                  Tens_buf <= Tens_buf;--十位
                  Ones_buf <= data_buf(3 DOWNTO 0);--个位
                  state <= "10";
               END IF;

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 投票器电路设计VHDL代码Quartus EPF10K开发板

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

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