! ! BDS architecture description for HEC circuit, which computes ! the HEC of a 32-bit header. ! r contains the CRC bits. ! l contains the initial values of CRC bits; initialized to 'O' in this case. ! c represents the coset polynomial. ! Refer to TurboChannel-ATM Interface document for derivation of equations. ! Note that you can get rid of all 'l in one operation ! on 32 bits, four partial results are computed first on 8 bits each. MODEL hec r<7:0> = h<31:0>; constant c<7:0> = 01010101#2; ROUTINE hec; r<7> = h<31> XOR h<30> XOR h<28> XOR h<23> XOR h<21> XOR h<19> XOR h<18> XOR h<16> XOR h<14> XOR h<12> XOR h<8> XOR h<7> XOR h<6> XOR h<0>; r<6> = h<30> XOR h<29> XOR h<28> XOR h<24> XOR h<23> XOR h<22> XOR h<21> XOR h<20> XOR h<19> XOR h<18> XOR h<17> XOR h<16> XOR h<15> XOR h<14> XOR h<13> XOR h<12> XOR h<9> XOR h<6> XOR h<1> XOR h<0>; r<5> = h<29> XOR h<28> XOR h<25> XOR h<24> XOR h<22> XOR h<17> XOR h<15> XOR h<13> XOR h<12> XOR h<10> XOR h<8> XOR h<2> XOR h<1> XOR h<0>; r<4> = h<30> XOR h<29> XOR h<26> XOR h<25> XOR h<23> XOR h<18> XOR h<16> XOR h<14> XOR h<13> XOR h<11> XOR h<9> XOR h<7> XOR h<3> XOR h<2> XOR h<1>; r<3> = h<31> XOR h<30> XOR h<27> XOR h<26> XOR h<24> XOR h<19> XOR h<17> XOR h<15> XOR h<14> XOR h<12> XOR h<10> XOR h<8> XOR h<4> XOR h<3> XOR h<2>; r<2> = h<31> XOR h<28> XOR h<27> XOR h<25> XOR h<20> XOR h<18> XOR h<16> XOR h<15> XOR h<13> XOR h<11> XOR h<9> XOR h<5> XOR h<4> XOR h<3>; r<1> = h<29> XOR h<28> XOR h<26> XOR h<21> XOR h<19> XOR h<17> XOR h<16> XOR h<14> XOR h<12> XOR h<10> XOR h<6> XOR h<5> XOR h<4>; r<0> = h<30> XOR h<29> XOR h<27> XOR h<22> XOR h<20> XOR h<18> XOR h<17> XOR h<15> XOR h<13> XOR h<11> XOR h<7> XOR h<6> XOR h<5>; r = r XOR c; ENDROUTINE; ENDMODEL;