欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    EDA课程设计数字频率计.doc

    • 资源ID:4146482       资源大小:186.50KB        全文页数:12页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    EDA课程设计数字频率计.doc

    EDA课程设计报告题 目: 数字频率计 姓 名: 院 系: 电气学院 专业: 电子信息工程 指导教师: 完成时间: 2012年 6 月5 日目 录1 课程设计题目、内容与要求 1.1 设计内容1.2 具体要求2 系统设计 2.1 设计思路2.2 系统原理与设计说明3 系统实现 4 系统仿真 5硬件验证(操作)说明6总结 7 参考书目 1 课程设计题目、内容与要求1.1课程设计的题目:数字频率计设计1.2课程设计内容:(1)设计一个能测量方波信号的频率计;(2)测量范围是0-999999Hz;(3)结果用十进制数显示。2 系统设计2.1设计思路:2.1.1 数字频率计是一种用十进制数字显示被测信号频率的数字测量仪器.它的基本功能是测量方波信号及其他各种单位时间内变化的物理量。本数字频率计采用自顶向下的设计思想,通过闸门提供的1s闸门时间对被测信号进行计数及测出的被测信号的频率,测出的频率再通过译码器译码后输出给显示器显示。根据系统设计的要求,数字频率计的电路原理框图如下:4位十进制计数器锁存电路译码电路计数器闸门控制电路片选电路数据选择电路LED数码显示待测输入信号4MHZ时钟4MHZ时钟图1 数字频率计电路原理框图2.2 系统原理与设计说明系统各个模块的功能如下:221标准时钟发生电路模块借用实验板上标准时钟发生电路,为计数闸门控制电路提供一个标准8Hz信号。222 计数器闸门控制电路模块计数器闸门控制电路就是产生三个控制信号,即计数器复位信号、4位十进制计数器允许计数信号、锁存信号。2.2.3锁存电路模块锁存电路就是为了让LED数码管在信号来临之前保持计数值不变。2.2.4计数器复位电路模块计数器复位电路是让频率计恢复到计数初始态。2.2.5 LED数码管驱动电路模块LED数码管驱动电路就是为LED数码管提供驱动电压。 3系统实现此部分先讲各个模块再讲模块联调的实现。3.1各部分模块的源程序 模块 FEN 见图 1.1 ,通过对 4MHz 时钟进行分频以获得 0.5 Hz 时钟,为核心模块 CORNA 提供 1 的闸门时间。library ieee; use ieee.std_logic_1164.all; entity fen is port(clk:in std_logic; q:out std_logic); end fen;   architecture fen_arc of fen is begin process(clk) variable cnt: integer range 0 to 3999999; variable x:std_logic; begin if clk'event and clk='1'then if cnt<3999999 then cnt:=cnt+1; else cnt:=0; x:=not x; end if; end if; q<=x; end process; end fen_arc; 模块 SEL见图1.2,该模块产生数码管的片选信号。library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity selx is port(clk:in std_logic; sel:inout std_logic_vector(2 downto 0); end selx;   architecture sel_arc of sexl is begin process(clk) variable cnt:std_logic_vector(2 downto 0); begin if clk'event and clk='1'then cnt:=cnt+1; end if; sel<=cnt; end process; end sel_arc; 核心模块 CORNA见图1.3,该模块是整个程序的核心,它能在 1 的闸门时间里完成对被测信号频率计数的功能,并通过选择输出数据实现自动换档的功能。library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity corna is port(clr,sig,door:in std_logic; alm:out std_logic; q3,q2,q1,q0,dang:out std_logic_vector(3 downto 0); end corna;   architecture corn_arc of corna is begin process(door,sig) variable c0,c1,c2,c3,c4,c5,c6:std_logic_vector(3 downto 0); variable x:std_logic; begin if sig'event and sig='1'then if door='1'then if c0<"1001"then c0:=c0+1; else c0:="0000" if c1<"1001"then c1:=c1+1; else c1:="0000" if c2<"1001"then c2:=c2+1; else c2:="0000" if c3<"1001"then c3:=c3+1; else c3:="0000" if c4<"1001"then c4:=c4+1; else c4:="0000" if c5<"1001"then c5:=c5+1; else c5:="0000" if c6<"1001"then c6:=c6+1; else c6:="0000" alm<='1' end if; end if; end if; end if; end if; end if; end if; else if clr='0'then alm<='0' end if; c6:="0000" c5:="0000" c4:="0000" c3:="0000" c2:="0000" c1:="0000" c0:="0000" end if; if c6/="0000"then q3<=c6; q2<=c5; q1<=c4; q0<=c3; dang<="0100" elsif c5/="0000"then q3<=c5; q2<=c4; q1<=c3; q0<=c2; dang<="0011" elsif c4/="0000"then q3<=c4; q2<=c3; q1<=c2; q0<=c1; dang<="0010" elsif c3/="0000"then q3<=c3; q2<=c2; q1<=c1; q0<=c0; dang<="0001" end if; end if; end process; end corn_arc; 模块 LOCK见图1.4,该模块实现锁存器的功能,在信号L的下降沿到来时将信号A4、A3、A2、A1锁存。library ieee; use ieee.std_logic_1164.all; entity lock is port(l:in std_logic; a4,a3,a2,a1,a0:in std_logic_vector(3 downto 0); q4,q3,q2,q1,q0:out std_logic_vector(3 downto 0); end lock; architecture lock_arc of lock is begin process(l) variable t4,t3,t2,t1,t0:std_logic_vector(3 downto 0); begin if l'event and l='0'then t4:=a4; t3:=a3; t2:=a2; t1:=a1; t0:=a0; end if; q4<=t4; q3<=t3; q2<=t2; q1<=t1; q0<=t0; end process; end lock_arc; 模块 CH见图1.5,该模块对应于数码管片选信号,将相应通道的数据输出,其中档位也通过显示。 library ieee; use ieee.std_logic_1164.all;   entity ch is port(sel:in std_logic_vector(2 downto 0); a3,a2,a1,a0,dang:in std_logic_vector(3 downto 0); q:out std_logic_vector(3 downto 0); end ch;   architecture ch_arc of ch is begin process(sel) begin case sel is when"000"=>q<=a0; when"001"=>q<=a1; when"010"=>q<=a2; when"011"=>q<=a3; when"111"=>q<=dang; when others=>q<="1111" end case; end process; end ch_arc; 6模块 DISP见图1.6,该模块为4线七段译码器。 library ieee; use ieee.std_logic_1164.all;   entity disp is port(d:in std_logic_vector(3 downto 0); q:out std_logic_vector(6 downto 0); end disp;   architecture disp_arc of disp is begin process(d) begin case d is when "0000"=>q<="0111111" when "0001"=>q<="0000110" when "0010"=>q<="1011011" when "0011"=>q<="1001111" when "0100"=>q<="1100110" when "0101"=>q<="1101101" when "0110"=>q<="1111101" when "0111"=>q<="0100111" when "1000"=>q<="1111111" when "1001"=>q<="1101111" when others=>q<="0000000" end case; end process; end disp_arc;3.17 整个系统的顶层设计模块该部分讲述用元件例化的方法来实现模块联调LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY hql IS PORT(clr,sig,clk:IN STD_LOGIC; alm:OUT STD_LOGIC;q:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);sel:INOUT STD_LOGIC_VECTOR(2 DOWNTO 0);END hql;ARCHITECTURE sd OF hql ISCOMPONENT fenport(clk:in std_logic;q:out std_logic);end COMPONENT;COMPONENT selxport(clk:in std_logic;sel:inout std_logic_vector(2 downto 0);end COMPONENT;COMPONENT cornaport(clr,sig,door:in std_logic;alm:out std_logic;q3,q2,q1,q0,dang:out std_logic_vector(3 downto 0);end COMPONENT;COMPONENT lockport(l:in std_logic;a4,a3,a2,a1,a0:in std_logic_vector(3 downto 0); q4,q3,q2,q1,q0:out std_logic_vector(3 downto 0); end COMPONENT;COMPONENT chport(sel:in std_logic_vector(2 downto 0); a3,a2,a1,a0,dang:in std_logic_vector(3 downto 0); q:out std_logic_vector(3 downto 0);end COMPONENT;COMPONENT dispport(d:in std_logic_vector(3 downto 0); q:out std_logic_vector(6 downto 0); end COMPONENT;SIGNAL qq:STD_LOGIC;SIGNAL qq3,qq2,qq1,qq0,qqdang:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL tt4,tt3,tt2,tt1,tt0:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL ww:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINu1:fen PORT MAP(clk=>clk,q=>qq);u2:selx PORT MAP(clk=>clk,sel=>sel);u3:corna PORT MAP(clr=>clr,sig=>sig,door=>qq,alm=>alm,q3=>qq3,q2=>qq2,q1=>qq1,q0=>qq0,dang=>qqdang);u4:lock PORT MAP(l=>qq,a4=>qq3,a3=>qq3,a2=>qq2,a1=>qq1,a0=>qqdang,q4=>tt4,q3=>tt3,q2=>tt2,q1=>tt1,q0=>tt0); u5:ch PORT MAP(sel=>sel,a3=>tt4,a2=>tt3,a1=>tt2,a0=>tt1,dang=>tt0,q=>ww);u6:disp PORT MAP(d=>ww,q=>q);END sd;本部分讲述的是用图形的方法来实现模块联调,在Mux plusII中现将编译好的各模块生成为图形(Filecreat Default Symbol),再打开新建一个图形编辑器(FileNewGraphic Editor file)进行图形拼凑编译就可以了,最后的图形如下图: 4 系统仿真整个系统 的仿真波形如下:测试信号是频率为5kHz脉冲时的仿真波形图第一次仿真中的换档情况测试信号是频率为25kHz脉冲时的仿真波形图测试信号是频率为250kHz脉冲时的仿真波形测试信号是周期为6ms脉冲时的仿真波形图5硬件验证说明将下载好程序的主芯片根据事先定义好的管脚连好线,clk端口用实验箱的输出为4MHz的标准时基信号,sig端口接入被测的信号,clr端口连接一个电平开关,将电平开关-置高电平,输出端接好LED显示器就可以观察被测信号的频率了。6 总结这次课程设计的主要任务是设计一个数字频率计,虽然老师为我们提供了一些相关的信息,也给了我们一个实验设计的轮廓,但在实际设计过程中还是遇到了不少的问题。画流程图、编写程序、编译以及仿真等等,当有不清楚的时候就查一些相关的资料并向别的同学请教,然后再编再改,直到成功为止。通过自己的努力和同学的帮助完成了这次设计,但我觉得过程更重要。通过这次的课程设计,让我明白了“三人行,必有我师焉”,更让我懂得了,在困难和未知面前,只要我们勇敢地去尝试,总结经验,汲取教训,努力做好每一点,那么我们就会有所收获。7参考书目1PLD与数字系统设计李辉 西安电子科技大学出版社 20052集成电路设计VHDL教程赵俊超 等著 北京:希望电子出版社2002 3VHDL数字系统设计与高层次综合林敏 方颖立著北京:电子工业出版社 20024VHDL程序设计曾繁泰 陈美金著北京: 清华大学出版社 20015VHDL 实用教程潘松 王国栋著 成都:电子科技大学出版社 20016数字电路逻辑设计王毓银著 北京:高等教育出版社 2001

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开