Coder Social home page Coder Social logo

ee180-lab3's Introduction

Partners : Adebia Ntoso, Sam Crognale
Board Number : 21


sobel_accelerator.c 
###################

On a high level, we calculate the x- and y-convolutions in convx[c] and
convy[c], outputting their sum (or 255 if the sum is greater than 255).

To calculate the x convolution, we store the sum of the positive terms of the
convolution in convxa[c], and the positive sum of the negative terms in
convxb[c]. To get the absolute value of their difference, we make sure that
convx[c] is defined as the larger of convxa and convxb subtracted by the
smaller of the two. We follow the same procedure for the y convolution.


sobel_control.v
###############

For state_next, the general flow is as follows:
 
          -------------------------------------------------------------------
          |                                                                 |
          v                                                                 |
WAIT -> LOADING_1 -> LOADING_2 -> LOADING_3 -> PROCESSING_CALC <--          |
-----------------------------------------------------------------|          |
|                            |                                              |
v                            v                                              |
PROCESSING_LOADSS            PROCESSING_LOADSS_LAST -> PROCESSING_CALC_LAST ---
                                                                            | |
                                            ERROR <-------------------------- v
                                                                PROCESSING_DONE

In STATE_PROCESSING_CALC_LAST, we transition to STATE_PROCESSING_DONE if the 
current col_strip is the maximum allowable col_strip for the image.

For row_op, we choose SOBEL_ROW_OP_SHIFT_ROW for all of the LOAD states and
SOBEL_ROW_OP_HOLD for the other states.

We increment row_counter_next in STATE_LOADING_3, STATE_PROCESSING_LOADSS, and
STATE_PROCESSING_LOADSS_LAST, and reset it in STATE_PROCESSING_CALC_LAST.

col_strip_next is incremented only in STATE_PROCESSING_CALC_LAST,
and is reset in STATE_PROCESSING_DONE.

buf_read_offset is incremented by control_n_cols and is initialized to 0
by the WAIT stage (and reset to next_col_strip in LOADSS_LAST). Taking into
account the read delay, we increment buf_read_offset_next by control_n_cols
in every state except STATE_PROCESSING_LOADSS_LAST and STATE_PROCESSING_DONE,
where we reset it to 0 in preparation for the next frame.

buf_write_offset is initialized to col_strip_next in STATE_LOADING_3, and
incremented by control_n_cols - 2 in STATE_PROCESSING_LOADSS and 
STATE_PROCESSING_LOADSS_LAST.


buf_write_en is enabled in STATE_PROCESSING_CALC (taking into account the
delay) and STATE_PROCESSING_CALC_LAST.

ee180-lab3's People

Contributors

adebiaan avatar

Watchers

Sam Crognale avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.