软件: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
阅读全文