名称:基于FPGA的3位十进制密码锁VHDL代码Quartus DE2-115开发板(文末获取)
软件:Quartus
语言:VHDL
代码功能:
借助EDA工具和设计方法,学习硬件描述语言VHDL用编程的方法来设计电路,在QUARTUSⅡ软件环境中,基于EDA实验室的开发装置DE2-115,其FPGA芯片型号为EP4CE115F29C7,进行电路的测试和仿真分析。系统功能要求:采用3位十进制数字作为内置密码,修改密码必须重置逻辑;系统通电后必须关上密码锁门,如果输入密码正确,密码器将启动开启装置,用绿色LED灯表示;如果密码错误,则红色LED灯报警;如果按错号码,可在开锁前按启动键消除输入而重新输入密码;等事务处理完毕后,按上锁键使系统进入安锁等待状态。系统分为控制器和受控电路两部分,受控电路由消抖电路、编码器、比较器、数据选择器(密码预置)、触发器等模块组成
本代码已在DE2-115开发板验证,DE2-115开发板如下,其他开发板可以修改管脚适配:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 管脚分配
6. Testbench
7. 仿真图
整体仿真图
显示模块
密码输入模块
密码锁控制模块
密码修改模块
部分代码展示:文章来源:https://www.toymoban.com/news/detail-839446.html
LIBRARY ieee; USE ieee.std_logic_1164.all; --顶层模块 ENTITY mimasuo IS PORT ( clk_in : IN STD_LOGIC;--50MHz key_0 : IN STD_LOGIC;--按键输入0 key_1 : IN STD_LOGIC;--按键输入1 key_2 : IN STD_LOGIC;--按键输入2 key_3 : IN STD_LOGIC;--按键输入3 key_4 : IN STD_LOGIC;--按键输入4 key_5 : IN STD_LOGIC;--按键输入5 key_6 : IN STD_LOGIC;--按键输入6 key_7 : IN STD_LOGIC;--按键输入7 key_8 : IN STD_LOGIC;--按键输入8 key_9 : IN STD_LOGIC;--按键输入9 confirm : IN STD_LOGIC;--确认键(开锁) modify : IN STD_LOGIC;--修改键(更改) lock_up : IN STD_LOGIC;--锁住键(上锁) delect : IN STD_LOGIC;--删除键(清除) led_open : OUT STD_LOGIC;--绿灯,开锁指示信号,高电平表示开锁,低电平表示锁住 led_red : OUT STD_LOGIC;--红灯 HEX0 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);--数码管显示密码 HEX1 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);--数码管显示密码 HEX2 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0)--数码管显示密码 ); END mimasuo; ARCHITECTURE trans OF mimasuo IS --分频模块 COMPONENT CLOCK IS-- Divide 50MHz to 100Hz --GENERIC(D : INTEGER := 50);--仿真时改小为50加快仿真速度,实际上板验证时改为500000 GENERIC(D : INTEGER := 500000);--仿真时改小为50加快仿真速度,实际上板验证时改为500000 PORT(CLK: IN STD_LOGIC; DAV: OUT STD_LOGIC); END COMPONENT; --例化重置模块 COMPONENT reset_password IS PORT ( clk : IN STD_LOGIC; password : IN STD_LOGIC_VECTOR(11 DOWNTO 0); correct_password : OUT STD_LOGIC_VECTOR(11 DOWNTO 0); confirm : IN STD_LOGIC; current_state : IN STD_LOGIC_VECTOR(2 DOWNTO 0) ); END COMPONENT; --例化显示模块 COMPONENT display IS PORT ( clk : IN STD_LOGIC; password : IN STD_LOGIC_VECTOR(11 DOWNTO 0);--当前输入密码 HEX0 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);--数码管显示密码 HEX1 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);--数码管显示密码 HEX2 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0)--数码管显示密码 ); END COMPONENT; --例化密码输入模块 COMPONENT mima_input IS PORT ( clk : IN STD_LOGIC; key_0 : IN STD_LOGIC; key_1 : IN STD_LOGIC; key_2 : IN STD_LOGIC; key_3 : IN STD_LOGIC; key_4 : IN STD_LOGIC; key_5 : IN STD_LOGIC; key_6 : IN STD_LOGIC; key_7 : IN STD_LOGIC; key_8 : IN STD_LOGIC; key_9 : IN STD_LOGIC; delect : IN STD_LOGIC;--删除键 current_state : IN STD_LOGIC_VECTOR(2 DOWNTO 0); password : OUT STD_LOGIC_VECTOR(11 DOWNTO 0) ); END COMPONENT; --例化密码锁控制模块 COMPONENT mimasuo_ctrl IS PORT ( clk : IN STD_LOGIC; password : IN STD_LOGIC_VECTOR(11 DOWNTO 0); correct_password : IN STD_LOGIC_VECTOR(11 DOWNTO 0); confirm : IN STD_LOGIC; modify : IN STD_LOGIC; lock_up : IN STD_LOGIC; led_open : OUT STD_LOGIC; current_state : OUT STD_LOGIC_VECTOR(2 DOWNTO 0) ); END COMPONENT;
源代码
扫描文章末尾的公众号二维码文章来源地址https://www.toymoban.com/news/detail-839446.html
到了这里,关于基于FPGA的3位十进制密码锁VHDL代码Quartus DE2-115开发板的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!