软件:Quartus
语言:VHDL
代码功能:
任务及要求
硬件描述语言VHDL是一种用形式化方法描述数字电路和系统的语言。利用这种语言,数字电路系统的设计可以从上层到下层(从抽象到具体)逐层描述自己的设计思想,用一系列分层次的模块来表示复杂的数字系统。然后,利用电子设计自动化(EDA)工具,逐层进行仿真验证。设计一个用于电子时钟的控制电路,功能要求如下:
1.用BCD码输出显示当前时间,显示格式时时分分”;
2.可手动校时:分别对时、分进行校时(正、反向)。
3.设置闹铃。当显示的闹铃时间到,输出振铃脉冲,直到输入清除信号后停止。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. Testbench
6. 仿真图
整体仿真图
分频模块
计时模块
闹铃模块
显示模块
部分代码展示:
LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY Digital_clock IS PORT ( clk_in : IN STD_LOGIC;--50MHz clr : IN STD_LOGIC;--清除 key_hour : IN STD_LOGIC;--修改小时 key_minute : IN STD_LOGIC;--修改分钟 key_bell_hour : IN STD_LOGIC;--修改闹铃小时 key_bell_minute : IN STD_LOGIC;--修改闹铃分钟 bell_out : OUT STD_LOGIC;--闹铃 minute_time_one :out STD_LOGIC_VECTOR(3 DOWNTO 0) ;--BCD 分个位 minute_time_ten :out STD_LOGIC_VECTOR(3 DOWNTO 0) ;--BCD 分十位 hour_time_one :out STD_LOGIC_VECTOR(3 DOWNTO 0) ;--BCD 时个位 hour_time_ten :out STD_LOGIC_VECTOR(3 DOWNTO 0) --BCD 时十位 ); END Digital_clock; ARCHITECTURE trans OF Digital_clock IS --模块声明 COMPONENT Bell IS PORT ( clk_in : IN STD_LOGIC; clr : IN STD_LOGIC;--清除 key_bell_hour : IN STD_LOGIC;--修改闹铃小时 key_bell_minute : IN STD_LOGIC;--修改闹铃分钟 hour_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);--时 minute_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);--分 bell_out : OUT STD_LOGIC--整点铃 ); END COMPONENT; --显示模块 COMPONENT display IS PORT ( clk : IN STD_LOGIC; hour_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);--时 minute_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);--分 minute_time_one :out STD_LOGIC_VECTOR(3 DOWNTO 0) ; minute_time_ten :out STD_LOGIC_VECTOR(3 DOWNTO 0) ; hour_time_one :out STD_LOGIC_VECTOR(3 DOWNTO 0) ; hour_time_ten :out STD_LOGIC_VECTOR(3 DOWNTO 0) ); END COMPONENT; COMPONENT fenping IS PORT ( clk_in : IN STD_LOGIC; clk_1Hz : OUT STD_LOGIC ); END COMPONENT; COMPONENT jishi IS PORT ( clk_in : IN STD_LOGIC; key_hour : IN STD_LOGIC;--修改小时 key_minute : IN STD_LOGIC;--修改分钟 clk_1Hz : IN STD_LOGIC; hour_time : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); minute_time : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); second_time : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ); END COMPONENT; SIGNAL hour_time : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL minute_time : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL second_time : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL clk_1Hz : STD_LOGIC;
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1255
阅读全文
521