首页 > 其他分享 >基于EDA技术的频率计系统设计

基于EDA技术的频率计系统设计

时间:2022-10-10 17:03:09浏览次数:48  
标签:STD 基于 EDA DOWNTO CNT10 LOGIC PORT 频率计 OUT


频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。通常情况下计算每秒内待测信号的脉冲个数,此时我们称闸门时间为1秒。闸门时间也可以大于或小于一秒。闸门时间越长,得到的频率值就越准确,但闸门时间越长则每测一次频率的间隔就越长。闸门时间越短,测的频率值刷新就越快,但测得的频率精度就受影响。通过两种不同的设计思路,设计两个不同的频率计,通过观察实验结果,得出频率计精度,作出对比。在此次设计中,均以1秒为闸门时间,在该时间内计算待测信号的脉冲个数,并显示频率值。

4.2 基于FPGA的数字频率计的设计与实现

4.2.1 顶层模块设计

目前,FPGA的设计方法主要有两种,自下而上的设计方法与自上而下的设计方法。另外。还可根据实际情况,利用这两种方法的组合进行综合设计,即综合设计方法。自下而上的设计方法是一种传统的电子系统设计方法,它们的设计流程分别如下所示:

 


系统分解



单元设计



功能块划分



子系统设计



系统合成


 

 

图4-1 自下而上的设计方式

 


行文设计



结构设计



逻辑设计



电路设计



版图设计


 

 

图4-2 自上而下的设计方式

所以,在本系统,我们也将对其进行自顶向下的设计方法,其顶层代码如下所示:

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY FREQ IS

PORT(FSIN:IN STD_LOGIC;
CLK:IN STD_LOGIC;
DOUT:OUT STD_LOGIC_VECTOR(31 DOWNTO 0));
END ENTITY FREQ;

ARCHITECTURE ART OF FREQ IS
COMPONENT CNT10 IS

PORT(CLK,CLR,ENA:IN STD_LOGIC;
CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
CARRY_OUT:OUT STD_LOGIC);
END COMPONENT CNT10;

COMPONENT REG32B IS

PORT(LOAD:IN STD_LOGIC;
DIN:IN STD_LOGIC_VECTOR(31 DOWNTO 0);
DOUT:OUT STD_LOGIC_VECTOR(31 DOWNTO 0));
END COMPONENT REG32B;

COMPONENT TESTCTL IS

PORT(CLK:IN STD_LOGIC;
TSTEN:OUT STD_LOGIC;
CLR_CNT:OUT STD_LOGIC;
LOAD:OUT STD_LOGIC);

END COMPONENT TESTCTL;
SIGNAL SE,SC,SL:STD_LOGIC;
SIGNAL S1,S2,S3,S4,S5,S6,S7,S8:STD_LOGIC;
SIGNAL SD:STD_LOGIC_VECTOR(31 DOWNTO 0);
BEGIN
U0:TESTCTL PORT MAP(CLK=>CLK,TSTEN=>SE,CLR_CNT=>SC,LOAD=>SL);
U1:CNT10 PORT MAP(CLK=>FSIN,CLR=>SC,ENA=>SE,
CQ=>SD(3 DOWNTO 0),CARRY_OUT=>S1);
U2:CNT10 PORT MAP(CLK=>S1,CLR=>SC,ENA=>SE,
CQ=>SD(7 DOWNTO 4),CARRY_OUT=>S2);
U3:CNT10 PORT MAP(S2,SC,SE,SD(11 DOWNTO 8),S3);
U4:CNT10 PORT MAP(S3,SC,SE,SD(15 DOWNTO 12),S4);
U5:CNT10 PORT MAP(S4,SC,SE,SD(19 DOWNTO 16),S5);
U6:CNT10 PORT MAP(S5,SC,SE,SD(23 DOWNTO 20),S6);
U7:CNT10 PORT MAP(S6,SC,SE,SD(27 DOWNTO 24),S7);
U8:CNT10 PORT MAP(S7,SC,SE,SD(31 DOWNTO 28),S8);
U9:REG32B PORT MAP(LOAD=>SL,DIN=>SD(31 DOWNTO 0),DOUT=>DOUT);
END ARCHITECTURE ART;

 

4.2.2计数器模块

该十进制计数模块由八个一位十进制计数器组成,计数器的特殊之处是,有一个时钟使能输入端ENA,用于锁定计数值。当高电平是计数允许,低电平时计数禁止。

该测频的八位十进制频率计的计数模块,先通过VHDL语言编写一位十进制计数器,再将其原件例化后搭建一个八位十进制计数模块。

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;
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='1'THEN CQI<=0;
ELSIF CLK'EVENT AND CLK='1'THEN
IF ENA='1'THEN
IF CQI<9 THEN CQI<=CQI+1;
ELSE CQI<=0;END IF;
END IF;
END IF;
END PROCESS;
PROCESS(CQI) IS
BEGIN
IF CQI=9 THEN CARRY_OUT<='1';
ELSE CARRY_OUT<='0';END IF;
END PROCESS;
CQ<=CQI;
END ARCHITECTURE ART;

4.2.3数字存模块

锁存模块由锁存器构成,主要功能是数据的稳定显示,不会由于周期行的清零信号而不断闪烁。在信号LOAD的上升沿后即被所存到寄存器的内部,并由锁存器的输出端输出,然后由实验板的7段译码器译成能在数码管上显示的相对应的数值。

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY REG32B IS
PORT(LOAD:IN STD_LOGIC;
DIN:IN STD_LOGIC_VECTOR(31 DOWNTO 0);
DOUT:OUT STD_LOGIC_VECTOR(31 DOWNTO 0));
END ENTITY REG32B;
ARCHITECTURE ART OF REG32B IS
BEGIN
PROCESS(LOAD,DIN) IS
BEGIN
IF LOAD'EVENT AND LOAD='1' THEN DOUT<=DIN;
END IF;
END PROCESS;
END ARCHITECTURE ART;

 

    最后我们开始系统的仿真,由于在仿真过程中,1S钟时间将会仿真很长时间,所以我们考虑缩短仿真时间,我们首先假设系统时钟频率1hz对于设置参数为如下所示(左图),而输入的被测试信号的频率为(右图):

基于EDA技术的频率计系统设计_十进制

 

基于EDA技术的频率计系统设计_系统时钟_02

图4-5 参数设置一

这里表示输入的时钟是系统时钟的10倍,即10hz,那么其仿真结果为:

基于EDA技术的频率计系统设计_十进制_03

图4-6 系统仿真结果

检测到信号的频率为10hz。

 

 下面再做两次仿真:

基于EDA技术的频率计系统设计_十进制_04

 

基于EDA技术的频率计系统设计_参数设置_05

图4-7 参数设置二

这里表示输入的时钟是系统时钟的100倍,即100hz,那么其仿真结果为:

基于EDA技术的频率计系统设计_系统时钟_06

图4-7 系统仿真结果

基于EDA技术的频率计系统设计_十进制_04

 

基于EDA技术的频率计系统设计_参数设置_05

图4-8 参数设置三

这里表示输入的时钟是系统时钟的1000倍,即1khz,那么其仿真结果为:

基于EDA技术的频率计系统设计_系统时钟_06

图4-9 系统仿真结果

    由于MAXPLUSII软件内部其最大设置为32000,因此在该系统中,我们无法仿真10Mhz的效果,但是其实际上由于显示的是8位,即10M。那么在实际的应用中,我们可以测量到10Mhz的信号。

 

 

 

标签:STD,基于,EDA,DOWNTO,CNT10,LOGIC,PORT,频率计,OUT
From: https://blog.51cto.com/u_15815923/5744766

相关文章

  • 巧用VBA实现:基于多个关键词模糊匹配Excel多行数据
    在用Excel处理实际业务中,我们会碰到如下场景:1、从一堆人名中找到包含某些关键字的名字;2、从银行流水文件中根据【备注】字段找到包含某些关键字的,统一识别为......
  • 基于32×32点阵LED模块的书写显示屏
       LED点阵显示屏被用到很多领域,随着电子技术的发展,LED点阵书写显示屏的广泛应用是一种趋势。传统的LED点阵显示是由微处理器实现的,但是以FPGA做控制器将成为发展趋势。......
  • 基于灰度变换的图像增强及MATLAB实现
    一  引言:图像增强技术是不考虑图像降质的原因,只将图像中感兴趣的特征有选择地突出,而衰减其不需要的特征,故改善后的图像不一定要去逼近原图像。如突出目标物轮廓,去除各类......
  • 基于Matlab实现的图像特效处理毕业设计
    数字图像是指由被称作象素的小块区域组成的二维矩阵。将一幅二维的图像通过有限个离散点来表示就成为了数字图像,其中的每个点称为图像元素,即像素。像素值往往用来表示像素的......
  • 基于matlab仿真的数字调制与解调设计
    随着通信系统复杂性的增加,传统的手工分析与电路板试验等分析设计方法已经不能适应发展的需要,通信系统计算机模拟仿真技术日益显示出其巨大的优越性。计算机仿真是根据被研究......
  • 基于matlab的-数字调制技术仿真
    数字信号的调制与解凋是实现频带传输的关键技术。数字调制有三种基本方式:幅移键控ASK、频移键控FSK、相移键控PSK。实际应用中基本上是采用这三种调制方式以及这些调制方式......
  • 基于matlab的连续系统的频域分析
    一、实验目的:1、掌握连续时间系统变换区域分析的基本方法。二、实验设备:安装有matlab6.5以上版本的PC机一台。三、实验内容、源程序及执行结果如图所示系统:(1)对不同的RC值......
  • 基于systemgenerator的根号计算
    一、系统设计仿真结果以及硬件资源估计(用于复制到你的那个txt文件中去即可。)顶层框图: 整个系统的结构如下所示: 进入内部模块则有: 其主要由三大部分组成: 第一部分:输入信......
  • 基于FPGA的汉诺塔游戏
        汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天......
  • 基于Qlearning的倒立摆控制算法matlab程序
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%clc;clearallcloseall%flops(0);%holdoff%%=====================......