Altera_Forum
Honored Contributor
14 years agoNeed help to read and write On-Chip Memory Mapped FIFO
Hello,
Currently I am working on DE2-115 Dev kit. I am using on chip memory mapped FIFO to write data into encoder and read data from the encoder. How to know the write address and read address of the FIFO_WRITE and FIFO_READ respectively. FIFO_WRITE ==> ENCODER ==> FIFO_READ (FIFO_0_IN) (FIFO_1_OUT) API used to write and read FIFO: => int altera_avalon_write_fifo(alt_u32 write_address, alt_u32 ctrl_address, alt_u32 data) => int altera_avalon_fifo_read_fifo(alt_u32 read_address, alt_u32 ctrl_address) Thanks for any suggestion and help. Regards, altera1085 //system.h /* * fifo_0_in configuration * */ # define ALT_MODULE_CLASS_fifo_0_in altera_avalon_fifo # define FIFO_0_IN_AVALONMM_AVALONMM_DATA_WIDTH 32 # define FIFO_0_IN_AVALONMM_AVALONST_DATA_WIDTH 32 # define FIFO_0_IN_BASE 0xb00d998 # define FIFO_0_IN_BITS_PER_SYMBOL 16 # define FIFO_0_IN_CHANNEL_WIDTH 8 # define FIFO_0_IN_ERROR_WIDTH 8 # define FIFO_0_IN_FIFO_DEPTH 16 # define FIFO_0_IN_IRQ -1 # define FIFO_0_IN_IRQ_INTERRUPT_CONTROLLER_ID -1 # define FIFO_0_IN_NAME "/dev/fifo_0_in" # define FIFO_0_IN_SINGLE_CLOCK_MODE 1 # define FIFO_0_IN_SPAN 4 # define FIFO_0_IN_SYMBOLS_PER_BEAT 2 # define FIFO_0_IN_TYPE "altera_avalon_fifo" # define FIFO_0_IN_USE_AVALONMM_READ_SLAVE 1 # define FIFO_0_IN_USE_AVALONMM_WRITE_SLAVE 1 # define FIFO_0_IN_USE_AVALONST_SINK 0 # define FIFO_0_IN_USE_AVALONST_SOURCE 0 # define FIFO_0_IN_USE_BACKPRESSURE 1 # define FIFO_0_IN_USE_IRQ 0 # define FIFO_0_IN_USE_PACKET 1 # define FIFO_0_IN_USE_READ_CONTROL 0 # define FIFO_0_IN_USE_REGISTER 0 # define FIFO_0_IN_USE_WRITE_CONTROL 1 /* * fifo_0_in_csr configuration * */ # define ALT_MODULE_CLASS_fifo_0_in_csr altera_avalon_fifo # define FIFO_0_IN_CSR_AVALONMM_AVALONMM_DATA_WIDTH 32 # define FIFO_0_IN_CSR_AVALONMM_AVALONST_DATA_WIDTH 32 # define FIFO_0_IN_CSR_BASE 0xb00d900 # define FIFO_0_IN_CSR_BITS_PER_SYMBOL 16 # define FIFO_0_IN_CSR_CHANNEL_WIDTH 8 # define FIFO_0_IN_CSR_ERROR_WIDTH 8 # define FIFO_0_IN_CSR_FIFO_DEPTH 16 # define FIFO_0_IN_CSR_IRQ -1 # define FIFO_0_IN_CSR_IRQ_INTERRUPT_CONTROLLER_ID -1 # define FIFO_0_IN_CSR_NAME "/dev/fifo_0_in_csr" # define FIFO_0_IN_CSR_SINGLE_CLOCK_MODE 1 # define FIFO_0_IN_CSR_SPAN 32 # define FIFO_0_IN_CSR_SYMBOLS_PER_BEAT 2 # define FIFO_0_IN_CSR_TYPE "altera_avalon_fifo" # define FIFO_0_IN_CSR_USE_AVALONMM_READ_SLAVE 1 # define FIFO_0_IN_CSR_USE_AVALONMM_WRITE_SLAVE 1 # define FIFO_0_IN_CSR_USE_AVALONST_SINK 0 # define FIFO_0_IN_CSR_USE_AVALONST_SOURCE 0 # define FIFO_0_IN_CSR_USE_BACKPRESSURE 1 # define FIFO_0_IN_CSR_USE_IRQ 0 # define FIFO_0_IN_CSR_USE_PACKET 1 # define FIFO_0_IN_CSR_USE_READ_CONTROL 0 # define FIFO_0_IN_CSR_USE_REGISTER 0 # define FIFO_0_IN_CSR_USE_WRITE_CONTROL 1 /* * fifo_1_out configuration * */ # define ALT_MODULE_CLASS_fifo_1_out altera_avalon_fifo # define FIFO_1_OUT_AVALONMM_AVALONMM_DATA_WIDTH 32 # define FIFO_1_OUT_AVALONMM_AVALONST_DATA_WIDTH 32 # define FIFO_1_OUT_BASE 0xb00d99c # define FIFO_1_OUT_BITS_PER_SYMBOL 16 # define FIFO_1_OUT_CHANNEL_WIDTH 8 # define FIFO_1_OUT_ERROR_WIDTH 8 # define FIFO_1_OUT_FIFO_DEPTH 16 # define FIFO_1_OUT_IRQ -1 # define FIFO_1_OUT_IRQ_INTERRUPT_CONTROLLER_ID -1 # define FIFO_1_OUT_NAME "/dev/fifo_1_out" # define FIFO_1_OUT_SINGLE_CLOCK_MODE 0 # define FIFO_1_OUT_SPAN 4 # define FIFO_1_OUT_SYMBOLS_PER_BEAT 2 # define FIFO_1_OUT_TYPE "altera_avalon_fifo" # define FIFO_1_OUT_USE_AVALONMM_READ_SLAVE 1 # define FIFO_1_OUT_USE_AVALONMM_WRITE_SLAVE 1 # define FIFO_1_OUT_USE_AVALONST_SINK 0 # define FIFO_1_OUT_USE_AVALONST_SOURCE 0 # define FIFO_1_OUT_USE_BACKPRESSURE 1 # define FIFO_1_OUT_USE_IRQ 0 # define FIFO_1_OUT_USE_PACKET 1 # define FIFO_1_OUT_USE_READ_CONTROL 1 # define FIFO_1_OUT_USE_REGISTER 0 # define FIFO_1_OUT_USE_WRITE_CONTROL 0 /* * fifo_1_out_csr configuration * */ # define ALT_MODULE_CLASS_fifo_1_out_csr altera_avalon_fifo # define FIFO_1_OUT_CSR_AVALONMM_AVALONMM_DATA_WIDTH 32 # define FIFO_1_OUT_CSR_AVALONMM_AVALONST_DATA_WIDTH 32 # define FIFO_1_OUT_CSR_BASE 0xb00d960 # define FIFO_1_OUT_CSR_BITS_PER_SYMBOL 16 # define FIFO_1_OUT_CSR_CHANNEL_WIDTH 8 # define FIFO_1_OUT_CSR_ERROR_WIDTH 8 # define FIFO_1_OUT_CSR_FIFO_DEPTH 16 # define FIFO_1_OUT_CSR_IRQ -1 # define FIFO_1_OUT_CSR_IRQ_INTERRUPT_CONTROLLER_ID -1 # define FIFO_1_OUT_CSR_NAME "/dev/fifo_1_out_csr" # define FIFO_1_OUT_CSR_SINGLE_CLOCK_MODE 0 # define FIFO_1_OUT_CSR_SPAN 32 # define FIFO_1_OUT_CSR_SYMBOLS_PER_BEAT 2 # define FIFO_1_OUT_CSR_TYPE "altera_avalon_fifo" # define FIFO_1_OUT_CSR_USE_AVALONMM_READ_SLAVE 1 # define FIFO_1_OUT_CSR_USE_AVALONMM_WRITE_SLAVE 1 # define FIFO_1_OUT_CSR_USE_AVALONST_SINK 0 # define FIFO_1_OUT_CSR_USE_AVALONST_SOURCE 0 # define FIFO_1_OUT_CSR_USE_BACKPRESSURE 1 # define FIFO_1_OUT_CSR_USE_IRQ 0 # define FIFO_1_OUT_CSR_USE_PACKET 1 # define FIFO_1_OUT_CSR_USE_READ_CONTROL 1 # define FIFO_1_OUT_CSR_USE_REGISTER 0 # define FIFO_1_OUT_CSR_USE_WRITE_CONTROL 0