signal förändring i VHDL

A

Alexz

Guest
Hur man upptäcker en std_logic_vector förändring?
Jag ser att jag inte kan använda "" ändra "attribut eftersom det inte syntetiserbart.

 
Vad du kan göra är, försena signal med 1 klockcykel och sedan utföra XOR med fördröjd signal

Låt oss anta att y vara din std_logic_vector och f1_y att den fördröjda signalen

detect_change <= f1_y XOR y;

när det sker en förändring i Y, kommer det att finnas en puls på detect_change

hoppas att detta kommer att hjälpa ...

 
Här är ett urval kod ...

PROCESS (clk, rst)
BEGIN
IF (RST = '1 ') THEN
f1_y <= (OTHERS => '0 ');
Elsif (clk'EVENT AND clk = '1 ') THEN
f1_y <= y;
END IF;
END PROCESS;

f1_y är fördröjd signal av y

 
Nej du behöver inte placera det i en annan process, som kommer att göra ytterligare dröjsmål klockcykel ...

detect_change <= f1_y XOR y;
Du kan göra detta utanför processen

 
ställa en annan process i ur programmet som

process (Anai)
c <= a och Anai;
end process;

där Anai är logiken vektorn u definieras .. och välj "a <= '1 '" .. observera C vid släcka ...

 

Welcome to EDABoard.com

Sponsor

Back
Top