




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
eda技术及应用课程设计报告系 别: 机电与自动化学院 专业班级: 电气自动化技术0902 学生姓名: 目 录1. 课程设计目的32. 课程设计题目描述和要求33. 课程设计报告内容34. 各模块vhdl源程序54.1.3mhz100hz分频器的源程序54.2.十进制计数器源程序64.3.六进制计数器源程序94.4.顶层综合文件times的源程序115.总结 14参考文献 15秒表是人们日常生活中常用的测时仪器,它能够简单的完成计时、清零等功能,从一年一度的校际运动会到nba、世界杯、奥运会,都能看到秒表的身影。1. 课程设计目的学习使用eda集成设计软件maxplus设计一个计时范围为0.01秒1小时的数字秒表,能够精确反映计时时间,并完成复位、计时功能。秒表计时的最大范围为1小时,精度为0.01秒。秒表可得到计时时间的分、秒、0.1秒等度量,且各度量单位间可正确进位。当复位清零有效时,秒表清零并做好计时准备。任何情况下,只要按下复位开关,秒表都要无条件的进行复位操作,即使在计时过程中也要无条件的清零。了解全过程中vhdl程序的基本结构,掌握使用eda工具设计数字系统的设计思路和设计方法。学习vhdl基本逻辑电路的综合设计应用,以及程序中数据对象、数据类型、顺序语句、并行语句的综合使用。根据电路持点,用层次设计概念,将此设计任务分成若干模块,规定每一模块的功能和各模块之间的接口,同时加深层次化设计概念;考虑软件的元件管理深层含义,以及模块元件之间的连接概念,对于不同目录下的同一设计,如何熔合等问题。2.课程设计题目描述和要求(1)根据设计题目要求完成设计输入、综合、模拟仿真验证。(2)具有复位、暂停、秒表计时及结果直接送led显示的功能。(3)三个输入端,分别为:时钟输入(clk)、复位(clr)和启动暂停(ena)。(4)输出端有:百分秒、秒和分钟信号,皆采用bcd码计数方式,并直接送到6个led显示。(5)提供设计报告,报告要求包括以下内容:设计思路、设计输入文件、设计与调试过程、模拟仿真结果和设计结论。3. 课程设计报告内容系统由一个分频器clkgen,四个十进制计数器cnt10,两个六进制计数器cnt6组成。其中1/100和1/10秒都是十进制计数器,秒和分的个位是十进制计数器,十位是六进制计数器。分频器以3mhz的脉冲波做输入信号,为系统提供精确的100hz时钟信号。作为百分秒的clk输入端。1/100秒的进位信号作为1/10秒的clk信号,而1/10秒的进位信号作为秒的clk信号。秒的进位信号作为秒10的clk,秒10的进位接分的clk,分的进位接分10的clk。ena为异步开始信号,为1时开始计时,为0时暂停计时。clr为异步清零信号,为1清零,所有计数器重新从0000开始。输出:dout023是bcd码输出:dout03为1/100秒的bcd码输出;dout47为1/10秒的bcd码输出;dout811为秒的bcd码输出;dout1215为10秒的bcd码输出;dout1619为分的bcd码输出;dout2023为10分的bcd码输出。输出的bcd码送led显示解码器。系统的结构原理图1所示:图1 系统的结构原理图4. 各模块vhdl源程序4.1.3mhz100hz分频器的源程序library ieee;use ieee.std_logic_1164.all;entity clkgen isport (clk: in std_logic; newclk: out std_logic);end entity clkgen;architecture art of clkgen is signal cnter: integer range 0 to 10#29999#;begin process (clk) is begin if clk event and clk=1 then if cnter =10#29999# then cnter=0; else cnter=cnter+1; end if; end if; end process; process(cnter) isbegin if cnter=10#29999# then newclk=1; else newclk=0; end if; end process;end architecture art;此处用到了一个分频比为30000的分频器,用来将3mhz的脉冲分成100hz,也就是当clk经过三万个脉冲的时候,才会看到一个100hz的计数脉冲newclk。由于使用的器件epf10k10lc84-3反应时间最短为3ns ,因此grid size不能设置太小,否则会出错。在这里设置为10.0ns 。这样,一个clk的周期为20ns ,总时间为29999 x 2x10.0ns =0.59998ms所以end time要设置为1ms 才能使cnter计数到29999并归0 。其仿真波形如图2所示:图2 clkgen的仿真波形当变量cnter计数到29999时清零,同时newclk产生一个脉冲波。其原理图如图3。图3 clkgen的原理图4.2. 十进制计数器源程序library ieee; use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt10 isport (clk: in std_logic; clr: in std_logic; ena: in std_logic; cq: out std_logic_vector(3 downto 0); carry_out: out std_logic);end entity cnt10; architecture art10 of cnt10 issignal cqi:std_logic_vector(3 downto 0); begin process(clk,clr,ena)is begin if clr=1 then cqi=0000; elsif clkevent and clk=1then if ena=1 then if cqi =1001 then cqi=0000; else cqi=cqi+1; end if; end if; end if; end process; process(cqi) is begin if cqi=0000 then carry_out=1; else carry_out=0; end if; end process; cq=cqi;end architecture art10;以上为十进制计数器源程序,基本原理是在使能信号ena为高电平清零信号clr为低电平且 clk为时钟上升沿(clkevent and clk=1)时,cqi开始进行累加计数(cqi=cqi+1),当cqi=0101,即为bcd数0101时,计数器向carry_out进位且cqi=0000进行清零。如此0000000100100011010001010110011110001001循环,进行十进制计数。上述源程序的波形仿真波形如下图4所示。图4 cnt10的仿真波形由图4可以看出,cq从“0000”开始计数,计数到“1001”时翻“0000”,同时carry_out进位信号输出高电平。当ena使能信号为高电平时计数器计数,为低电平时停止计数,cq输出值没有变化。当clr清零信号为高电平时cq清零,carry_out进位信号输出高电平,当clr为低电平时正常计数。其原理图如图5。图5 cnt10的原理图4.3. 六进制计数器源程序library ieee; use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt6 isport (clk: in std_logic; clr: in std_logic; ena: in std_logic; cq: out std_logic_vector(3 downto 0); carry_out: out std_logic);end entity cnt6; architecture art11 of cnt6 issignal cqi:std_logic_vector(3 downto 0); begin process(clk,clr,ena)is begin if clr=1 then cqi=0000; elsif clkevent and clk=1then if ena=1 then if cqi =0101 then cqi=0000; else cqi=cqi+1; end if; end if; end if; end process; process(cqi) is begin if cqi=0000 then carry_out=1; else carry_out=0; end if; end process; cq=cqi;end architecture art11;以上为六进制计数器源程序,基本原理是在使能信号ena为高电平清零信号clr为低电平且 clk为时钟上升沿(clkevent and clk=1)时,cqi开始进行累加计数(cqi=cqi+1),当cqi=0101,即为bcd数0101时,计数器向carry_out进位且cqiclk, newclk=s0);u1: cnt10 port map(s0,clr,ena, dout(3 downto 0),s1);u2: cnt10 port map(s1,clr,ena, dout(7 downto 4),s2);u3: cnt10 port map(s2,clr,ena, dout(11 downto 8),s3);u4: cnt6 port map(s3,clr,ena, dout(15 downto 12),s4);u5: cnt10 port map(s4,clr,ena, dout(19 downto 16),s5);u6: cnt6 port map(s5,clr,ena, dout(23 downto 20);end architecture art;因为times中包含的clkgen的分频作用,因此需要30000个clk信号才能使1/100秒位计数一次,给仿真带来很大难度。所以仿真前先要把clkgen去掉,直接把clk信号作为1/100秒的时钟信号。但是还是需要360000个clk信号才能得到59分翻0分。所以分两步进行仿真,先检验1/100秒跟1/10秒,再把clk信号作为秒的时钟信号进行仿真。第一步:对times中相应的程序进行一下改动:(把clkgen去掉,直接把clk信号作为1/100秒的时钟信号。)signal s0: std_logic; signal s1,s2,s3,s4,s5: std_logic;beginu1: cnt10 port map(clk,clr,ena, dout(3 downto 0),s1);u2: cnt10 port map(s1,clr,ena, dout(7 downto 4),s2);u3: cnt10 port map(s2,clr,ena, dout(11 downto 8),s3);u4: cnt6 port map(s3,clr,ena, dout(15 downto 12),s4);u5: cnt10 port map(s4,clr,ena, dout(19 downto 16),s5);u6: cnt6 port map(s5,clr,ena, dout(23 downto 20);end architecture art;然后进行波形仿真,仿真波形如下图8:图8 times test1的波形仿真如图所示,1/100秒,1/10秒,秒,10秒位都能正常计数和进位,翻0。第二步:对times中相应的程序进行一下改动:(把clkgen去掉,直接把clk信号作为秒的时钟信号。)signal s3,s4,s5: std_logic; beginu2: cnt10 port map(clk,clr,ena, dout(11 downto 8),s3);u3: cnt6 port map(s3,clr,ena, dout(15 downto 12),s4);u4: cnt10 port map(s4,clr,ena, dout(19 downto 16),s5);u5: cnt6 port map(s5,clr,ena, dout(23 downto 20);end architecture art;然后进行波形仿真,仿真波形如图9。图9 times test2的波形仿真如图8所示,秒,10秒,分和10分位都能正常计数和进位,翻0。5.总结通过这次课程设计,使我们加深了对vhdl语言和maxplusii的认识,增强了动手能力,并培养了我们独立思考的习惯,和树立了对试验操作和数据分析一丝不苟的的态度。下面是试验中碰到的部分问题的解决方法和应该注意的事项:图10 cnt10的波形仿真进行波形仿真时,要考虑不同的输入条件所能出现的所有情况。比如说在有使能信号ena(或者清零信号clr)的仿真图要包含信号为1和为0两种情况下的波形;有二输入与门(或者非门)这样器件则要包含输入信号四种不同组合情况下的四种波形;还有计数器,要包含计满清零向高位进位的波形等。如图10,包含了ena,clr分别为0和1时的波形,还有cq在时钟clk下降沿计数到9后清零并由carry_out向高位输出进位信号的波形。关于时钟信号的设置。时钟信号能设置的最小周期和options中的grid size来决定,要得到周期为20ns的时钟信号,就要把grid size设置为10ns。但是clk的周期也不是越小越好,因为器件有最小反应时间,设置的周期必须大于器件的反应时间。减少不必要的计算。第一次做times的波形时,没有进行分步仿真,直接把clk信号加在clkgen的输入端开始仿真。结果半个多小时过去了,还只是仿真到8分多。(仿真用的计算机cpu为奔腾4 1.7g)要得出59分翻0的波形,估计要4个多小时。所以把clkgen去掉,并
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第二节 平抛运动教学设计-2025-2026学年高中物理第二册沪科版(2020·上海专用)
- 1.6 声音的高与低(教学设计+任务单+课后练习)四年级上册科学 教科版 (3份打包)
- 经济昆虫产品加工工应急处置考核试卷及答案
- 压力调节器智能诊断技术-洞察及研究
- 媒体素养与信息素养融合-洞察及研究
- 熟料烧结工技能操作考核试卷及答案
- 2025年冻干活疫苗行业研究报告及未来行业发展趋势预测
- 2025年IT外包服务行业研究报告及未来行业发展趋势预测
- 电法勘探工职业技能考核试卷及答案
- 2025年对硝基苯甲醇行业研究报告及未来行业发展趋势预测
- (2025秋新修订)人教版三年级数学上册全册教案(教学设计)
- 一例股骨颈骨折个案护理
- 生物材料检验-课件
- 小学生视力检测登记表
- 植物生物技术绪论
- 时空大数据课件
- 中医院医院感染知识考试题
- 顶管施工方案(泥水平衡法)
- 机器视觉课件
- 客舱广播词的基本知识
- 砌筑砂浆试块强度统计、评定记录表
评论
0/150
提交评论