EDA实现4位十进制频率计设计

该博客详细介绍了如何使用VHDL设计一个4位十进制频率计,包括顶层文件、Tctl模块、16位锁存器reg16的VHDL实现以及scan_led模块的功能说明。Tctl模块负责产生测频控制信号,reg16用于锁存数据,而scan_led则实现了动态显示LED的扫描频率控制,建议扫描频率为20Hz。
摘要由CSDN通过智能技术生成

顶层文件

包含四种模块:Tctl,reg16,scan_led和四个cnt10,如图:
在这里插入图片描述
1.端口说明
F1Hz:给Tctl模块提供1Hz的频率输入
Fin:被测频率输入
scan_led:给scan_led模块提供扫描频率输入,建议使用20hz
bt[1…0]:片选信号输出
sg[6…0]:译码信号输出
cout:进位信号

Tctl模块说明

根据频率的定义和测量的基本的原理,测定信号的频率必须有一个脉宽为1s的对输入信号脉冲计数允许的信号:1s计数结束或,计数值锁入锁存器的锁存信号和为下一测频计数周期做准备的计数器清零信号。这3个信号可以由一个测频控制信号发生器Tctl产生。
Tctl设计:计数信号使能信号en能产生一个1s脉宽的周期信号,并对频率器的每个计数器cnt10的en使能端进行同步控制。
Tctl控制模块VHDL源代码如下

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity Tctl is
	port(		clkk:in std_logic;
		 en,rst,load:out std_logic);
	end;

architecture behav of Tctl is
	signal div2clk:std_logic;
	
	begin 
		process(clkk)
		
		begin 
			if clkk'event and clkk='1' then
				div2clk<=not div2clk;
			end if;
		end process;
		
		process(clkk,div2clk)
		
		begin
			if clkk='0' and div2clk='0' then
				rst<='1';
			  else
				rst
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜子柒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值