Design a memory-test system to test the first 256 bytes of a static RAM memory. The system consists of simple controller, an 8-bit counter, a comparator, and a memory as shown below. The counter is connected to both the address and data (IO) bus so that 0 will be written to address 0, 1 to address 1, 2 to address 2, ..., and 255 to address 255. Then the data will be read back from address 0, address 1, ..., address 255 and compared with the address. If the data does not match, the controller goes to the fail state as soon as a mismatch is detected; otherwise, it goes to a pass state after all 256 locations have been matched. Assume that OE_b = 0 and CS_b = 0.
(a) Draw an SM chart or a state graph for the controller (five states). Assume that the clock period is long enough so that one word can be read every clock period.
(b) Write VHDL code for the memory-test system.
![869_1998aa0e-46d4-4a34-8a35-041dc14fd437.png](https://secure.tutorsglobe.com/CMSImages/869_1998aa0e-46d4-4a34-8a35-041dc14fd437.png)