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.
| Answer Number | Answer Title | Version Found | Version Resolved |
|---|---|---|---|
| 47431 | Xilinx Vivado HLS Solution Center - Design Assistant | N/A | N/A |