mirror of
https://github.com/Klagarge/Cursor.git
synced 2025-07-16 13:21:11 +00:00
Initial commit
This commit is contained in:
48
Libs/Memory/hdl/sdramControllerRefreshCounter_RTL.vhd
Normal file
48
Libs/Memory/hdl/sdramControllerRefreshCounter_RTL.vhd
Normal file
@ -0,0 +1,48 @@
|
||||
ARCHITECTURE RTL OF sdramControllerRefreshCounter IS
|
||||
|
||||
signal delayCounter: unsigned(delayCounterBitNb-1 downto 0);
|
||||
signal endOfDelay: std_ulogic;
|
||||
|
||||
BEGIN
|
||||
|
||||
countDelay : process(reset, clock)
|
||||
begin
|
||||
if reset = '1' then
|
||||
delayCounter <= (others => '0');
|
||||
elsif rising_edge(clock) then
|
||||
if endOfDelay = '1' then
|
||||
delayCounter <= to_unsigned(1, delayCounter'length);
|
||||
else
|
||||
delayCounter <= delayCounter + 1;
|
||||
end if;
|
||||
end if;
|
||||
end process countDelay;
|
||||
|
||||
findEndOfDelay: process(powerUpDone, delayCounter)
|
||||
begin
|
||||
endOfDelay <= '0';
|
||||
if powerUpDone = '0' then
|
||||
if delayCounter+1 = 0 then
|
||||
endOfDelay <= '1';
|
||||
end if;
|
||||
else
|
||||
if delayCounter+1 >= refreshPeriodNb then
|
||||
endOfDelay <= '1';
|
||||
end if;
|
||||
end if;
|
||||
end process findEndOfDelay;
|
||||
|
||||
endOfRefreshCount <= endOfDelay;
|
||||
|
||||
signalRefresh: process(powerUpDone, delayCounter)
|
||||
begin
|
||||
selectRefresh <= '0';
|
||||
if (powerUpDone = '1') and (delayCounter < 1024) then
|
||||
if (delayCounter <= 16) or (delayCounter(3 downto 0) = 0) then
|
||||
selectRefresh <= '1';
|
||||
end if;
|
||||
end if;
|
||||
end process signalRefresh;
|
||||
|
||||
|
||||
END ARCHITECTURE RTL;
|
Reference in New Issue
Block a user