Edge Detection in FPGA using Sobel Operator
Edge Detection in FPGA using Sobel Operator

Ram Modules

     

Three RAM modules each of size 3X34 are employed for storing the data from computer. The contents of the RAM modules are reset before initiating computation. When the control signals ‘ready’ and ‘read_write’ are both asserted LOW, firstly the RAM module in the third row is loaded with 34 bytes of pixel values transferred from the computer via the parallel port. At the end of first data transfer operation, the contents of the RAM modules will be as follows:

00 00 00 00 00 …………… 00 00
00 00 00 00 00 …………… 00 00
A1 A2 A3 A4 A5 …………… A33 A34

Then the ‘mode_strobe’ is asserted low after placing a value of 0110_0110 in the data bus. Then the entire rows are shifted one upwards. Then the third row is filled with next set of data values. Then the RAM module will be as shown in figure 5.3

00 00 00 00 00 …………… 00 00
A1 A2 A3 A4 A5 …………… A33 A34
B1 B2 B3 B4 B5 …………… B33 B34

Similarly after the third data transfer, the RAM will be as shown in figure 5.4 We start the edge detection operation as the entire RAM is ready. Consecutive three elements of each row will be the input to each of the 32 Sobel Modules. Once the entire RAM is filled with valid data, only single shift need to be done to get the next set of valid data.

A1 A2 A3 A4 A5 …………… A33 A34
B1 B2 B3 B4 B5 …………… B33 B34
C1 C2 C3 C4 C5 …………… C33 C34



Tags: RAM , Modules , Memory , FPGA ,
Tag Cloud 74LS33 74LS641 Architecture BMP BMP Linux Canny Circuit DB25 Device Utilization Digital Image Processing Edge Detection FPGA Fedora GCC Image Manipulation Imtools JPEG Laplacian Linux Memory Modules Octal Transciever OpenGL PC Interface PNG Parallel Port Prewitt RAM Roberts Sobel Spartan 3 System Ubuntu VLSI Verilog XC3S400 Xilinx libjpeg libpng