EDA期末实验报告 数字钟的设计与制作

上传人:1666****666 文档编号:38321467 上传时间:2021-11-06 格式:DOC 页数:12 大小:270KB
返回 下载 相关 举报
EDA期末实验报告 数字钟的设计与制作_第1页
第1页 / 共12页
EDA期末实验报告 数字钟的设计与制作_第2页
第2页 / 共12页
EDA期末实验报告 数字钟的设计与制作_第3页
第3页 / 共12页
点击查看更多>>
资源描述
EDA设计报告题 目: 数字钟的设计与制作专 业: 电子信息工程 目录1.设计思路 3 1.1总体结构. 32.方案论证与选择 3 2.1.数字钟方案论证与选择. 33.单元模块设计部分 3 3.1.CN6模块的设计. 3 3.2.SEL61模块的设计. 4 3.3.DISP模块的设计 5 3.4.K4模块的设计 6 3.4.1.CNT10模块的设计. 6 3.4.2.CNT6模块的设计. 7 3.4.3.CNT101模块的设计 8 3.4.4.CNT61模块的设计. 9 3.4.5 CNT23模块的设计. 104.系统仿真 11 4.1.数字钟仿真图. 11 4.2.数字钟编译报告. 12 4.3.数字钟原理图 12EDA数字钟设计中文摘要:数字钟学习的目的是掌握各类计数器及它们相连的设计方法;掌握多个数码管显示的原理与方法;掌握FPGA技术的层次化设计方法;掌握用VHDL语言的设计思想以及整个数字系统的设计。此数字钟具有时,分,秒计数显示功能,以24小时为计数循环;能实现清零,调节小时,分钟以及整点报时的功能。关键词:数字钟,计数器,数码管,FPGA,VHDL1 设计思路基于VHDL语言,用Top_Down的思想进行设计。1.1 确定总体结构,如图1-1所示。 图1-12. 方案论证与选择2.1 数字钟方案论证与选择:方案一是用CN6无进位六进制计数器选择数码管的亮灭以及对应的数,循环扫描显示,用SEL61六选一选择器选择给定的信号输出对应的数送到七段码译码器。K4模块进行复位,设置小时和分,输出整点报时信号和时,分,秒信号。作品中选方案二。方案二也采用自顶向下的设计方法,它由秒计数模块,分计数模块,小时计数模块,报警模块,秒分时设置模块和译码模块六部分组成。两者设计方式,功能实现方面都差不多,作品中选择的是方案一。3. 单元模块设计部分单元模块设计部分分四个部分,介绍数字钟选择显示数码管和对应的数模块CN6,信号选择模块SEL61,七段码译码器模块DISP和复位,秒,分,时显示,设置模块。3.1 CN6模块的设计即无进位的六进制计数器,由此提供选择信号,可提供选择信号,选择显示的数码管及对应的数,循环扫描显示。如图1-2 图1-2library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cn6 is port(res,clk : in std_logic; cout : out std_logic_vector(2 downto 0);end cn6;architecture rtl of cn6 is signal q : std_logic_vector(2 downto 0);begin process(res,clk) begin if res=0 then q=000; elsif(clkevent and clk=1) then if(q=5) then q=000; else q=q+1; end if; end if; end process;coutcout:=a; when 001=cout:=b; when 010=cout:=c; when 011=cout:=d; when 100=cout:=e; when others=cout:=f; end case; q qqqqqqqqqqq=0000000; end case; end process;end one;3.4 K4模块的设计图1-5如图1-5,RES是整个系统的复位键,低电平有效,复位时,各个输出都为零,时间显示0时0分0秒;clk是输入时钟,提供秒信号,上升沿触发,每出发一次,时间增加一秒;HRTMP,MIN10TMP,MINTMPKEYI可以分别设置小时位,10分位,分位,起到调时的作用,高电平有效,有效时,每来一个CLK时钟(1s),所对应的位都将以各自的计数循环;RING是整点报时;SEC,SEC10,MIN,MIN10,HR,HR10都输出四位BCD码,用于计数。3.4.1 CNT10模块设计10进制计数器。CLK为秒信号;RES是复位信号,与CLK同步;EN为选通信号;COUT3.0输出秒个位;CA是进位信号。如图1-6所示。 图1-6library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt10 is port(en,res,clk: in std_logic; ca : out std_logic; cout : out std_logic_vector(3 downto 0);end;architecture rtl of cnt10 is signal q : std_logic_vector(3 downto 0);begin p1 : process(en,clk,res) begin if(clkevent and clk=1) then if(res=0) then q=0000; elsif(en=1) then if(q=9) then q=0000; else q=q+1; end if; end if; end if; end process p1; p2 : process(q) begin if(q=9) then ca=en; else ca=0; end if; end process p2; cout=q;end rtl;3.4.2 CNT6模块设计即进制计数器,CLK为秒信号;RES为复位信号,与CLK同步;EN为选通信号;COUT3.0输出秒的十位;CA是进位信号。如图1-7所示。 图1-7library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt6 is port(en,res,clk: in std_logic; ca : out std_logic; cout : out std_logic_vector(3 downto 0);end;architecture rtl of cnt6 is signal q : std_logic_vector(3 downto 0);begin p1 : process(en,clk,res) begin if(clkevent and clk=1) then if(res=0) then q=0000; elsif(en=1) then if(q=5) then q=0000; else q=q+1; end if; end if; end if; end process p1; p2 : process(q) begin if(q=5) then ca=en; else ca=0; end if; end process p2; cout=q;end rtl;3.4.3 CNT101模块设计即十进制计数器,输出分的个位。EN接CNT6的进位CA,产生正常的时钟;EN2由外部断口控制,可用来调节时间,高电平有效,输出将以秒的速度递增循环。如图1-8 所示。图1-8library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt101 is -output minitutes gewei port(en2,en,res,clk : in std_logic; ca : out std_logic; -jingwei cout : out std_logic_vector(3 downto 0);end;architecture rtl of cnt101 is signal q : std_logic_vector(3 downto 0);begin p1 : process(en,en2,clk,res) begin if(clkevent and clk=1) then if(res=0) then q=0000; elsif(en=1or en2=1) then if(q=9) then q=0000; else q=q+1; end if; end if; end if; end process p1; p2 : process(q) begin if(q=9) then ca=en; else ca=0; end if; end process p2; cout=q;end rtl;3.4.4 CNT61模块的设计六进制计数器,输出分的各位。EN接CNT101的进位CA,产生正常的时钟;EN2由外部端口控制,可用来调节时间,高电平有效,输出分的十位将以秒的速度递增循环。如图1-9所示。图1-9library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt61 is -output minitutes shiwei port(en2,en,res,clk : in std_logic; ca : out std_logic; -jingwei cout : out std_logic_vector(3 downto 0);end;architecture rtl of cnt61 is signal q : std_logic_vector(3 downto 0);begin p1 : process(en,en2,clk,res) begin if(clkevent and clk=1) then if(res=0) then q=0000; elsif(en=1or en2=1) then if(q=5) then q=0000; else q=q+1; end if; end if; end if; end process p1; p2 : process(q) begin if(q=5) then ca=en; else ca=0; end if; end process p2; cout=q;end rtl;3.4.5 CNT23模块设计24进制计数器,输出时个位和时十位,由两个选通信号EN和EN2控制,EN2用来调时。如图1-10所示。图1-10library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt23 is port(en2,en,res,clk : in std_logic; a,b : out std_logic_vector(3 downto 0);end;architecture rtl of cnt23 is signal aout,bout : std_logic_vector(3 downto 0);begin p1 : process(en,en2,clk,res) begin if(res=0) then aout=0000; bout1 then if aout2 then aout=0000 ; bout=0000; else aout=aout+1; end if; elsif(aout=9) then aout=0000; bout=bout+1; else aout=aout+1; end if; end if; end if;end process p1 ;end rtl;4.系统仿真 4.1数字钟仿真图4.2 数字钟编译报告4.3 数字钟原理图12
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸下载 > CAD图纸下载


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!