软件:ISE
语言:VHDL
代码功能:
数字频率计
1.输入为矩形脉冲,频率范围 10Hz~100kHz;
2.用五位数码管显示;只显示最后的结果,不要将计数过程显示出来;
3.单位为 Hz 和 kHz 两档,自动切换。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序运行
4. 管脚约束
5. 程序仿真
5.1 整体仿真图
5.2 控制模块仿真图
5.3 计数器模块仿真图
5.4 锁存器模块仿真图
5.5 显示模块仿真图
部分代码展示:
LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; --计数器模块 ENTITY counter IS PORT ( signal_in : IN STD_LOGIC;--被测信号 en : IN STD_LOGIC;--1S闸门信号 rst : IN STD_LOGIC;--复位 number : OUT STD_LOGIC_VECTOR(31 DOWNTO 0)--频率值32位,8个数,每个数4位,共32位 ); END counter; ARCHITECTURE trans OF counter IS --最大99MHz=99_000_000Hz共8个 SIGNAL num_0 : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0000"; SIGNAL num_1 : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0000"; SIGNAL num_2 : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0000"; SIGNAL num_3 : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0000"; SIGNAL num_4 : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0000"; SIGNAL num_5 : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0000"; SIGNAL num_6 : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0000"; SIGNAL num_7 : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0000"; BEGIN number <= (num_7 & num_6 & num_5 & num_4 & num_3 & num_2 & num_1 & num_0);--单位Hz --计数,计数1s内的信号周期数,计数值就是频率值 PROCESS (signal_in, rst) BEGIN IF (rst = '1') THEN num_0 <= "0000"; num_1 <= "0000"; num_2 <= "0000"; num_3 <= "0000"; num_4 <= "0000"; num_5 <= "0000"; num_6 <= "0000"; num_7 <= "0000"; ELSIF (signal_in'EVENT AND signal_in = '1') THEN IF (en = '1') THEN--计数,低位都是9,则高位加1,低位清零,例如加到999,则变为1000 IF (num_7 = "1001" AND num_6 = "1001" AND num_5 = "1001" AND num_4 = "1001" AND num_3 = "1001" AND num_2 = "1001" AND num_1 = "1001" AND num_0 = "1001") THEN num_0 <= "0000"; num_1 <= "0000"; num_2 <= "0000"; num_3 <= "0000"; num_4 <= "0000"; num_5 <= "0000"; num_6 <= "0000"; num_7 <= "0000"; ELSIF (num_6 = "1001" AND num_5 = "1001" AND num_4 = "1001" AND num_3 = "1001" AND num_2 = "1001" AND num_1 = "1001" AND num_0 = "1001") THEN num_0 <= "0000"; num_1 <= "0000"; num_2 <= "0000"; num_3 <= "0000"; num_4 <= "0000"; num_5 <= "0000"; num_6 <= "0000"; num_7 <= num_7 + "0001";--低位为9,则高位加1,低位清零
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=820
阅读全文
409