- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 - 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
 - 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
 - 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
 - 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
 
                        查看更多
                        
                    
                8.3  实验三:数字频率计的设计
                          
  1.实验目的  (1) 熟悉Quartus Ⅱ软件的基本使用方法。  (2) 熟悉EDA实验开发系统的基本使用方法。  (3) 学习VHDL基本逻辑电路的综合设计应用。  2.实验内容  设计并调试好8位十进制数字频率计,并用EDA实验开发系统(事先应选定拟采用的实验芯片的型号)进行硬件验证。
3.实验要求  (1) 画出系统的原理框图,说明系统中各主要组成部分的功能。  (2) 编写各个VHDL源程序。  (3) 根据系统的功能,选好测试用例,画出测试输入信号波形或编好测试程序。  (4) 根据选用的EDA实验开发装置编好用于硬件验证的管脚锁定表格或文件。  (5) 记录系统仿真、逻辑综合及硬件验证结果。  (6) 记录实验过程中出现的问题及解决办法
4. 系统设计思路
     图6.15是8位十进制数字频率计的电路逻辑图,它由1个测频控制信号发生器TESTCTL、8个有时钟使能的十进制计数器CNT10、1个32位锁存器REG32B组成。以下分别叙述频率计各逻辑模块的功能与设计方法。 
图6.15  8位十进制数字频率计逻辑图
  1) 测频控制信号发生器的设计
     频率测量的基本原理是计算每秒钟内待测信号的脉冲个数。这就要求TESTCTL的计数使能信号TSTEN能产生一个1秒脉宽的周期信号,并对频率计的每一计数器CNT10的ENA使能端进行同步控制。当TSTEN高电平时,允许计数;低电平时,停止计数,并保持其所计的数。在停止计数期间,首先需要一个锁存信号LOAD的上跳沿将计数器在前1秒钟的计数值锁存进32位锁存器REG32B中,由外部的7段译码器译出并稳定显示。锁存信号之后,必须有一清零信号CLR_CNT对计数器进行清零,为下一秒钟的计数操作做准备
测频控制信号发生器的工作时序如图6.16所示。为了产生这个时序图,需首先建立一个由D触发器构成的二分频器,在每次时钟CLK上沿到来时其值翻转。其中,控制信号时钟CLK的频率取1 Hz,而信号TSTEN的脉宽恰好为1 s,可以用作闸门信号。此时,根据测频的时序要求,可得出信号LOAD和CLR_CNT的逻辑描述。由图6.16可见,在计数完成后,即计数使能信号TSTEN在1 s的高电平后,利用其反相值的上跳沿产生一个锁存信号LOAD,0.5 s后,CLR_CNT产生一个清零信号上跳沿
图6.16  测频控制信号发生器工作时序 
   2) 寄存器REG32B的设计
     设置锁存器的好处是,显示的数据稳定,不会由于周期性的清零信号而不断闪烁。若已有32位BCD码存在于此模块的输入口,在信号LOAD的上升沿后即被锁存到寄存器REG32B的内部,并由REG32B的输出端输出,然后由实验板上的7段译码器译成能在数码管上显示的相对应的数值。 
3) 十进制计数器CNT10的设计
    此十进制计数器的特殊之处是,有一时钟使能输入端ENA,用于锁定计数值。当高电平时计数允许,低电平时计数禁止。 
5. ?VHDL源程序
    1) 有时钟使能的十进制计数器的源程序CNT10.VHD
--CNT10.VHD
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;
        CO: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=1THEN
         IF CQI9 THEN CQI=CQI+1;
         ELSE CQI=0;END IF;
       END IF;
     END IF;
   END PROCESS;
   PROCESS(CQI)IS
     BEGIN
     IF CQI=9 THEN CO=1;
     ELSE CO=0;END IF;
   END PROCESS;
   CQ=CQI;
 END ARCHITECTUR
                
原创力文档
                        

文档评论(0)