---
name: "boom"
section: "1"
platform: "linux"
package: "alliance"
version: "5.1.1-3"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/boom"
---

# boom(1)

## NAME

- BOOM - BOOlean Minimization

  ## SYNOPSIS

- ***boom \[-VTOAP\] \[-l num\] \[-d num\] \[-i num\] \[-a num\] \[-sjbgpwtmorn\]***

          ***filename \[outname\]***\

## DESCRIPTION

**BOOM** ***is used for the first step of the synthesis process.*** ***It optimizes a behavioural description using a Reduced Ordered Binary*** ***Decision Diagram representation of logic functions.*** ***The file*** **filename** ***is the input behavioural description and must*** ***be written in [vbe(5)](/vbe/5.md) format.*** ***The resulting behavioural optimized description is saved with the name*** **outname** ***or*** **input\_name*****\_o in [vbe(5)](/vbe/5.md) format.***

## ENVIRONMENT VARIABLES

- [***MBK\_WORK\_LIB***(1)](/MBK_WORK_LIB/1.md)

  indicates the path to the read/write directory for the session.\

## OPTIONS

- ***-V***

  Verbose mode on. Each step of the optimization is displayed on the standard output.

- ***-T***

  Trace mode on. Some debug informations are displayed on the standard output.

- ***-O***

  Reverses initial Bdd variables order.

- ***-A***

  **BOOM** performs a local optimization and keeps the architecture of the initial description by saving most of the intermediate signals. This mode is well-suited for big or regular circuits such as multipliers, adders. By default **BOOM** performs a global optimization and removes most of the intermediate signals so that the outputs are expressed in terms of the inputs or the internal registers. This mode is well-suited for random circuits such as FSMs.

- ***-P***

  Uses a parameter file **input\_name**.boom describing optimization directives and constraints. (see below for the exact syntax)

  ```
  # Example of .boom file
  #
  # The list of auxiliary signals that have to be kept
  # during optimization.
  # Generally carry signals, ram address signals etc ...
  #
  BEGIN_KEEP
  carry[3:0]
  ram_address[3:0]
  END
  #
  # The list of auxiliary signals which assigned
  # expression won't be modified.
  # Generally it's ram output signals.
  #
  BEGIN_DONT_TOUCH
  ram_out[7:0]
  END
  ```

- ***-l num***

  Specifies the optimization level \[0-3\] (default is 0, low level).

- ***-d num***

  Specifies the delay optimization percent (default is 0% delay, 100% surface).

- ***-i num***

  Specifies the number of iterations for the choosen optimization algorithm (for experts only).

- ***-a num***

  Specifies the amplitude during bdd reordering (for experts only).

- ***-sjbgpwtmorn***

  Specifies which algorithm has to be used for the boolean optimization.

## SEE ALSO

**boom**(5), [**vbe**(5)](/vbe/5.md), [**asimut**(1)](/asimut/1.md), [**boog**(1)](/boog/1.md), [**MBK\_WORK\_LIB**(1)](/MBK_WORK_LIB/1.md).
