• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

Quartus 8位频率计的设计VHDL代码实验箱

06/10 15:28
464
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-23122F93203E4.doc

共1个文件

名称:Quartus 8位频率计的设计VHDL代码实验箱

软件:Quartus

语言:Verilog

代码功能:

8位频率计的设计与实现

实验目的:设计并制作一个8位频率计

实验内容:根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为秒的输入信号脉冲计数允许的信号:1秒计数结束后,计数值被锁入锁存器,计数器清0,为下一测频计数周期作好准备。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在实验箱验证,实验箱如下,其他实验箱可以修改管脚适配:

实验箱 (1).jpg

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序运行

管脚分配

RTL图

4. 程序仿真

4.1 整体仿真图

4.2 控制模块仿真图

4.3 计数器模块仿真图

4.4 锁存器模块仿真图

5.5 显示模块仿真图

部分代码展示:

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
   USE ieee.std_logic_unsigned.all;
   
--控制模块
ENTITY Frq_Ctrl IS
   PORT (
      clk  : IN STD_LOGIC;--时钟1000Hz
      en   : OUT STD_LOGIC;--使能--1S的闸门信号
      rst  : OUT STD_LOGIC;--清零
      lat  : OUT STD_LOGIC--锁存
   );
END Frq_Ctrl;
ARCHITECTURE trans OF Frq_Ctrl IS
   SIGNAL count : integer := 0;
   
BEGIN
   --计数器0~1050
   PROCESS (clk)
   BEGIN
      IF (clk'EVENT AND clk = '1') THEN
         IF (count = 1050) THEN--为减小仿真时间,计数值减小1000倍,以下同理
            count <= 0;
         ELSE
            count <= count + 1;
         END IF;
      END IF;
   END PROCESS;
--使能   
   PROCESS (clk)
   BEGIN
      IF (clk'EVENT AND clk = '1') THEN--50_00
         IF (count < 999) THEN--1秒的使能信号,在1s内计数脉冲数就是频率值
            en <= '1';
         ELSE
            en <= '0';
         END IF;
      END IF;
   END PROCESS;
   
   --锁存
   PROCESS (clk)
   BEGIN
      IF (clk'EVENT AND clk = '1') THEN--计数值减小1000倍,以下同理
         IF (count < 1020 AND count > 1010) THEN
            lat <= '1';
         ELSE
            lat <= '0';
         END IF;
      END IF;
   END PROCESS;
   
   --清零
   PROCESS (clk)
   BEGIN
      IF (clk'EVENT AND clk = '1') THEN--计数值减小1000倍
         IF (count < 1040 AND count > 1030) THEN
            rst <= '1';
         ELSE
            rst <= '0';
         END IF;
      END IF;
   END PROCESS;
   
   
END trans;

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=421

  • 2-23122F93203E4.doc
    下载

相关推荐