Versal Devices - 1.0 English

DSP Macro LogiCORE IP Product Guide (PG323)

Document ID
PG323
Release Date
2022-11-07
Version
1.0 English
  • preadder = [ (A+D) , (D+A) , (D-A), D, -A , A, (ACIN+D) , (D+ACIN) , (D-ACIN), -ACIN , ACIN ]
  • mult_ip1 = [ ACIN , A , preadder ]
  • mult_ip2 = [ BCIN , B , 1 , preadder]
  • mult = [ mult_ip1 * mult_ip2 , mult_ip2 * mult_ip1 ]

The 1 is not explicitly required when defining an instruction; the 1 and corresponding * operator are ignored.

Note: The preadder option in mult_ip2 enables a squaring operation. The operator selected from the preadder for mult_ip1 must match the preadder instruction in mult_ip2.
  • wmux = [ C , P , 0 ]
  • xmux = [ CONCAT , P , 0 ]
  • ymux = [ C , 0 ]
  • zmux = [ C , PCIN , P , P>>23 , PCIN>>23, 0 ]
  • cinmux = [ CARRYIN , CARRYCASCIN , 0 ]

Similarly, 0 is not explicitly required when defining an instruction. The 0 and corresponding operator are ignored.

  • xycomb = [ wmux + xmux + ymux , wmux + ymux + xmux , mult ]

valid instructions = [

  • xycomb + zmux + cinmux ,
  • zmux + xycomb + cinmux ,
  • zmux - ( xycomb + cinmux ) ,
  • zmux - wmux - xmux - ymux - cinmux ,
  • zmux - wmux - ymux - xmux - cinmux ,
  • -zmux +wmux + xmux + ymux,
  • -zmux +wmux + ymux + xmux,
  • -zmux - wmux - xmux,
  • -zmux - xmux - wmux,
  • -zmux - mult,
  • rndsimple( zmux + xmux + ymux + cinmux )
  • rndsimple( mult + zmux + cinmux )
  • rndsym( [ P , PCIN ] ) ]
  • rndsym( mult )
  • rndmacc( mult +wmux + P )