ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:843.09KB ,
资源ID:12272359      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12272359.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

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

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软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这门技术应用很广泛,纵然这份报告的上交意味着我们可以结课了,但对这方面的学习不会止步.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1