Forum Discussion
Altera_Forum
Honored Contributor
10 years ago --- Quote Start --- Hi, I tried the following solution and it seems as if it works although I must admit that the documentation is difficult to interpret.. In the word alignment pattern length I used 20 bits and for the word alignment pattern I used the pattern 10101010100101111100 (AA97C , D10.2 and K28.5). Then I enabled the byte ordering block and checked based on the syncstatus signal from the word aligner. I checked the Use a two word byte ordering pattern with the two patterns 001001010 and 110111100 (first one represents hex 4A (D10.2) and the second one hex 1BC (equivalent to K28.5 char (9th bit 1 to indicate it is a control char)). For the byte ordering pad pattern I use the 000000000. This latter one still confuses me a bit... Then after the SATA OOB signalling when the speed negotiation starts and the drive sends the ALIGN primitives I check for the syncstatus bits and when they appear to be all ones then I issue a rx_enapatternalign to the ALTGX. I can then see that the block realigns and that I get the correct 7BA4A4BC alignment... regards --- Quote End --- Thanks, this is interesting as I never resolved this when I was working on it. Does your solution work consistently and do you need to toggle the optional rx_std_wa_patternalign input port to get it to align correctly and consistently? I wasn't using the rx_std_wa_patternalign signal in my design because I interpreted the transceiver user guide as this was an optional signal therefore would only require it if I wanted to perform a re-alignment in the word aligner i.e. the first alignment would automatically occur.