Hi, Last time I have posted a question about guard bit in CORDIC algorithm. I have got some good answers from this goupe. When I programe in C to do a simulation, I still don't understand how I do with the guard bits. From one of the papers talking about implementation of CORDIC, it says the input is 12 bits, internal data paths are 16 plus extra 6 guard bits. At the input stage adds 6 all-zero guard bit extension. At the output stage it erases guard bits. And, it also divides two inputs number by 2 at first to prevent overflow. The internal data are represented as signed numbers. My question is:

- What are the differences between the internal 22 (16+6) bits calculation and 16 bits data plus 6 guard bits extension? Especially I want to get an example to make this question clear.
- If the 6 extra guard bits are MSB, to erase them will not destroy data? There are 9 stages of CORDIC cells in my application. In my simulation programe I find the high bit in the last stage is at bit 5 (in the guard bits range when I simply use 22 internal bits with there are 6 bits leave off at the first input data stage).
- Which book talks about the guard bit? Could you recommend me some?

Thanks in advance.