Gast
#4997107
Hallo Leute,
Im Zuge eines Projektes will ich mit dem THDB-ADA und dem DE1-SoC Board
einen Datenlogger zu realisieren.
Der Ablauf sei wie folgt:
Messung des Signals (THDB-ADA) --> Verarbeitung der Daten (DE1-SoC) -->
Abspeichern der Daten im SDRAM oder im DDR3-RAM --> Anschließendes
Schreiben der Daten auf eine microSD-Karte.
Eine weitere Variante wäre die Daten über Ethernet an einen PC mit
MATLAB/SIMULINK zu streamen.
Momentaner Stand:
Das ADC-Board wurde schon angebunden und mit den maximalen 65MSPs
ausgelesen (über eigens erzeugte PLL). Im Qsys habe ich einen SDRAM
Controller angelegt und entsprechend konfiguriert.
Muss der Ablauf über FSM (Finite State Machine) für den SDRAM bzw. den
DDR3RAM von mir noch implementiert werden oder kann man hier auf
Methoden oder IPs im Qsys darauf zugreifen?
Ich habe schon ein Programm für das Schreiben bzw. das Lesen schon
erstellt aber ich lese immer die falschen Werte aus.
Source Code:
process(CLK143)
begin
if rising_edge(CLK143) then --write process
--case BUFF_CTRL is
--when st0=>------------write image to SDRAM
--if (SDRAM_WAIT='0')then
SDRAM_WE_N<='0';
SDRAM_RE_N<='1';
--SDRAM_WRITEDATA<="1010101010101010";
DRAM_DQ(15) <= '0';
DRAM_DQ(14) <= '0';
DRAM_DQ(13 downto 0) <= ADC_DB(13 downto 0);
SDRAM_WRITEDATA<=DRAM_DQ;
SDRAM_ADDR<=std_logic_vector(unsigned(SDRAM_ADDR)+1);
--end if;
--when st1=>-----------write from SDRAM to BUFFER
SDRAM_WE_N<='1';
--RAMWE1<=SDRAM_RDVAL;
--SDRAM_RDVAL<='1';
RAMWE1<='1';
SDRAM_RE_N<='0';
SDRAM_WAIT<='0';
SDRAM_ADDR<=std_logic_vector(unsigned(SDRAM_ADDR)+1);
RAMIN1<=SDRAM_READDATA(15 downto 0);
--end case;
end if;
end process;
Bin dankbar für jeden nützlichen Post.
Greets,
Chris
P.S.: Bin leider ein Newbie mit VHDL und FPGA Programmierung und kenne
mich nicht so gut, wie manch anderer in diesem Forum aus. ;)