Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

D1.1 Clause 49 State Machine comments




Hi Pat,

1.  You have changed Variables definition from "good_mt_eq_64, bad_mt_gt_32"
in D1.0
      to " good_sh_eq_64, bad_sh_gt_32", then Figure 49-8 on page 184 should
use " good_sh
      _eq_64" and "bad_sh_eq_32".

2. Variables definition on page 183 should be "bad_sh_eq_32", not
"bad_sh_gt_32"

3. Figure 49-9 on page 185 :
     a.There are two " bad_mt_eq_32" should not be there.
     b. No need for "frame_lock=true" be  there

4. Basically I think your state diagram in Figure 49-9 is too confuse and not
accurate.
    You can see from Figure 36-9 in 802.3-1998, they check if it's "cgbad" or
"cggood" in every
    state, but in your diagram in Figure 49-9, you only check sync_head in
"TEST_SH" state,
    that means if you implement this state machine, you need to run atleast 2x
frame clock.
    In my opinion, you even don't need a sync head monitor state machine, it's
quite simple:
                    if ( reset == true or
                          Lock_State_Machine==SLIP or
                          sh_cnt == 63 )
                         begin
                                 sh_cnt <= 0;
                                 sh_invalid_cnt <=0;
                         end
                     else
                         begin
                                 sh_cnt <= sh_cnt + 1;
                                 sh_invalid_cnt <= sh_invalid_cnt + (sh_valid
== false);
                         end
      then
               good_sh_eq_64 <= ( sh_cnt == 63) and ( sh_invald_cnt == 0) and
( sh_valid == true);
               bad_sh_eq_32 <= (sh_invalid_cnt == 31) and (sh_valid == false);

5. Come back to Figure 49-8 on page 184:
     I still prefer from 'NO_FRAME_LOCK" to "SLIP" should use"sh_valid=false",
not
     "bad_sh_eq_32=true".
      a. You also can see from Figure 36-9 in 802.3-1998, before it enter
"SYNC_ACQUIRED"
           state, every time when they detect a single code error, it go back
to the beginning state
           "LOSS_OF_SYNC".
      b. In your reply to my last comment, you said "It is cleaner to have the
counter
           controlled by one machine and the new machines are more closely
interlinked."
           but in my proposal, there is only one state machine.

Regards,

--Alex Deng
-----------------------------------------
Alex Deng
Cisco
408-853-8170
adeng@xxxxxxxxx
-----------------------------------------