




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
EDAEDA 数字秒表设计数字秒表设计 专业:自动化 班级学号:5090431 姓名: 2011 年 6 月15 日 数字秒表设计实验任务书 一、设计实验目的: 在 MAX+plusII 软件平台上, 熟练运用 VHDL 语言, 完成数字时钟设计的软件编程、 编译、综合、仿真,使用 EDA 实验箱,实现数字秒表的硬件功能。 二、设计实验说明及要求: 1、数字秒表主要由:分频器、扫描显示译码器、一百进制计数器、六十进 制计数器(或十进制计数器与 6 进制计数器) 、十二进制计数器(或二十四进制 计数器)电路组成。在整个秒表中最关键的是如何获得一个精确的 100HZ计时脉 冲,除此之外,数字秒表需有清零控制端,以及启动控制端、保持保持,以便数 字时钟能随意停止及启动。 2、数字秒表显示由时(12 或 24 进制任选) 、分(60 进制) 、秒(60 进制) 、 百分之一秒(一百进制)组成,利用扫描显示译码电路在八个数码管显示。 3、能够完成清零、启动、保持(可以使用键盘或拨码开关置数)功能。 4、时、分、秒、百分之一秒显示准确。 三、数字时钟组成及功能: 1、分频率器:用来产生 100HZ计时脉冲; 2、十二或二十四进制计数器:对时进行计数 3、六十进制计数器:对分和秒进行计数; 4、六进制计数器:分别对秒十位和分十位进行计数; 5、十进制计数器:分别对秒个位和分个位进行计数; 6、扫描显示译码器:完成对 7 字段数码管显示的控制; 四、系统硬件要求: 1、时钟信号为 10MHz; 2、FPGA 芯片型号 EPM7128LC8415、EP1K30TC1443 或 EP1K100QC2083 (根据实验箱上 FPGA 芯片具体选择) ; 3、8 个 7 段扫描共阴级数码显示管; 4、按键开关(清零、启动、保持) ; 五、设计内容及步骤: 1、根据电路持点,用层次设计概念。将此设计任务分成若干模块,规定每 一模块的功能和各模块之间的接口,同时加深层次化设计概念; 2、软件的元件管理深层含义,以及模块元件之间的连接概念,对于不同目 录下的同一设计,如何熔合; 3、适配划分前后的仿真内容有何不同概念,仿真信号对象有何不同,有更 深一步了解。熟悉了 CPLD/FPGA 设计的调试过程中手段的多样化; 4、按适配划分后的管脚定位,同相关功能块硬件电路接口连线; 5、所有模块尽量采用 VHDL 语言设计。 六、硬件实现 将时序仿真正确的文件下载到实验箱中的 EPM7128LC8415、EP1K30TC1443 或 EP1K100QC2083 中,通过合适的管脚分配,将相应的管脚连接起来,验证设计 是否完成设计要求; 设计过程设计过程 一、各模块的原理及其程序一、各模块的原理及其程序 2.12.1 分频模块分频模块 分频器电路将 10MHz 的时钟信号来产生 100Hz 的计时脉冲。 分频器源程序: libraryieee; use ieee.std_logic_1164.all; useieee.std_logic_arith.all; useieee.std_logic_unsigned.all; entity COUNTER100000 is port(clk_in:instd_logic;clk_out:outstd_logic); end COUNTER100000; architecture b of COUNTER100000 is signalcountQ: std_logic_vector(16downto 0); begin process(clk_in) begin if(clk_inevent and clk_in=1) then if(countQ99999) then countQ=countQ+1; else countQ0); end if; end if; end process; process(countQ) begin if(countQ50000)then clk_out=0; else clk_out=1; end if; end process; end b; 2.22.2 计数模块计数模块 计时模块执行计时功能,计时方法和计算机一样是对标准时钟脉冲计数。它 是由四个十进制计数器、两个六进制计数器和一个十二进制计数器构成,其中毫 秒位采用两个十进制计数器构成一百进制计数器, 秒位和分位采用一个十进制和 一个六进制计数器构成六十进制计数器,时位采用十二进制计数器。每个计数器 有清零端、使能端和保持端。 十进制计数器源程序: libraryieee; use ieee.std_logic_1164.all; useieee.std_logic_unsigned.all; entity count_10 is port(count:outstd_logic_vector(3 downto 0); cout:outstd_logic; cin,rst,clk:instd_logic); end count_10; architecture behavioral ofcount_10 is signalcounter:std_logic_vector(3 downto 0); begin process(clk,rst,cin) begin ifrst=1then counter=0000; cout=0; elsifclkevent and clk=1 then ifcin=1 then if counter=1001then counter=0000; cout=1; else counter=counter+0001; cout=0; end if; end if; end if; end process; count=counter; end behavioral; 六进制计数器源程序: libraryieee; use ieee.std_logic_1164.all; useieee.std_logic_unsigned.all; entity count_6 is port(count:outstd_logic_vector(3 downto 0); cout:outstd_logic; cin,rst,clk:instd_logic); end count_6; architecture behavioral of count_6 is signalcounter:std_logic_vector(2 downto 0); begin process(clk,rst) begin if rst=1then counter=000;cout=0; elsifclkevent and clk=1 then if cin=1 then if counter=101then counter=000;cout=1; else counter=counter+001; cout=0; end if; end if; end if; end process; count(2 downto 0)=counter; count(3)=0; end behavioral; 十二进制计数器源程序: libraryieee; use ieee.std_logic_1164.all; useieee.std_logic_unsigned.all; ENTITY count_12 IS PORT (en:INstd_logic; clr: INstd_logic; clk:INstd_logic; cout: out std_logic; s1:buffer std_logic_vector(3 downto 0); s2:buffer std_logic_vector(3 downto 0); END count_12; ARCHITECTURE behave of count_12 IS BEGIN cout=1 when(s1=0001 and s2=0001 and en=1)else0; PROCESS(clk,clr) BEGIN IF(clr=1)THEN s1=0000; s2=0000; elsif(clkEVENT AND CLK=1)THEN if(en=1)then if(s1=9)then s1=0000; if(s2=1)then s2=0000; else s2=s2+1; end if; else s1=s1+1; end if; if(s2=1 and s1=1) then s1=0000;s2=0000; end if; end if; end if; end PROCESS; end behave; 2.32.3 显示模块显示模块 计时显示电路的作用是将计时值在 LED 数码管上显示出来。 计时电路产生的 值经过 BCD 七段译码后, 驱动 LED 数码管。 计时显示电路的实现方案采用扫描显 示。 扫描显示译码器源程序: libraryieee; use ieee.std_logic_1164.all; useieee.std_logic_unsigned.all; entityseltime is port( clk:instd_logic; sum8:instd_logic_vector(3 downto 0); sum7:instd_logic_vector(3 downto 0); sum6:instd_logic_vector(3 downto 0); sum5:instd_logic_vector(3 downto 0); sum4:instd_logic_vector(3 downto 0); sum3:instd_logic_vector(3 downto 0); sum2:instd_logic_vector(3 downto 0); sum1:instd_logic_vector(3 downto 0); selout:outstd_logic_vector(2 downto 0); segout:outstd_logic_vector(6 downto 0) ); endseltime; architecture fun of seltime is signaltemp:std_logic_vector(2 downto 0); signalseg:std_logic_vector(6 downto 0); signalsel:std_logic_vector(2 downto 0); begin selout=sel; segout=111 then temp=000; else tempnum:=sum8(3 downto 0); selnum:=sum7(3 downto 0); selnum:=sum6(3 downto 0); selnum:=sum5(3 downto 0); selnum:=sum4(3 downto 0); selnum:=sum3(3 downto 0); selnum:=sum2(3 downto 0); selnum:=sum1(3 downto 0); selsegsegsegsegsegsegsegsegsegsegseg=0000000; end case; end if; end process; end fun; 系统仿真系统仿真 十进制计数器时序仿真 当清零端为 0,使能端为1,电路处于由09 计数的状态,每计十个数有一个进 位输出。如图,当清零端为0,使能端为 0 时,即使有脉冲信号输入,电路处于 保持的状态,不进行计数。 六进制计数器时序仿真 当清零端为 0,使能端为1,电路处于由05 计数的状态,每计十个数有一个进 位输出。如图,当清零端为0,使能端为 0 时,即使有脉冲信号输入,电路处于 保持的状态,不进行计数。 十二进制计数器时序仿真 当清零端为 0,使能端为 1 时,电路处于计数的状态。如图,当清零端为 0,使 能端为 0 时,即使有脉冲信号输入,电路处于保持的状态,不进行计数。 此十二进制计数器由个位和十位组成,当个位数从 0 计到 9 时,向十位进1,再 由 0 计到 2 时,产生一个进位输出。 扫描显示译码器 整个时钟秒表的连接图 结束语结束语 开始做设计时总是会犯一些错误, 只有经过不停的改错不停的编译得到正确的程 序说明了作为软件编程人员是不能粗心大意的, 一个程序的质量的高低与你细心 与否有着一定的联系。在编程时,我充分使用了结构化的思想,这样程序检查起 来也比较方便, 调试时也给了我很大方便,只要一个模块一个模块的进行调就可 以了,充分体现
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业管道的定期检查与维护措施
- 工作室文化建设的培训方法和其成功因素的分析探讨
- 工业自动化发展趋势及市场机遇分析
- 工业设计创新与技术突破
- 工作效率提升的现代科技手段分析
- 工作场所中的多元化管理与包容性实践
- 工厂企业消防安全措施
- 工程机械零件的强度与耐久性分析
- 工程钻探技术在复杂地形的应用
- 工程成本控制与成本分析
- 计算流体力学完整课件
- 职业健康检查机构备案变更申请表
- 腹部血管解剖详解课件
- 外来物种对生物多样性影响课件
- 2023版初中化学跨学科实践活动(化学)
- 医院职工代表大会暨工会会员代表大会提案表
- Oxford-3000-牛津核心词汇
- 散打裁判的基本手势
- 《延安我把你追寻》课件
- 石材产品质量保证书
- 儿童意外伤害预防-ppt课件
评论
0/150
提交评论