added translate_off/on directives to prevent synthesis errors related to protected types