Forum Discussion
Altera_Forum
Honored Contributor
10 years agoHi,
the UFM is always 16 bit, but it looks like there's a way the MegaFunction only exposes 3 of those (which I fail to understand, but whatever). Altera User Flash Memory (ALTUFM) IP Core User Guide (2014.08.18), page 25: "even though you can select an optional data register width of 3 to 16 bits using the altufm ip core, the ufm block always expects full 16 bits width for the data register. reading from the data register will always proceed from msb to lsb. the altufm ip core will always pad the remaining lsb of the data register with 1s if the user selects a data width of less than 16-bits". BTW., when you instantiate UFM with Quartus 15.0.2, you can actually select any width from 3 to 16 bit. However, selecting 3 bit does not, as one might expect, allow you to use more address bits. This agrees with the user guide that says the excess bits are basically dropped. So if you want to have 8-bit data with 10-bit addresses, I'd suggest you instantiate the UFM with 9 address bits and 16 data bits, use the 9 MSBs of your address vector for the UFM, and the LSB to mux between the upper and lower byte of the 16-bit data word. Best regards, GooGooCluster