Lecture 14
Class Project Introduction
Xuan ‘Silvia’ Zhang
Washington University in St. Louis
http://classes.engineering.wustl.edu/ese461/
Final Class Project
• Goal: learn by doing
– account for 35% of grade
– work in teams of 3
– choose from two project topics
– optimize design to meet/exceed performance goals
– a custom designed IC chip as the end result
• Evaluation
– completion of the design flow
– performance achieved
– techniques applied
– presentation
– report
2
Evaluation
• Completion of the design flow
– functional simulation with behavior Verilog
– logic synthesis
– place and route
– verification simulation with post-P&R netlist
• Performance achieved
– meet basic specification of clock frequency and power
budget
– if exceed basic requirement, bonus points will be
allocated according to performance ranking
3
Evaluation
• Techniques applied
– design optimization techniques
– e.g. pipelining, parallel units, memory buffer
• Presentation
– last week of the class
– every team member has to participate
• Report
– submit a single report as a team
– clearly specify individual contribution
4
Choose Between Two Topics
• Optical flow accelerator
– motion estimation algorithm
– inspired by biology
– used in robotic application
• Bitcoin hashing accelerator
– a novel cryptocurrency
– use proof-of-work to verify transactions
5
Optical Flow
• Insect use optical flow for navigation
6
Motion Estimation
• Find the motion vector(u,v) between two frames
7
Problem Definition
• How to find the pixel motion from I(x,y,t) to
I(x,y,t+1)?
8
Lucas–Kanade Method
• Assumptions
– brightness constancy: a point in I(x,y,t) is same as
I(x’,y’,t+1)
– small motion: points do not move too far
– small region moving together: approximately constant
moving within a neighborhood of the point p
9
Lucas–Kanade Method
• Brightness constancy
• Small motion: (Taylor series expansion)
10
Windowing in Optical Flow
• Nearby region moving together
– equation can be assumed to hold for all pixels within a
window centered at p
– q1, q2, …., qn are the pixels inside the window —>
moving together
11
Errors in Lucas–Kanade
• Large motion violates assumption
– reduce the resolution
Moving can be
limited in one
pixel change in
the lowest
resolution image
12
Bitcoin
• A cryptocurrency based on distributed consensus
13
Blockchain
• A distributed public ledger maintained by a peer-
to-peer network
14
Cryptography Used in Transaction
• Address generation
Bitcoin Keys
base 58
check
random 256-bit encode
WIF private key
private key
SHA-256
RIPEM 160
512-bit 160-bit public
public key key hash
base 58
check encode
Bitcoin public
address
(a)
• Digital signature
– elliptic curve digital signature algorithm
15
Bitcoin Mining
• Solve a “very hard” crypto puzzle
• Blockchain data structure
• Double SHA-256 hash
– find a nounce that results in a hash with certain
number of preceding zeros
16
SHA-256
• Secure Hash Algorithm (SHA)
– hash function designed by NSA
– SHA-256: run 64 rounds of iteration
17
Proof-of-Work Using Double SHA-256
18
Proof-of-Work Using Double SHA-256
19
Timeline
• Week 8
– introduction
• Week 9
– release specification
– form teams
– select topic
• Week 9-11
– develop and debug behavioral code
• Week 12-14
– design flow and optimization
• Week 15
– presentation
– final report due on 12/12 (Monday)
20
Assignment
• Form a 3-member team
• Pick the topic of your choice
– optical flow vs. bitcoin hashing
• Email me (cc the TA) your decision as a team
– due 10/24 (Monday) by 5pm
21
Reference
• https://en.wikipedia.org/wiki/Lucas%E2%80%93K
anade_method
• https://www.mathworks.com/help/vision/ref/o
pticalflowlk-class.html
• http://docs.opencv.org/trunk/d7/d8b/tutorial_
py_lucas_kanade.html
• http://www.righto.com/2014/02/bitcoins-hard-
way-using-raw-bitcoin.html
• http://www.righto.com/2014/02/bitcoin-
mining-hard-way-algorithms.html
• https://www.researchgate.net/figure/25814452
8_fig8_Fig-9-Key-in-the-first-16-rounds-out-of-
64-in-each-computation-and-their-provenance
22
Questions?
Comments?
Discussion?
23