EDA课程设计报告__频率计[精心整理].docVIP

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
EDA课程设计报告__频率计[精心整理]

课 程 设 计 报 告 一、设计目的和要求 课程设计目的 (1).熟悉CPLD的开发软件的基本使用。 (2).理解频率计的测量原理。 (3).掌握CPLD逻辑电路设计方法。 (4).掌握虚拟数字频率计的软件设计。 课程设计的基本要求 在CPLD中设计一个数字频率计电路,设计要求为: 测量范围:1Hz~1MHz 。 课程设计类型 Vhdl程序设计 仪器和设备 1.电脑 2.max+plus2软件 设计过程 设计内容和要求 在CPLD中设计一个数字频率计电路,设计要求为: 测量范围:1Hz~1MHz 。 设计方法和开发步骤 3.设计思路 下图是8位十进制数字频率计的电路逻辑图,它由1个测频控制信号发生器TESTCTL、8个有时钟使能的十进制计数器的CNT10、1个32位锁存器REG32B组成。 1)测频控制信号发射器的设计 频率测量的基本原理是计算每秒钟内待测信号的脉冲个数。这就要求TESTCTL的计数使能信号TSTEN能产生一个1秒脉宽的周期信号,并对频率计的每一计数器CNT10的ENA使能端进行同步控制。当TSTEN高电平时,允许计数;低电平时,停止计数,并保持其所计的数。在停止计数期间,首先需要一个锁存信号LOAD的上跳沿将计数器在前1秒钟的计数值锁存进32位锁存器REG32B中,由外部的7段译码器译出并稳定显示,锁存信号之后必须有一清零信号CLR_CNT对计数器进行清零,为下一秒的计数操作作准备。 测频控制信号发生器是先建立一个由D触发器构成的二分频器,再在每次时钟CLK上沿到来时其值翻转。其中,控制信号时钟CLK的频率取1Hz,而信号TSTEN的脉宽恰好是1s,可以用做闸门信号。此时,根据测频的时序要求,可得出信号LOAD和CLR_CNT的逻辑描述。在计数完成后,即计数使能信号TSTEN在1s的高电平后,利用其反相值的上跳沿产生一个锁存信号LOAD,0.5秒后,CLR_CNT产生一个清零信号上跳沿。 寄存器REG32B的设计 设置锁存器的好处是,显示的数据稳定,不会由于周期性的清零信号而不断闪烁。若已有32位BCD码存在于此模块的输入口,在信号LOAD的上升沿后即被锁存到寄存器REG32B的内部,并由REG32B的输出端输出,然后由实验板上的7段译码器译成能在数码管上显示的相对应的数值。 3)十进制计数器CNT10的设计 此十进制计数器的特殊之处是,有一时钟使能输入端ENA,用于锁定当前值。当高电平时允许计数,低电平时计数禁止。 4、设计难点 在设计到最后把各个模块组到一块时,有的端口定义不太容易明确。 设计结果与分析 思路问题以及测试结果失败分析 在做组合freq的模块时,由于对每个端口不明确,所以编程时出现了错误,后来仔细的研究了每个模块的端口,然后把端口定义正确了。 然后对freq的波形图进行仿真,刚开始由于设计的频率太高了,导致在计算的时候要话费太多时间,后来经过老师提点,把end time调成8s和fsin的multipled by调成最大的32000,才把结果调小。最终的结果与理论值几乎没有误差。 程序简要说明 10进制计数器模块 library ieee; use ieee.std_logic_1164.all; entity cnt10 is port(clk:in std_logic; --计数时钟信号 clr:in std_logic; --清零信号 ena:in std_logic; --计数使能信号 cq: out integer range 0 to 15; -4位计数结果输出 carry_out:out std_logic); --计数进位 end entity cnt10; architecture art of cnt10 is signal cqi:integer range 0 to 15; begin process(clk,clr,ena)is begin if clr=1then cqi=0; --计数器异步清零 elsif clkevent and clk=1then if ena=1 then if cqi=9 then cqi=cqi+1; else cqi=0;end if; --等于9,则计数器清零 end if; end if; end process; process(cqi)is begin

文档评论(0)

***** + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档