自动数字日历设计VHDL代码ISE仿真
名称:自动数字日历设计VHDL代码ISE仿真
软件:ISE
语言:VHDL
代码功能:
自动数字日历设计
在实验二的基础上,设计自动数字日历,用七段数字显示器显示年(后2位)、月、日和星期数,在计日脉冲的作用下,自动完成1-12月的月、日及星期的计数和显示。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
设计文档:
1. 工程文件

2. 程序文件



3. 管脚分配

4. 程序编译

5. Testbench

6. 仿真图







部分代码展示:
LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; ENTITY calendar IS PORT ( sysclk : IN STD_LOGIC;--时钟 reset_n : IN STD_LOGIC;--复位--k1 day_en : IN STD_LOGIC;--计日脉冲 year_h_dis : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--年高2位 year_l_dis : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--年低2位 month_dis : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--月 day_dis : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--日 week_dis : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)--星期 ); END calendar; ARCHITECTURE RTL OF calendar IS SIGNAL year_h : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00010100"; SIGNAL year_l : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00001000"; SIGNAL month : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0001"; SIGNAL day : STD_LOGIC_VECTOR(4 DOWNTO 0) := "11110"; SIGNAL week : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0001"; SIGNAL month_flag : STD_LOGIC; BEGIN year_h_dis <= year_h; year_l_dis <= year_l; month_dis <="0000" & month; day_dis <="000" & day; week_dis <= week; -- month_flag <= std_logic((day = "11100") AND NOT((year_l(1 DOWNTO 0) = "00" AND year_l /= "00000000" OR year_h(1 DOWNTO 0) = "00" AND year_l = "00000000")) AND (month = "0010") --OR (day = "11101") AND (year_l(1 DOWNTO 0) = "00" AND year_l /= "00000000" OR year_h(1 DOWNTO 0) = "00" AND year_l = "00000000") AND (month = "0010") --OR (day = "11110") AND ((month = "0100") OR (month = "0110") OR (month = "1001") OR (month = "1011")) --OR (day = "11111") AND ((month = "0001") OR (month = "0011") OR (month = "0101") OR (month = "0111") OR (month = "1000") OR (month = "1010") OR (month = "1100"))); --闰月判断 PROCESS (day, month , year_l, year_h) BEGIN IF ((day = "11100") AND NOT(((year_l(1 DOWNTO 0) = "00" AND year_l /= "00000000") OR (year_h(1 DOWNTO 0) = "00" AND year_l = "00000000"))) AND (month = "0010")) THEN month_flag<='1'; ELSIF((day = "11101") AND ((year_l(1 DOWNTO 0) = "00" AND year_l /= "00000000") OR (year_h(1 DOWNTO 0) = "00" AND year_l = "00000000")) AND (month = "0010"))THEN month_flag<='1'; ELSIF((day = "11110") AND ((month = "0100") OR (month = "0110") OR (month = "1001") OR (month = "1011")) )THEN month_flag<='1'; ELSIF((day = "11111") AND ((month = "0001") OR (month = "0011") OR (month = "0101") OR (month = "0111") OR (month = "1000") OR (month = "1010") OR (month = "1100")))THEN month_flag<='1'; ELSE month_flag<='0'; END IF; END PROCESS;
代码文件(付费下载):
![]()
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 自动数字日历设计VHDL代码ISE仿真
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 自动数字日历设计VHDL代码ISE仿真
发表评论
模板文件不存在: ./template/plugins/comment/pc/index.htm