Hello,
I have a 14 bit number in the RAM. The RAM has 19 bit address bus. I generate a 19 bit address and retrieve that 14 bit number and then concatenate it with 5 bit number to get the data from other part of the memory. So, for example the number is (011F) hex at memory location
0000000000000000000. I get that number by generating memory address 0000000000000000000. Then I concatenate (011F) hex with "00000" to make 19 bit memory address again to reach somewhere in the memory and pick another data. The binay equivalent of (011F) hex is "0000000100011111". I put this number on the address bus bits 5 to 18 and put the "00000" on the address bus LSB bits from 0 to 4. So, the 14 bit number becomes (23E0)hex which is the base address of my first LUT value. My memory is 512K x 18 = 9M bits.18 bit is the data bus. I partioned the memory between the pointers and Lookup table values. The pointers are 257 x 64 = 16448 decimal and rest of the memory is occupied b y the LUT My questions are as follows- When I concatenate the 14 bit number with the 5 bit number and make the address change what am I actually doing to the number am i multiplying the 14 bit number by 32 or what am i doing exactly?
- what is the actual maximum number I can use to point to a LUT.
Please Advice! John.