Revise the memory bus functional model code to provide a synthetic image (that is, an artificially constructed image) when locations in the original image are read. The synthetic image should contain a 320 × 240 white rectangle centered on a black background. Hint: use the memory address during a read to determine whether the location being accessed is within the image. If so, then calculate the row and column numbers from the address. If the row and columns lie within the rectangle, the memory should return white pixel values; otherwise, it should return black pixel values.