如何利用vhdl语言对信号的高电平进行时间测量? 5
我知道是利用在高电平期间对clk进行计数,重点是如何进行编程,有没有大神指导,帮忙写一个程序,要准确的。在线等。...
我知道是利用在高电平期间对clk进行计数,重点是如何进行编程,有没有大神指导,帮忙写一个程序,要准确的。在线等。
展开
1个回答
展开全部
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
USE IEEE.std_logic_unsigned.ALL;
ENTITY counter IS
GENERIC(n : positive := 16);
PORT(clk,en : IN std_logic;
counter_out : OUT std_logic_vector(n-1 DOWNTO 0));
END counter;
ARCHITECTURE behavioral OF counter IS
SIGNAL counter_t : std_logic_vector(n-1 DOWNTO 0);
BEGIN
PROCESS(clk)
BEGIN
IF rising_edge(clk) THEN
IF en='1' THEN
counter_t <= counter_t + 1;
ELSE
counter_t <= (OTHERS => '0');
END IF;
END IF;
END PROCESS;
PROCESS(en)
BEGIN
IF falling_edge(en) THEN
counter_out <= counter_t;
END IF;
END PROCESS;
END behavioral;
USE IEEE.std_logic_1164.ALL;
USE IEEE.std_logic_unsigned.ALL;
ENTITY counter IS
GENERIC(n : positive := 16);
PORT(clk,en : IN std_logic;
counter_out : OUT std_logic_vector(n-1 DOWNTO 0));
END counter;
ARCHITECTURE behavioral OF counter IS
SIGNAL counter_t : std_logic_vector(n-1 DOWNTO 0);
BEGIN
PROCESS(clk)
BEGIN
IF rising_edge(clk) THEN
IF en='1' THEN
counter_t <= counter_t + 1;
ELSE
counter_t <= (OTHERS => '0');
END IF;
END IF;
END PROCESS;
PROCESS(en)
BEGIN
IF falling_edge(en) THEN
counter_out <= counter_t;
END IF;
END PROCESS;
END behavioral;
光派通信
2024-09-03 广告
2024-09-03 广告
波分复用(WDM)技术是一种在光纤通信中广泛应用的技术,它允许在同一根光纤中同时传输多个不同波长的光信号。这些光信号在发送端通过复用器合并,然后在光纤中传输,最后在接收端通过解复用器分离并恢复成原始信号。WDM技术极大地提高了光纤的传输容量...
点击进入详情页
本回答由光派通信提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询