We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 43172

Vivado HLS - What is the difference between ap_(u)int and sc_big(u)_int regarding shift left operation?


What is the difference between ap_(u)int and sc_big(u)int/sc_(u)int regarding shift left operation?


SystemC data types were not originally intended to be synthesized and exhibit some behaviors that are sub-optimal for hardware. The operation on Vivado HLS data types behave a bit differently than operation on SystemC data types.

For shift left operation:
Vivado HLS ap_(u)int will shift then assign, hence removing the upper bits.
SystemC both sc_big(u)int and sc_(u)int will assign then shift, hence preserving the upper bits.

Linked Answer Records

Master Answer Records

Answer Number Answer Title Version Found Version Resolved
47431 Xilinx Vivado HLS Solution Center - Design Assistant N/A N/A
AR# 43172
Date Created 01/17/2012
Last Updated 07/30/2012
Status Active
Type Solution Center
  • AutoESL - 2011.1
  • AutoESL - 2011.3
  • AutoESL - 2011.4
  • More
  • AutoESL - 2011.4.2
  • AutoESL
  • Vivado - 2012.2
  • Less