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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

江苏大学09级数字逻辑课程设计报告.docx

1、江苏大学09级数字逻辑课程设计报告 J I A N G S U U N I V E R S I T Y数字逻辑课程设计 多功能数字钟 学院名称: 计算机科学与通信工程 专业班级: 通信0902 学生姓名: 学生学号: 指导老师: 赵念强 完成日期: 2011年7月2日 多功能数字钟课程设计实验报告一 实验目的:1 学会应用数字系统设计方法进行电路设计;2 进一步提高MAX+plus II 10.0 BASELINE软件的开发应用能力;3 培养学生书写综合实验报告的能力。二 实验要求:1 根据实验任务,选择最佳设计方案,综合运用MAX+plus II 10.0 BASELINE软件的各种设计方法

2、设计出层次分明、结构清楚、电路优化、VHDL语言描述简洁的完整设计文件。通过仿真直至下载来验证设计的正确性。三 实验任务及要求1 能进行正常的时、分、秒计时功能(1) 用M6M5做24小时计数器的显示器;(2) 用M4M3做60分钟计数器的显示器;(3) 用M2M1做60秒钟计数器的显示器。2 能利用实验系统上的按键实现“校时”、“校分”功能(1) 按下“SA”键时,计时器迅速递增,并按24小时循环,计满23小时后再回00;(2) 按下“SB”键时,计时器迅速递增,并按60分钟循环,计满59分钟后再回00;但不向高位进位。(3) 按下“SC” 键后,秒清零。要求按下“SA”和“SB”均不会产生

3、数字跳变(“SA”、“SB”按键是有抖动的,必须地“SA”、“SB”进行消抖处理, 消抖电路用D触发器构成。 原理:一个触发器CP(64HZ)内,屏蔽所有的抖动脉冲)。(4) 计时(24进制计数器),计分(60进制计数器)、计秒(60进制计数器)模块可由10进制计数器连接构成,也可用VHDL语言完成(可以参考教材P341,例8.2.1 多功能电子钟的设计)。10进制计数器需自己设计(用VHDL语言,与所做实验74160计数器相同),不能调用系统库。(5) 其他如分频电路、提供报时控制信号、闹时电路等模块用VHDL语言实现。3 能利用实验板上的扬声器作整点报时(1) 当计时到达5950”、 51

4、”、 52”、 53”、54”、55”、 56”、 57”、 58”、59”鸣叫,鸣叫声频可定为500HZ;(2) 到达00分00秒时为最后一声整点报时。整点报时的频率可定为1KHZ。报时信号从ISP1032的PIN68输出,PIN68与扬声器的输入电路相连,激励扬声器;4 闹时(1) 闹时的最小时间间隔为十分钟。(2) 闹时长度为一分钟。(3) 闹时声响可以是单频。(4) 闹时时声响也可以是双频交替的警笛声。5 使用MAX+plus II 10.0 BASELINE软件设计符合上述功能的多功能数字钟,并用层次化设计方法设计该电路。6 报时功能。闹时功能用功能仿真的方法验证,可通过观察有关波形

5、确认电路设计是否正确。7. 使用设计思路-层次化的思想: 计时(间)模块、时间校对模块、报时模块、分频模块、动态显示模块(1) 8. 完成全部电路设计后在EP1KTC144-3 实验系统上下载,验证设计的正确性。四顶层图及相关模块说明: 1 顶层图:说明:程序下载后自动进入计时状态,sa,sb,sc可分别调时,分,秒。2.各模块说明:(1)进制模块: 1.十进制源程序: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ls160 is port ( data : in std_log

6、ic_vector(3 downto 0); clk,ld,p,t,clr : in std_logic; count : buffer std_logic_vector(3 downto 0); tc:out std_logic);end ls160; architecture behavior of ls160 isbegintc=1 when (count =1001 and p=1 and t=1 and ld=1 and clr=1) else 0;cale: process(clk,clr,p,t,ld) begin if(rising_edge(clk) then if(clk=

7、1) then if(ld=1) then if(p=1) then if(t=1) then if(count=1001) then count=0000; else count=count+1; end if; else count=count; end if; else count=count; end if; else count=data; end if; else count=0000; end if; end if; end process cale;end behavior; 十进制生成器件 2. 二十四进制: 电路图:生成器件: 3. 六十进制: 电路图: 生成器件: 模块说

8、明:此计数器由两个十进制计数器构成,片一的进位TC独立与片二的P,T连在一起,并行连接成一百进制计数器,片一的P,T接高电平,两片的CLK都接在同一输入上,形成异步置零。片一上的AD,片二上的AC接入同一与非门,再接到两片的LD上。H30构成十位,L30构成个位。 (2)DTSM模块:dtsh源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity dtsm is port(clk:in std_logic; s :in std

9、_logic_vector(7 downto 0); f :in std_logic_vector(7 downto 0); m :in std_logic_vector(7 downto 0); selout:out std_logic_vector(5 downto 0); segout:out std_logic_vector(6 downto 0) );end dtsm;architecture a of dtsm issignal number:std_logic_vector(3 downto 0);signal sel :std_logic_vector(5 downto 0);

10、signal seg :std_logic_vector(6 downto 0);signal q :std_logic_vector(2 downto 0);begina:process(clk)beginif(clkevent and clk=1)thenqselselselselselselsel=000000;end case;end process;processbegin if sel =000001then number=m(3 downto 0); elsif sel=000010then number=m(7 downto 4); elsif sel=000100then n

11、umber=f(3 downto 0); elsif sel=001000then number=f(7 downto 4); elsif sel=010000then number=s(3 downto 0); elsif sel=100000then number=s(7 downto 4); else numbersegsegsegsegsegsegsegsegsegsegseg=0000000;end case;end process; selout=sel; segout=5 then q=000; else q=q+1; end if;实现。再定义一个类型为std_logic_ve

12、ctor(5 downto 0)的sel信号,它用来产生一个长度为6的数,该数在同一时刻只有一位是高电平表示正在扫描该显示管,在进程结束时它的值将赋给selout输出。定义一个std_logic_vector(6 downto 0)类型的seg,用来存放将由四位bcd码编码而来的七段显示码。最后在进程中定义一个std_logic_vector(3 downto 0)类型的number变量,用来存放时、分、秒的高位或低位,然后将该数编码成七段显示码,并赋给seg信号。具体算法如下:建立一个以clk脉冲为敏感变量的进程,先判断是否是clk的高电平脉冲,若不是则什么也不执行,若是高电平脉冲,则执行以

13、下程序。P加1,用case语句根椐p的值,给number赋予当前要扫描的数码管的值,用case语句根椐number的值编译成对应的七段显示管的值并赋给seg,当进程结束时把seg的值赋给segout,把sel的值赋给selout,然后由这两个端口输出。(3)分频模块:分频器源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity fry is port(clk:in std_logic; hz512:out std_logic;

14、 hz256:out std_logic; hz64:out std_logic; hz4:out std_logic; hz1:out std_logic ); end fry;architecture f of fry is signal q:std_logic_vector(9 downto 0); begin process(clk) begin if clkevent and clk=1then q=q+1; end if; end process; hz512=q(0); hz256=q(1); hz64=q(3); hz4=q(7); hz1=q(9);end f; 生成器件:

15、(4)报时模块: 报时器源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity alert is port(m1,m0,s1,s0 : in std_logic_vector(3 downto 0); sig500,sig1k : out std_logic);end alert;architecture a of alert issignal q : std_logic_vector(15 downto 0);signal

16、s500,s1k : std_logic;begin q(15 downto 12)=m1; q(11 downto 8)=m0; q(7 downto 4)=s1; q(3 downto 0)=s0; hring : block begin s500=1 when q=0101100101010000 else 1 when q=0101100101010010 else 1 when q=0101100101010100 else 1 when q=0101100101010110 else 1 when q=0101100101011000 else 0; s1k=1 when q=00

17、00000000000000 else 0;end block hring;sig500=s500;sig1k=s1k;end a;生成器件: 闹钟报时系统:模块说明:由于clk的频率为1024hz,所以可以定义一个std_logic_vector(9 downto 0),使它不停地从0000000000加到1111111111然后又返回0000000000,由于最低位在clk脉冲到来时从0变为1,然后又在下一个脉冲变回0,因此最低位的时钟周期为clk的时钟周期的两倍,它的频率就为clk频率的确1/2即512hz。同理,次高位的频率就为clk频率的1/2 * 1/2 = 1/4,用这种方法就可

18、以得到各种能整除1024的频率,从而实现分频。(5)二路选择器 源程序: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux21 IS PORT ( a , b ,s: IN STD_LOGIC ; y : OUT STD_LOGIC );END ENTITY mux21;ARCHITECTURE one OF mux21 IS BEGIN PROCESS(a,b,s) BEGIN IF s = 0 THEN y=a; ELSE y=b; END IF; END PROCESS; END ARCHITECTURE one; 生成器件:五课程设计感想:

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

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