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

    EDA设计报告数字秒表设计.docx

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

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

    EDA设计报告数字秒表设计.docx

    1、EDA设计报告数字秒表设计JIU JIANG UNIVERSITY数字逻辑系统课程设计报告设计课题: 数字秒表设计 专 业: 电子信息工程 班级学号: 学生姓名: 指导教师: 设计时间: 2012-12-242012-12-28 数字秒表1.设计任务与要求 1.1、设计出的是一个能够精确反映计时时间,且具有复位、计时、暂停功能的数字秒表,老师要求是计下的时间存储下来并能以后调出显示出来。 1.2、设计的秒表输入脉冲为3MHz,秒表的最大计时范围为1h,精确度为0.01s,其度量单位有0.1s、1s、1min等档位,并且各档位可实现进位。2.方案设计及主要技术思路 2.1、方案一:用LED灯来显

    2、示计数结果。 将系统分为四个模块,分别为:顶层模块程序、3MHz-100Hz分频模块、十进制计数器模块、六进制计数器模块。 顶层模块:由于十进制计数模块和六进制计数模块会产生计数溢出信号,而这些溢出信号有可能作为下一计数模块的时钟输入脉冲,因此需要使用一个顶层模块将这些基本模块通过元件调用与映射的关系进行有机结合。 分频模块:就是实现3MHz到100Hz的分频,实体定义3MHz时钟频率输入端和100Hz的时钟脉冲输出端。 十进制计数器模块:用来实现0.01s、0.1s、1s和1min单位单元的计数。 六进制计数器模块:用来实现10s、10min为单位单元的计数。2.2、方案二:用数码管来显示计

    3、数结果。 将系统分为六个模块,分别为:3MHz-100Hz分频模块、48MHz-1KHz分频模块、十进制计数模块、六进制计数模块、锁存模块、数码管显示模块。 3MHz-100Hz分频模块:由于系统的精度是0.01s,因此要设置周期为100Hz的时钟脉冲。又因为数字秒表输入的脉冲为3MHz,所以外界每输入3000Hz的脉冲系统就输出一个频率,这时频率的时间周期刚好为0.01s,还有就是实现48MHz1KHz的功能给显示模块时钟信号的,而分频模块就是完成这样的功能。 48MHz1KHz分频模块:用于数码管显示的分频,使计数显示更清晰、更准确。 十进制计数器模块:用来实现0.01s、0.1s、1s和

    4、1min单位单元的计数。 六进制计数器模块:用来实现10s、10min为单位单元的计数。 锁存模块:用来实现计数的锁存,功能实现就是实现计数的暂停。 数码管显示模块:用数码管来精确显示计数结果。2.3、优劣分析及方案选定 LED灯显示是以二进制的形式显示出来的,而数码管则直接显示数字,所以数码管显示来的更直观,再一个方案一涉及到元件例化语句,各分模块要实现元件调用和映射。由于本人对元件例化语句不熟,所以方案一不考虑。所以我选用方案二来完成本设计。2.4 采用的硬件平台及主要技术本设计采用的硬件平台是编程片上系统,简称SOPC。主要技术有以处理器和实时多任务操作系统(RTOS)为中心的软件中心技

    5、术、以PCB和信号完整性分析为基础的高速电路设计技术。3模块设计过程 3.1、3MHz-100Hz分频模块的设计 实现3MHz100Hz的分频,模块图 程序代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity szmb3 isport(clk_3m:in std_logic; clk_100:out std_logic);-定义输入输出端口,输入为3MHz,输出为100Hzend szmb3;architecture one of szmb3 issignal clk_100_r:s

    6、td_logic;signal count:integer range 0 to 10#15000#;-用于计数beginprocess(clk_3m) begin if clk_3mevent and clk_3m=1 then -上升沿 if count=10#15000# then count=0;clk_100_r=not clk_100_r;-当count=10#1500#时,本身取反,输出为零 else count=count+1;-计数加一 end if; end if;end process;clk_1001KHz分频模块的设计实现48MHz1KHz的分频,模块图程序代码:LI

    7、BRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity fp1 is port(clk_48m: in std_logic; clk_1k: out std_logic );-定义输入输出端口end fp1;architecture behav of fp1 is signal clk_1k_r: std_logic; signal count : std_logic_vector(14 downto 0); -用于计数 begin process (clk_48m)begin if clk_4

    8、8mevent and clk_48m=1 then if count= then count0);-当count=时取反 clk_1k_r=not clk_1k_r; else count=count+1;-否则的话计数加一 end if; end if;end process;clk_1k=clk_1k_r;end behav;3.3、十进制计数模块的设计 用来实现0.01s、0.1s、1s和1min单位单元的计数。模块图程序代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity

    9、szmb2 isport(clk,rst:in std_logic; cq:out std_logic_vector(3 downto 0); cout:out std_logic);-定义输入输出端口end szmb2;architecture one of szmb2 issignal cq1:std_logic_vector(3 downto 0);signal cout1:std_logic;-定义计数beginprocess(clk,rst)begin if rst=1 then cq1=0000;cout1=0;-复位清零 elsif clkevent and clk=1 then

    10、 if cq11001 then cq1=cq1+1;cout1=0;-上升沿时,若cq1小于9的话,自身加一,不进位 else cq1=0000;cout1=1;-否则的话,cq1为零,计数进位加一 end if; end if;end process;cq=cq1;cout=cout1;end one;3.4、六进制计数模块的设计 用来实现10s、10min为单位单元的计数。模块图程序代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity szmb1 isport(clk,rst:

    11、in std_logic; cq:out std_logic_vector(3 downto 0); cout:out std_logic);-定义输入输出端口end szmb1;architecture one of szmb1 issignal cq1:std_logic_vector(3 downto 0);signal cout1:std_logic;-用于计数beginprocess(clk,rst)begin if rst=1 then cq1=0000;cout1=0;-复位清零 elsif clkevent and clk=1 then if cq10101 then cq1=

    12、cq1+1;cout1=0;-若有上升沿,且cq1小于5的话,本身加一,计数为零 else cq1=0000;cout1=1;-否则的话,cq1为零,计数进位加一 end if; end if;end process;cq=cq1;cout=cout1;end one; 3.5、锁存模块的设计用来实现计数的锁存,功能实现就是实现计数的暂停。模块图程序代码:library ieee;use ieee.std_logic_1164.all;entity scq is port(gate:in std_logic; d:in std_logic_vector(23 downto 0); data:o

    13、ut std_logic_vector(23 downto 0);-定义输入输出端口end;architecture two of scq issignal data1:std_logic_vector(23 downto 0);beginprocess(gate,d)beginif gate=1 then data1=d; -若门信号有脉冲,则门打开,d信号赋给data1end if;end process; data=data1;end two; 3.6、数码管显示模块的设计用数码管来精确显示计数结果。模块图程序代码:LIBRARY IEEE; USE IEEE.STD_LOGIC_116

    14、4.ALL; USE IEEE.STD_LOGIC_Arith.ALL;USE IEEE.STD_LOGIC_Unsigned.ALL;ENTITY szmb4 ISPORT(clk_1: IN STD_LOGIC;data: IN STD_LOGIC_VECTOR(23 DOWNTO 0);dig: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); seg: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );-定义输入输出端口END ENTITY;ARCHITECTURE one OF szmb4 ISSIGNAL seg_r: STD_LOGIC_VE

    15、CTOR(7 DOWNTO 0);-用于缓存对当前BCD码译码的结果SIGNAL dig_r: STD_LOGIC_VECTOR(7 DOWNTO 0); -用于缓存位码信息SIGNAL disp_dat: STD_LOGIC_VECTOR(3 DOWNTO 0); -缓存待显示的BCD码 SIGNAL count: STD_LOGIC_VECTOR(2 DOWNTO 0); -用于计数BEGINdig=dig_r;seg=seg_r;PROCESS(clk_1)BEGIN IF RISING_EDGE(clk_1) THEN count dig_r dig_r dig_r=;disp_dat

    16、 dig_r=;disp_dat dig_r=;disp_dat dig_r=;disp_dat dig_r=;disp_dat dig_r=;disp_datnull;-其他不显示 END CASE; END IF;END PROCESS;PROCESS(disp_dat)BEGIN CASE disp_dat IS WHEN X0= seg_r seg_r seg_r seg_r seg_r seg_r seg_r seg_r seg_r seg_r seg_r seg_r seg_r seg_r seg_r seg_r=X8e; END CASE;-输入相应的BCD码,则相应的输出的数E

    17、ND PROCESS;END one;4整体设计及分析 4.1整体设计说明 首先是两个分频模块同时分频,系统输入3MHz和48MHz的时钟信号脉冲,两个分频模块分别产生100Hz和1KHz的分频信号,1KHz的分频信号进入到数码管显示模块。100Hz的分频信号进入到一个十进制计数模块,十进制计数模块产生的进位信号进入到下一个十进制计数模块,再产生进位信号又进入下一个十进制计数模块,接下来产生的进位信号进入一个六进制计数模块,六进制计数模块产生的进位信号再一次的进入十进制计数模块,产生的进位信号进入再次进入六进制模块,由于本设计的计数范围为1小时,所以到了这里就不需要在进位了。计数部分共用到了六

    18、个模块,即四个十进制计数模块和两个六进制计数模块。各计数模块的计数输出先接到锁存模块,进行计数结果的暂存,用总线连接。最后锁存的的输出接到数码管显示模块,用总线连接。 4.2 整体设计过程及遇到问题的解决方法 设计功能显示八位数码管只要求六位显示就可以了,而剩下的两位却依然乱码式的显示,所以我想修改显示模块的代码来去掉这两位显示,但自己或是请同学帮忙不管是怎么修改不是报错就是功能不显示,达不到效果,后来请老师来帮忙找下问题,结果他重新在编译下就实现了,说就是这样的问题。这样的事情我们每次修改代码以后也做了啊,并没有出现他那样的效果啊。所以到现在为之我还是不理解怎么实现的。 4.3设计整体逻辑图

    19、4.4引脚配置5.下载与调试 5.1、下载步骤 (a)将ByteBlaster电缆一端与微机并行口相连,另一端与实验箱的JTAG下载口相连。并打开实验箱电源。 (b)点击Hardware Setup按钮,将出现一个对话框。再点击对话框中的Add Hardware按钮,在下拉条中选择ByteBlaster(MV),指定配置时使用的并行口LPT1,点击Close按钮退出。 (c)在编程器窗口中检查编程文件和目标器件型号是否正确。如果选择的编程文件不正确,可以通过Delete、Add file、Change file按钮来删除、添加和更换文件。注意:对于该型号器件配置(编程)文件的扩展名为“.sof

    20、”。 (d)连接好试验箱及编程插座线,单击Start按钮启动编程下载。 5.2、测试的设置及测试方法 拨下设置的开始计数拨码开关,系统开始计数,数码管开始显示计数数字,拨下锁存拨码开关,系统计数暂停,数码管显示暂停时的计数结果,再拨下锁存拨码开关,系统紧接上次计数结果开始计时,拨下复位拨码开关,系统计数复位清零,数码管显示为零。 5.3、测试的结果 初步大概的完成设计要求,基本实现了秒计时的功能,但调用存储的功能没法实现。 5.4、测试中遇到的问题级解决方法 拨下锁存拨码开关,暂停秒计时,再次拨下,重新开始计时,但计时开始不是接着暂停时的计时结果,而是跳过一段时间开始计时的,跳过的时刻刚好等于

    21、暂停的时间。解决方法是把锁存模块的输入脉冲用系统输入脉冲代替。6.结论与心得开始做设计时总是会犯一些错误,只有经过不停的改错不停的编译才能得到正确的程序。在编程时,我充分使用了结构化的思想,这样程序检查起来也比较方便,调试时也给了我很大方便,只要一个模块一个模块的进行调就可以了,充分体现了结构化编程的优势。在设计中要求我要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事集成电路设计工作会有一定的帮助。在应用VHDL的过程中让我真正领会到了其并行运行与其他软件顺序执行的差别及其

    22、在电路设计上的优越性。用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法在数字系统设计中发挥越来越重要的作用。还有就是要求实现的那个功能我到现在还没想明白怎么弄,所以暂时就这样的结果了。7.参考文献:1 李国洪,胡辉,沈明山灯. EDA技术与实验 , 机械工业出版社 2 徐志军、王金明、尹廷辉、苏勇. EDA技术与PLD设计 , 人民邮电出版社3 雷伏容. VHDL电路设计 , 清华大学出版社4 陈忠平,高金定,高见芳. 基于Quartus2 的FPGA/CPLD设计与实践, 电子工业出版社5 潘松. EDA技术使用教程 ,科学出版社6 康光华. 电子技术基础-数字部分 ,高等教育出版社电子工程学院数字逻辑系统课程设计成绩评定表课题名称数字秒表设计设计任务与要求设计报告成绩作品成绩课程设计成绩指导教师:2012年12月 日


    注意事项

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

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




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

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

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


    收起
    展开