Hallo, Ich arbeite auf einem NEEK von Altera (Nios II Evaluation Board) auf ihm ist ein Cyclone III FPGA mit 25k Zellen. aktuell arbeite ich an meiner Diplomarbeit und bekomme den folgenden Teil einfach nicht hin. ich habe ein SRAM Modul das in Verilog geschrieben und angesprochen wird, zudem habe ich einen NIOSII Softcore als Block im SOPC Builder mit DDRAM erstellt. und im SOPC Builder das externe SRAM Modul mit AvalonMM Slave verbunden. In den SRAM werden Bilddaten geschrieben, diese sind 768*239 Pixel groß und ein Pixel ist 24 Bit breit. Nun möchte ich mit dem NIOS II Softcore Daten vom SRAM auslesen und weiterverarbeiten. wie kann ich die Daten vom SRAM zB in den DDRAM transferieren. Oder gibt es eine möglichkeit die Daten irgendwo für beide zugänglich zu machen. die Einbindung von einem Avalon MM Interface für das Modul in dem der SRAM ist habe ich schon probiert, doch bekomme ich da die Menge an Daten nicht anständig syncronisiert und daher auch nicht übertragen. Übertragen werden soll der Inhalt dieses Speichers nach einem kompletten Durchlauf, BURST_LENGTH ist 24, mRGB sind 24 bit RGB Werte und m1RGB1 Das SRAM Modul sieht als Schnittstelle so aus : SSRAM_Control_2Port mine ( // HOST Side .REF_CLK( CLK50), .RESET_N( SYSTEM_RESET_n), // FIFO Write Side 1 .WR1_DATA( mRGB ), // Write-Input: RGB-Werte .WR1(( TV_DVAL ), // Syn Signal des Displays .WR1_ADDR(0), .WR1_MAX_ADDR( 768 * 239), .WR1_LENGTH( BURST_LENGTH ), .WR1_LOAD( ((!TD_Stable )||(!FVAL )) ), //load signal .WR1_CLR ( !DLY0 ), .WR1_CLK( HC_TD_27MHZ ), // FIFO Read Side 1 .RD1_DATA(m1RGB), .RD1( R_TR ), //readenable .RD1_ADDR (32 ), .RD1_MAX_ADDR( 768 * 239 ), .RD1_LENGTH( BURST_LENGTH ), .RD1_LOAD(!oVGA_V_BLANK ), .RD1_CLR (!DLY0), .RD1_CLK( Memory_OUT_CLK ), //SSRAM SIDE .FLASH_SRAM_A (FLASH_SRAM_A), .FLASH_SRAM_DQ(FLASH_SRAM_DQ), .SRAM_ADSC_N(SRAM_ADSC_N), .SRAM_CE1_N(SRAM_CE1_N), .SRAM_CLK (SRAM_CLK), .SRAM_OE_N(SRAM_OE_N), .SRAM_WE_N(SRAM_WE_N), .SRAM_BE_N(SRAM_BE_N)); Wenn ihr um zu helfen noch die interne Struktur benötigt poste ich die gerne auch noch Mit Hilfesuchenden Grüßen René Gärtner
Was heisst nicht anständig synchronisiert?
das heißt das die Daten die ich über die Avalon MM Pipeline mittels IORD32 in c++ in der Software von dem VerilogModul auslese alle müll sind und ich nicht weiß wie ich das ändern kann. das Avalon Interface ist so definiert: always@ (posedge CLK25) begin : AVALON_INTERFACE nextData<=1'b0; if(MYWRITE == 1'b1) begin case(MYADDR) SCREENSHOT: screenshotreg <= MYWRITEDATA[0]; GRAYSCALE : mgrayreg <= MYWRITEDATA[0]; TRESH : mtreshreg <= MYWRITEDATA[0]; default:; endcase end else if(MYREAD == 1'b1 ) begin nextData<=1'b1; case(MYADDR) RGB_ADDR:MYREADDATA <= {8'h00,testrgb_data}; default: MYREADDATA <= 32'hEE11FF22; endcase end end hier bekomme ich die Snchronisation mit dem SRAM vermutlich nicht korrekt hin. wie ich das genau machen kann weiß ich leider auch nicht. Ich möchte hier vorallem wissen wie ich die Daten vom SRAM das in einem Verilogmodul angesprochen wird und dort Bilddaten gespeichert werden, von dem NIOSII Softcore der im SOPC Builder erstellt wurde und als Block integriert ist zugänglich zu machen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.