Stap 5: Registreer
Het register is de module gebruikt voor het opslaan van de huidige max spanning. Deze module is behavioristisch gemaakt zodat u verschillende hoeveelheden van bits kunt zonder veel VHDL-code te wijzigen. De waarde die is opgeslagen in het register wordt verzonden naar een andere module genaamd de Comparator waar het vergelijkt de opgeslagen max waarde met alle ruwe waarden die afkomstig zijn van de ADC.
Hier is een beschrijving van de entiteit van onze register:
entiteit FF_Array is
Poort (CLK: in STD_LOGIC;
NL: In STD_LOGIC;
A: In STD_LOGIC_VECTOR (9 downto 0);
LV: Uit STD_LOGIC_VECTOR (9 downto 0): = "0000000000");
einde FF_Array;
Zoals u kunt zien, het neemt in een kloksignaal, en toelaten van signaal en een waarde A. Wanneer het signaal inschakelen hoog is, is de LV-waarde ingesteld op A. Als het is laag, houdt LV zijn waarde.
Hier is de gedrags beschrijving van het register:
signaal inter: STD_LOGIC_VECTOR (9 downto 0): = "0000000000";
Comp: proces (CLK, A, nl)
beginnen
Als rising_edge(CLK) dan
Als nl < = '1' then
LV < = A;
Inter < = A;
anders
LV < = inter;
einde als;
einde als;
einde proces comp;
We slaan slechts 10 van de 12 bits die afkomstig zijn van de ADC. We ontdoen van de twee minst significante bits omdat zij doen niet een verschil in spanning genoeg om te rechtvaardigen een verandering betekenen. Op dat kleine niveau, die stukjes kunnen waarschijnlijk worden gewijzigd door ruis op de analoge kant van de ADC, dus we kozen om ze te negeren.