Algorithm 2.
Memory Control
| 1: def store_data(pointer_in, pixel_in): |
| 2: write_to_SRAM(addr_w_0, pixel_in) |
| 3: if pointer_in.x == 0 then |
| 4: addr_w_0=Δpix[mod(pointer_in.y;kernel_size)] |
| 5: else |
| 6: addr_w_0+=Δkernel |
| 7: end if |
| 8: def read_data(pointer_in): |
| 9: for i = 1, …, kernel_size do |
| 10: addr_r=addr_r_0+Δpix·mod(pointer_in.y+i;kernel_size) |
| 11: data_out.append(read_from_SRAM(addr_r)) |
| 12: end for |
| 13: if pointer_in.x == 0 then |
| 14: addr_r_0=Δpix[0] |
| 15: else |
| 16: addr_r_0=Δkernel |
| 17: end if |
| 18: return data_out |