The zero comparator (and buffer gate) can write directly to specified bits on the output, but is there a block that can read directly from specified bits on the input? Other than doing a whole lot of math on a 5.23 number?
You don't really have to do a whole lot of math on the 5.23 number, all you have to do is multiply the value that you want to read (on the DSP) by a masking value, then read. Should be straigth forward. Let me know if this makes sense.
Thanks for your assistance. I believe I have implemented what you have suggested (I have done compare/subtract, I will check the instruction count against multiply mask/compare), but for read of multiple independent bits it is computationally intensive. Hoping there is an optimization other than multiply/compare for every bit, which takes about twice as many instructions as the zero compare module In other words I understand that the process would have to be the same at module level, but that code would be more efficient.
Can you better explain your application and the amount and different combination of bits you are looking to compare? Perhaps then we can recommend something more specific. We do have a list of 3rd parties that may customize code for you if you would like to develop a module that exaclty fits your needs.
The application is to change the digital output format to the AES42 standard for digital microphones. Specifically, my algorithm truncates to 16 bit and reverses the order from LSB to MSB (and then adds the required preamble and suffix to the data using the buffer gate). I have working code for the bit reversal, but it is using a large number of instructions with the ABCD module comparing the input signal to a reference for each bit, then sending the remaining input signal to the next step.
Retrieving data ...