大家好:
15bit/16bit的转换是在CI/CO模块中进行的。对于发送,CO会对数据进行饱和处理,接收时,做符号扩展。关于饱和处理具体是怎么操作的不是很明白。看了AIF的User Guide中的内容还是不明白。AIF的User Guide里面关于饱和处理的内容如下:
Saturation is performed on each adder output. Saturation logic detects addition overflow and replaces the overflowed value with a value based on the selected bit width. The saturation values are: • 8-bit data: ± 127 • 16-bit data: ± 32,767
7.7.1 15-bit Saturation Operation for CPRI (7-bit follows the same rule)
When bit 15:14=='b01, then the saturation output will be 0x3FFF. Ex) Sent: 0x40004000 => output: 0x3FFF3FFF
When bit 15:14=='b10 and bit 15:0 != 0x8000, then saturation output will be 0x4000. Ex) Sent: 0x80018001 => output: 0xC000C000 (bit 15 is don't care, so it is same to 0x4000)
When bit 15:0=='0xC000, then saturation output will be 0x4000. Ex) Sent: 0xC000C000 ? output: 0xC000C000 (bit 15 is don't care, so it is same to 0x4000) All other cases, there is no change.
The MSB (Bit 15) is used to differentiate positive and negative signal but it is don't care bit for the output.
问题如下:
1,饱和处理是将16位的数据,转化为15位的数据吗?
2,上面table7-11 中的input range一栏什么意思?(例如:8’h80 – 8’hff (Positive) +CO 他们各自是什么意思?)
3,饱和处理的具体实现过程?最好举几个例子。
