1 / 35

Design Review: FPGA

Design Review: FPGA. David Collins Josh Kimpel Brittany Ransbottom. Needs. The ability to run user-written code. The ability to identify potential use of subfunctional units within user-written code. The ability to modify user-written code to utilize subfunctional units.

dolf
Download Presentation

Design Review: FPGA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Design Review: FPGA David Collins Josh Kimpel Brittany Ransbottom

  2. Needs • The ability to run user-written code. • The ability to identify potential use of subfunctional units within user-written code. • The ability to modify user-written code to utilize subfunctional units. • The ability to execute a program regardless of the status of reconfigurability. • The ability to implement dynamic partial reconfiguration, the process of physically updating the reconfigurable partitions. • The ability to utilize subfunctional units when running the user-written code. • The ability to interface through I/O. • The physical function/code to be loaded into a reconfigurable partition

  3. Specifications

  4. Specifications (cont)

  5. Concepts • Design Concepts Evaluated • Image Processing • Edge Detection • Grayscale Image • Segmentation (opening and closing) • Color Detection – People, Objects, Shapes • Background Detection • Pre-Processor • Processor • MicroBlaze • PicoBlaze • Open RISC • eSI-RISC • Subfunctional Units

  6. Image Processing – Edge Detection Pseudocode: for i from 1 to (length – 1) for j from 1 to (width – 1) sum = 0 for a from -1 to 1 for b from -1 to 1 sum = sum + pix[i+a][j+b]*kernel[a][b] output[i][j] = sum Threshold Image Overlay a mask on the pixel and 8 surrounding pixels to determine the probability of an edge Kirsch Mask: 0, 5, and -3 Prewitt Mask: 1, -1, -2 Sobel Mask: 0, 1, -1, 2, -2

  7. Image Processing - Grayscale • Average: (R+G+B)/3 • Lightness: [max(R,G,B)+min(R,G,B)]/2 • Luminosity: 0.21*R + 0.71*G + 0.07*B • Weighted values to account for Human Perception • Planar: Take R, G, or B directly

  8. Image Processing - Segmentation Kernel for the given shape is created Convolved across the image, resulting in an image where the black regions are more connected or more separated depending on the kernel. Ideal for binary images, but can be used on grayscale or RGB values

  9. Image Processing – Color Detection • Requires pre-determined “average” color tone for detection, i.e. searching for items of (27, 150,0) RGB • Can search for exact value, but will not capture well in photographs/images due to lighting, and shades, therefore need to determine pixel distance from desired shade • Can create Gaussian probability distribution for computation prior to image arrival, and then utilize Mahalanobis distance vector to determine likely clusters of desired color • Requires some intensive mathematical computations

  10. Image Processing – Background Detection • If a green screen, or solid background is utilized, color detection would perform this • Edge Detection could be used to determine the largest unique region, and label this as background. This can be improved to verify the consistency of the shade of the background. • Requires many iterations over the image • Replacing the background would require creating a mask of the original image, and filtering in a background image

  11. Pre-Processor Create a Compiler Create a separate program to analyze the code

  12. Processor

  13. Subfunctional Units • Partial Reconfiguration • Purpose • Loop Unrolling • Program Optimization

  14. Design Application Level Software Hardware

  15. Application Level File Level

  16. Application Level SFU Selection Level

  17. Software Level • Scripting • SFU matching • Correctly matching functionality • SFU mapping • Finding new SFUs • Connecting to Application Level

  18. Software Level

  19. Reconfigurability

  20. Bill of Materials

  21. Risks Designing a compiler to recognize subfunctional units implement partial reconfiguration on the FPGA (Low) Designing a processor to utilize reconfigurable partitions for parallel computing (Low) The ability to dynamically reconfigure partitions (Medium) The ability to execute various image processing algorithms (Low) The ability to interface with a video input and output (High)

  22. Testing

  23. Software Programs

  24. Hardware Programs

More Related