Hi, I am using xilinx 12.3 for synthesis and implementation of my design and i am facing 2 problems. I don't know if anyone else has faced them or not.
Problem 1: I am using xilinx simple dual port block ram in my design generated by xilinx 12.3. The problem is its random behavior on reading. Sometimes it gives output 1 clock cycle after the address has been changed.And sometimes it gives output on the same clock when the address is changed. I designed my logic according to the behavior of data coming out after 1 clock cycle of address. And every time the other case happens, my data coming out of RAM becomes invalid. I didn't choose the pipelined output option or anything that could put a flip flop on the output stage. But still data was coming out 1 clock cycle delayed so by watching this behavior i designed my logic, so kindly tell me what to do, maybe there's something i am missing or something i need to know to make it work.
Actually i have 2 RAMs ,byte wide each. The incoming data is 2bytes wide so i write 1 byte to RAM1 and 2nd byte to RAM2. And i read in the same manner i.e. one byte from RAM1 and 2nd byte from RAM2.And i update my read address after i have read the data from RAM2.
Problem 2: I am using xilinx FIFO generated by xilinx 12.3 in my design and i cannot read from it unless i have written at least 8,9 bytes to it. Even if i give it a read signal, it is ignored and empty signal stays high even though i have written some bytes in to it. As soon as 8 bytes have been written, the empty signal goes low and i can read the data then. Is this the proper behavior or am i the only one facing it?
Kindly help me with this thing. Thanks a lot.
Regards
--------------------------------------- Posted through