iCE40 DSP Block - timvideos/litex-buildenv GitHub Wiki
Table 3. Instantiation Guide
| Port Name | Input / Output | 8x8 Multiplier | 16x16 Multiplier | 16x16 Accumulate | 32x32 Accumulate | 16x16 Adder/Subtractor | 32x32 Adder/Subtractor | 8x8 MAC | 16x16 MAC |
|---|---|---|---|---|---|---|---|---|---|
| ACCUMCI | Input | Default | Default | Bottom | Signal | Default -> Bottom | Default -> Signal | Default -> Bottom | Default -> Signal |
| ADDSUBTOP | Input | Default | Default | 0 | 0 | 0=Add, 1=Sub | 0=Add, 1=Sub | 0 | 0 |
| AHOLD | Input | Signal | Signal | Top -> Signal | Signal | Top -> Signal | Signal | Signal | Signal |
| A[15:8] | Input | Top | Signal | Top | Signal | Top | Signal | Top | Signal |
| A[7:0] | Input | Bottom | Signal | Top | Signal | Top | Signal | Bottom | Signal |
| BHOLD | Input | Signal | Signal | Bottom -> Signal | Signal | Bottom -> Signal | Signal | Signal | Signal |
| B[15:8] | Input | Top | Signal | Bottom | Signal | Bottom | Signal | Top | Signal |
| B[7:0] | Input | Bottom | Signal | Bottom | Signal | Bottom | Signal | Bottom | Signal |
| CE | Input | Signal | Signal | Signal | Signal | Signal | Signal | Signal | Signal |
| CHOLD | Input | Default | Default | Default -> Top | Default -> Signal | Top | Default -> Signal | Top | Signal |
| CI | Input | Default | Default | Default | Default | Bottom | Signal | Default | Default |
| CLK | Input | Signal | Signal | Signal | Signal | Signal | Signal | Signal | Signal |
| C[15:0] | Input | Default | Default | Default -> Top | Default -> Signal | Top | Default -> Signal | Top | Signal |
| DHOLD | Input | Default | Default | Default -> Bottom | Default -> Signal | Bottom | Default -> Signal | Bottom | Signal |
| D[15:0] | Input | Default | Default | Default -> Bottom | Default -> Signal | Bottom | Default -> Signal | Bottom | Signal |
| IRSTBOT | Input | Bottom -> Signal | Signal | Bottom -> Signal | Signal | Bottom -> Signal | Signal | Bottom -> Signal | Signal |
| IRSTTOP | Input | Top -> Signal | Signal | Top -> Signal | Signal | Top -> Signal | Signal | Top -> Signal | Signal |
| OHOLDBOT | Input | Bottom -> Default | Signal -> Default | Bottom | Signal | Bottom | Signal | Bottom | Signal |
| OHOLDTOP | Input | Top -> Default | Signal -> Default | Top | Signal | Top | Signal | Top | Signal |
| OLOADBOT | Input | Default | Default | Signal | Signal | 0 | 0 | Signal | Signal |
| OLOADTOP | Input | Default | Default | Signal | Signal | 0 | 0 | Signal | Signal |
| ORSTBOT | Input | Bottom | Signal | Bottom | Signal | Bottom | Signal | Bottom | Signal |
| ORSTTOP | Input | Top | Signal | Top | Signal | Top | Signal | Top | Signal |
| SIGNEXTIN | Input | Default | Default | Bottom | Signal | Bottom | Signal | Default -> Bottom | Default -> Signal |
| ACCUMCO | Output | Default | Default | Top | Signal | Default -> Top | Default -> Signal | Default -> Top | Default -> Signal |
| CO | Output | Default | Default | Default -> Top | Default -> Signal | Top | Signal | Default -> Top | Default -> Signal |
| OUTPUT[15:0] | Output | Bottom | Signal | Bottom | Signal | Bottom | Signal | Bottom | Signal |
| OUTPUT[31:16] | Output | Top | Signal | Top | Signal | Top | Signal | Top | Signal |
| SIGNEXTOUT | Output | Default | Default | Top | Signal | Top | Signal | Default -> Top | Default -> Signal |
| ADDSUBBOT | Input | ????????????????? | ???????????????? | ?????????????????? | ?????????????????? | ?????????????????????? | ?????????????????????? | ????????????????? | ????????????????? |
| 0=Add, 1=Sub | 0=Add, 1=Sub | 0 | 0 | 0=Add, 1=Sub | 0=Add, 1= Sub | 0=Add, 1=Sub | 0 | 0 |
Compare too;
DSP: Preliminary Mapping Report (see note below)
+------------+------------------+--------+--------+--------+--------+--------+------+------+------+------+-------+------+------+
|Module Name | DSP Mapping | A Size | B Size | C Size | D Size | P Size | AREG | BREG | CREG | DREG | ADREG | MREG | PREG |
+------------+------------------+--------+--------+--------+--------+--------+------+------+------+------+-------+------+------+
|lm32_cpu | A2*B2 | 18 | 16 | - | - | 48 | 1 | 1 | - | - | - | 0 | 0 |
|lm32_cpu | (PCIN>>17)+A2*B2 | 16 | 16 | - | - | 48 | 1 | 1 | - | - | - | 0 | 1 |
|lm32_cpu | A2*B2 | 18 | 18 | - | - | 48 | 1 | 1 | - | - | - | 0 | 0 |
|lm32_cpu | (PCIN>>17)+A2*B2 | 18 | 16 | - | - | 48 | 1 | 1 | - | - | - | 0 | 1 |
+------------+------------------+--------+--------+--------+--------+--------+------+------+------+------+-------+------+------+
|5 |DSP48E1 | 2|
|6 |DSP48E1_1 | 1|