[TASK] Add support for Zcb sub extension from Code Size Reduction Extension (Zce) in CVA6
Created by: fatimasaleem
Description
This task aims to modify CVA6 RTL to add the Zcb extension support which is a subset of Code Size Reduction Extension (Zce).
Code Size Reduction is the superset of the standard Compressed (C) extension. It consists of six sub-extensions: (Zca, Zcf, Zcd, Zcb, Zcmp, Zcmt). Out of these six sub-extensions zca, zcf, zcd contain the instructions that are part of the standard C extension. But zcb, zcmp, zcmt sub extensions add new instructions.
Zcb has simple code-size saving instructions which are easy to implement on all CPUs. All proposed encodings are currently reserved for all architectures and have no conflicts with existing extensions.
Zcb can be implemented on any CPU as the instructions are 16-bit versions of existing 32-bit instructions from the application class profile.
Changes
A total of 12 new instructions (c.lbu, c.lh, c.lhu, c.sb, c.sh, c.zext.b, c.sext.b, c.zext.h, c.sext.h, c.zext.w, c.mul, c.not) will be added with Zcb support.
- Add opcodes of Zcb instructions in the decoder
- The execute logic will be added to their respective execute units
Current Status
RTL implementation is in progress
Risks
None
Prerequisites
None
KPI
None
Description of Done
PR of design implementation verified after running architectural tests