My basic application involves sending ADC samples to PC via Ethernet. The ADC sampling and storing is happening in VHDL section while the Ethernet socket programming code is in Microblaze processor.
Microblaze is running at 60MHz and the FPGA is at 100MHz (I've taken care of the CDC issue). For transferring 1k data it takes me 740us. I have a dual port BRAM where the samples are stored and upon an interrupt Microblaze will read it from the second port. For simplicity I have kept the BRAM read in always enabled state and I am reading the data based on address only.
Any ideas as to how I can transfer the data in a faster way.
I've added the BRAM connection details for more reference. I've used the simple dual port type BRAM.
Buf_2k : Ethernet_test_data PORT MAP ( clka => ADC_clock, --10MHz clock wea(0) => BRAM_wr_en, --Write enable generated synchronously to ADC_clock addra => buf_wr_addr(10 downto 0), --BRAM address generated similarly as write enable dina => ADC_data_trig, --Registered ADC data to be stored in BRAM clkb => CLK_50M, --50MHz clock generated from DCM addrb => BRAM_addr(10 downto 0), --Address coming from Microblaze to read the data doutb => BRAM_dout --This data out is directly connected to Microblaze );