Skip to content

Instantly share code, notes, and snippets.

@soronpo
soronpo / binning.scala
Created August 5, 2026 12:45
DFHDL #449 minimized - 7 files, 95 lines, no ports
import dfhdl.*
class binning(
val DATA_WIDTH: Int <> CONST = 8,
val IMAGE_WIDTH: Int <> CONST = 640,
val IMAGE_HEIGHT: Int <> CONST = 480
) extends EDDesign:
val image_line_buff = new lin_buff(
BUFFER_WIDTH = DATA_WIDTH, BUFFER_DEPTH = IMAGE_WIDTH,
BLOCK_WIDTH = 3, BLOCK_HEIGHT = 3)
@soronpo
soronpo / cell_histogram.scala
Created August 5, 2026 12:59
DFHDL #449 minimized - 2 files, 63 lines
import dfhdl.*
class cell_histogram(
val IMAGE_WIDTH: Int <> CONST = 640,
val INPUT_BIN_WIDTH: Int <> CONST = 11,
val OUTPUT_BIN_WIDTH: Int <> CONST = 14
) extends EDDesign:
val BINS: Int <> CONST = 9 + 1
val PARTIAL_HISTOGRAM_WIDTH: Int <> CONST = INPUT_BIN_WIDTH * BINS
val CELLS_PER_ROW: Int <> CONST = IMAGE_WIDTH / 8
val cell_buff = new lin_buff(
@soronpo
soronpo / cell_histogram.scala
Created August 5, 2026 13:10
DFHDL #449 minimized - 2 designs, 31 lines
import dfhdl.*
class cell_histogram(
val IMAGE_WIDTH: Int <> CONST = 640,
val INPUT_BIN_WIDTH: Int <> CONST = 11,
val OUTPUT_BIN_WIDTH: Int <> CONST = 14
) extends EDDesign:
val BINS: Int <> CONST = 9 + 1
val PARTIAL_HISTOGRAM_WIDTH: Int <> CONST = INPUT_BIN_WIDTH * BINS
val CELLS_PER_ROW: Int <> CONST = IMAGE_WIDTH / 8
val histogram_adder = new partial_histogram_add(