VHDL 语言编程,检测两个周期信号是否同时达到上升沿或者下降沿变化

2024-12-02 05:16:15
推荐回答(2个)
回答1:

是的,在一个process中不能检测两个上升沿变化
可以用一个中间变量记录上一次的值就可以了,例如:
if(clk11='0' AND clk1='1') then --检测上升沿
clk11<=clk1;

回答2:

你试试下面这样成不成:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;

ENTITY pulsesd IS
PORT ( CLK1: IN STD_LOGIC;
CLK2: IN STD_LOGIC;
CLK3: OUT STD_LOGIC);
END ENTITY ;

ARCHITECTURE ONE OF pulsesd IS
SIGNAL A: STD_LOGIC := '0';
BEGIN
PROCESS (CLK1,CLK2)
BEGIN
IF RISING_EDGE(CLK1) THEN
IF CLK2='1' AND CLK2'LAST_VALUE='0' THEN
A <= NOT A;
END IF;
END IF;
END PROCESS;
CLK3 <= A;
END ONE;