  Stochastic computing (SC) is a high density, low-power computation technique
which encodes values as unary bitstreams instead of binary-encoded (BE) values.
Practical SC implementations require deterministic or pseudo-random number
sequences which are optimally correlated to generate bitstreams and achieve
accurate results. Unfortunately, the size of the search space makes manually
designing optimally correlated number sequences a difficult task. To automate
this design burden, we propose a synthesis formulation using mixed integer
programming to automatically generate optimally correlated number sequences. In
particular, our synthesis formulation improves the accuracy of arithmetic
operations such as multiplication and squaring circuits by up to 2.5x and 20x
respectively. We also show how our technique can be extended to scale to larger
circuits.
