欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    EDA课程设计秒表设计.docx

    • 资源ID:2538557       资源大小:843.09KB        全文页数:17页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    EDA课程设计秒表设计.docx

    1、EDA课程设计秒表设计 题目:秒表设计 班级:通信11-3小组成员:易新会、王伟、陈虹余、迪拉热 指导老师:黄志华 学院:信息科学与工程学院2014年1月1日内容一:设计任务与要求 秒表的逻辑结构比较简单,它主要由、显示译码器、分频器、十进制计数器、报警器和六进制计数器组成。在整个秒表中最关键是如何获得一个精确的100Hz计时脉冲,除此之外,整个秒表还需要一个启动信号和一个归零信号,以便能够随时启动及停止。秒表有六个输出显示,分别为百分之一秒,十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之对应,6个个计数器全为BCD码输出,这样便于同时显示译码器的连接。当计时达60分钟后,蜂鸣器鸣响3

    2、声。二:设计原理 本系统采用自上向下的设计方案,系统的整体设计组装原理图如图2-1所示,它主要由控制模块,时基分屏模块,计时模块和显示模块四部分组成。各模块分别完成控制,分屏,计时和显示的功能 设计原理图 三、程序模块1、控制模块程序library ieee;use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;entity ctrl is port(clr,clk,sp:in std_logic; en:out std_logic);end ctrl;architecture behave of ctrl is type s

    3、tates is (s0,s1,s2,s3); signal current_state,next_state:states; begin com:process(sp,current_state) begin case current_state is when s0=en=0;if sp=1 then next_state=s1;else next_stateen=1;if sp=1 then next_state=s1;else next_stateen=1;if sp=1 then next_state=s3;else next_stateen=0;if sp=1 then next_

    4、state=s3;else next_state=s0;end if; end case; end process;synch:process(clk) begin if clr=1 then current_state=s0; elsif clkevent and clk=1 then current_state=next_state; end if;end process;end behave; 2、时基分频模块程序library ieee;use ieee.std_logic_1164.all;entity cb10 is port(clk: in std_logic; co: buff

    5、er std_logic);end cb10;architecture art of cb10 is signal counter:integer range 0 to 49999;begin process(clk) begin if (clk=1 and clkevent) then if counter=49999 then counter=0; co= not co; else counter=counter+1; end if; end if; end process;end art;3、计时模块的程序1)、十进制计数器library ieee; use ieee.std_logic

    6、_1164.all;use ieee.std_logic_unsigned.all;entity cdu10 is port(clk,clr,en: in std_logic; cn: out std_logic; count10: out std_logic_vector(3 downto 0);end cdu10;architecture art of cdu10 is signal temp:std_logic_vector(3 downto 0);begin process(clk,clr) begin if clr=1 then temp=0000; cn=1001 then tem

    7、p=0000; cn=1; else temp=temp+1; cn=0; end if; end if; end if; count10=temp; end process;end art;2)、六进制计数器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cdu6 is port(clk,clr,en: in std_logic; cn: out std_logic; count6: out std_logic_vector(3 downto 0);end cdu6;archite

    8、cture art of cdu6 is signal temp:std_logic_vector(3 downto 0);begin process(clk,clr) begin if clr=1 then temp=0000; cn=0; elsif (clkevent and clk=1) then if en=1 then if temp=0110 then temp=0000; cn=1; else temp=temp+1; cn=0; end if; end if; end if; count6=temp; end process; end art;3)计时器程序library i

    9、eee;use ieee.std_logic_1164.all;entity count is port(clk:in std_logic; clr:in std_logic; en:in std_logic; S_10ms:out std_logic_vector(3 downto 0); S_100ms:out std_logic_vector(3 downto 0); S_1s:out std_logic_vector(3 downto 0); S_10s:out std_logic_vector(3 downto 0); M_1min:out std_logic_vector(3 do

    10、wnto 0); M_10min:out std_logic_vector(3 downto 0);end count;architecture art of count is component cdu10 port(clk,clr,en: in std_logic; cn: out std_logic; count10: out std_logic_vector(3 downto 0); end component cdu10; component cdu6 port(clk,clr,en: in std_logic; cn: out std_logic; count6: out std_

    11、logic_vector(3 downto 0); end component cdu6;signal A,B,C,D,E,F:std_logic;begin U1:cdu10 port map (clk,clr,en,A,S_10ms);U2:cdu10 port map (A,clr,en,B,S_100ms);U3:cdu10 port map (B,clr,en,C,S_1s);U4:cdu6 port map (C,clr,en,D,S_10s);U5:cdu10 port map (D,clr,en,E,M_1min);U6:cdu10 port map (E,clr,en,F,M

    12、_10min);end art;4、显示模块程序1)七段译码驱动器程序library ieee; use ieee.std_logic_1164.all;use ieee.std_logic_unsigned; entity bcd7 is port(bcd:in std_logic_vector(3 downto 0); led:out std_logic_vector(6 downto 0); end bcd7 ; architecture art of bcd7 is begin led= 0111111 when bcd=0000else 0000110 when bcd=0001el

    13、se 1011011 when bcd=0010else 1001111 when bcd=0011else 1100110 when bcd=0100else 1101101 when bcd=0101else 1111101 when bcd=0110else 0000111 when bcd=0111else 1111111 when bcd=1000else 1101111 when bcd=1001else 0000000;end art; 2)数据选择器程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_UNS

    14、IGNED.all;entity mulx is port(clk:in std_logic; clr:in std_logic; en:in std_logic; S_10ms:in std_logic_vector(3 downto 0); S_100ms:in std_logic_vector(3 downto 0); S_1s:in std_logic_vector(3 downto 0); S_10s:in std_logic_vector(3 downto 0); M_1min:in std_logic_vector(3 downto 0); M_10min:in std_logi

    15、c_vector(3 downto 0); outbcd:out std_logic_vector(3 downto 0); seg:out std_logic_vector(2 downto 0);end mulx;architecture art of mulx is signal count:std_logic_vector(2 downto 0);begin process(clk) begin if (clr=1) then count=111; elsif (clk=1and clkevent) then if en=1 then if count=101 then count=0

    16、00; else countoutbcd=S_10ms; segoutbcd=S_100ms; segoutbcd=S_1s; segoutbcd=S_10s; segoutbcd=M_1min; segoutbcd=M_10min; segnull; end case; end if; end process;end art;5、顶层设计源程序library ieee;use ieee.std_logic_1164.all;entity stopwatch is port (sp:in std_logic ; clr:in std_logic; clk:in std_logic; led:o

    17、ut std_logic_vector(6 downto 0); seg:out std_logic_vector(2 downto 0);end stopwatch;architecture art of stopwatch is component ctrl port(clr:in std_logic ; clk:in std_logic ; sp:in std_logic ; en:out std_logic ); end component; component cb10 port(clk:in std_logic; co:out std_logic); end component;

    18、component count port (clk:in std_logic; clr:in std_logic; en:in std_logic; S_10ms:out std_logic_vector(3 downto 0); S_100ms:out std_logic_vector(3 downto 0); S_1s:out std_logic_vector(3 downto 0); S_10s:out std_logic_vector(3 downto 0); M_1min:out std_logic_vector(3 downto 0); M_10min:out std_logic_

    19、vector(3 downto 0); end component; component bcd7 port(bcd:in std_logic_vector(3 downto 0); led:out std_logic_vector(6 downto 0); end component; component mulx port (clr:in std_logic; clk:in std_logic; en:in std_logic; S_10ms:in std_logic_vector(3 downto 0); S_100ms:in std_logic_vector(3 downto 0);

    20、S_1s:in std_logic_vector(3 downto 0); S_10s:in std_logic_vector(3 downto 0); M_1min:in std_logic_vector(3 downto 0); M_10min:in std_logic_vector(3 downto 0); outbcd:out std_logic_vector(3 downto 0); seg:out std_logic_vector(2 downto 0); end component;signal c,e:std_logic;signal ms10_s,ms100_s:std_lo

    21、gic_vector(3 downto 0);signal s1_s,s10_s:std_logic_vector(3 downto 0);signal min1_s,min10_s:std_logic_vector(3 downto 0);signal bcd_s,s:std_logic_vector(3 downto 0);beginu0:ctrl port map(clr,clk,sp,e);u1:cb10 port map(clk,c);u2:count port map(c,clr,e,ms10_s,ms100_s,s1_s,s10_s,min1_s,min10_s);u3:mulx

    22、 port map(clr,clk,e,ms10_s,ms100_s,s1_s,s10_s,min1_s,min10_s,bcd_s,seg);u4:bcd7 port map (bcd_s,led);end art;四、设计解决的关键问题本次设计的关键性问题是分频和顶层文件的设计,在分频代码段中可以看出我们本次采用的主频率是5MHZ。1/100秒的频率为100HZ所以只需要用5MHZ乘以1/50000即可得到100HZ的分频信号,即1/100秒。数码管显示部分的关键就是弄清楚每个数字对应的二进制代码,刚开始我们用画原理图的方法进行顶层文件设计,完成了实验,而后又尝试用VHDL语言进行程序设计

    23、,虽然程序复杂而且老出编译错误,期间反复看书,和上网查找资料,经过几天的修改终于将此顶层程序的设计工作完成。五:设计分工说明1,主程序设计,编写实验报告易新会2,程序修改,用VHDL语言顶层文件设计陈虹余3,上机硬件调试,用原理图的方法设计顶层文件王伟4,收集相关资料、拍照迪拉热仿真结果与分析一:测试数据选择 测试数据选择为00:00:0003:56:38二:波形分析三:问题说明 数码管的显示由sel片选信号来控制。硬件调试功能正常。总结开始VHDL语言不是很熟练,做设计时总是会犯一些错误且花费的时间比较多,例如在做顶层文件设计的时候总是会出现一些编译错误,其中有些错误是因为一个字母没写对而导

    24、致,相比较来说在此次设计中用原理图做顶层设计似乎更容易,当然这主要是我们做的这个小设计不是一个大型的系统,当系统复杂时用VHDL语言更省事,在编程时,我们使用了自顶向下的设计思想,这样程序检查起来也比较方便,也便于小组分工,做EDA设计考验我们的耐心、毅力和细心,而对错误的检查要求我们要有足够的耐心,通过这次实战,我们对VHDL语言了解的更深了,也积累了一定的解决问题的经验,对以后从事集成电路设计工作会有一定的帮助。在设计工作中,分工很重要,即使你一个人能够把整个程序写出来,但与分工良好的组相比较,分工不好的组效率更低在应用VHDL的过程中我们领会到了其并行运行与其他软件顺序执行的差别及其在电路设计上的优越性。用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这门技术应用很广泛,纵然这份报告的上交意味着我们可以结课了,但对这方面的学习不会止步.


    注意事项

    本文(EDA课程设计秒表设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开