FPGA solpanel Optimizer (5 / 12 steg)
Steg 5: registrera dig
Registret är den modul som används för att lagra den nuvarande max spänningen. Denna modul skapas behaviorally så att du kan använda olika mängder bitar utan att ändra mycket VHDL-kod. Det värde som lagras i registret skickas till en annan modul som kallas kontrollapparaten där jämförs det lagrade max värdet med alla rå värden som kommer från ADC.
Här är en enhet beskrivning av vårt register:
enhet FF_Array är
Port (CLK: i STD_LOGIC;
SV: I STD_LOGIC;
A: I STD_LOGIC_VECTOR (9 b 0);
LV: Ut STD_LOGIC_VECTOR (9 b 0): = "0000000000");
slutet FF_Array;
Som ni ser, det tar i en klocksignal, och aktiverar signalen, och ett värde A. När Aktivera signalen är hög, ställs värde LV till A. Om den är låg, håller LV sitt värde.
Här är den beteendemässiga beskrivningen av registret:
signal inter: STD_LOGIC_VECTOR (9 b 0): = "0000000000";
comp: process (CLK, A, sv)
börja
om rising_edge(CLK) sedan
om EN < = '1' då
LV < = A;
Inter < = A;
annat
LV < = inter;
slutet om;
slutet om;
avsluta processen comp;
Vi sparar endast 10 av de 12 bitar som kommer från ADC. Vi bli av med de två minst signifikanta bitarna eftersom de inte innebära en skillnad i spänning nog att motivera en ändring. På denna lilla nivå, dessa bitar kan sannolikt ändras av buller på sidan analog ADC, så vi valde att ignorera dem.