diff options
author | Martin Braun <martin.braun@ettus.com> | 2014-10-07 11:25:20 +0200 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2014-10-07 11:25:20 +0200 |
commit | fd3e84941de463fa1a7ebab0a69515b4bf2614cd (patch) | |
tree | 3fa721a13d41d2c0451d663a59a220a38fd5e614 /fpga/usrp2/opencores/8b10b/encode_8b10b.v | |
parent | 3b66804e41891e358c790b453a7a59ec7462dba4 (diff) | |
download | uhd-fd3e84941de463fa1a7ebab0a69515b4bf2614cd.tar.gz uhd-fd3e84941de463fa1a7ebab0a69515b4bf2614cd.tar.bz2 uhd-fd3e84941de463fa1a7ebab0a69515b4bf2614cd.zip |
Removed copy of FPGA source files.
Diffstat (limited to 'fpga/usrp2/opencores/8b10b/encode_8b10b.v')
-rw-r--r-- | fpga/usrp2/opencores/8b10b/encode_8b10b.v | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/fpga/usrp2/opencores/8b10b/encode_8b10b.v b/fpga/usrp2/opencores/8b10b/encode_8b10b.v deleted file mode 100644 index c1f09b9ce..000000000 --- a/fpga/usrp2/opencores/8b10b/encode_8b10b.v +++ /dev/null @@ -1,120 +0,0 @@ -// Chuck Benz, Hollis, NH Copyright (c)2002 -// -// The information and description contained herein is the -// property of Chuck Benz. -// -// Permission is granted for any reuse of this information -// and description as long as this copyright notice is -// preserved. Modifications may be made as long as this -// notice is preserved. - -// per Widmer and Franaszek - -module encode_8b10b (datain, dispin, dataout, dispout) ; - input [8:0] datain ; - input dispin ; // 0 = neg disp; 1 = pos disp - output [9:0] dataout ; - output dispout ; - - - wire ai = datain[0] ; - wire bi = datain[1] ; - wire ci = datain[2] ; - wire di = datain[3] ; - wire ei = datain[4] ; - wire fi = datain[5] ; - wire gi = datain[6] ; - wire hi = datain[7] ; - wire ki = datain[8] ; - - wire aeqb = (ai & bi) | (!ai & !bi) ; - wire ceqd = (ci & di) | (!ci & !di) ; - wire l22 = (ai & bi & !ci & !di) | - (ci & di & !ai & !bi) | - ( !aeqb & !ceqd) ; - wire l40 = ai & bi & ci & di ; - wire l04 = !ai & !bi & !ci & !di ; - wire l13 = ( !aeqb & !ci & !di) | - ( !ceqd & !ai & !bi) ; - wire l31 = ( !aeqb & ci & di) | - ( !ceqd & ai & bi) ; - - // The 5B/6B encoding - - wire ao = ai ; - wire bo = (bi & !l40) | l04 ; - wire co = l04 | ci | (ei & di & !ci & !bi & !ai) ; - wire do = di & ! (ai & bi & ci) ; - wire eo = (ei | l13) & ! (ei & di & !ci & !bi & !ai) ; - wire io = (l22 & !ei) | - (ei & !di & !ci & !(ai&bi)) | // D16, D17, D18 - (ei & l40) | - (ki & ei & di & ci & !bi & !ai) | // K.28 - (ei & !di & ci & !bi & !ai) ; - - // pds16 indicates cases where d-1 is assumed + to get our encoded value - wire pd1s6 = (ei & di & !ci & !bi & !ai) | (!ei & !l22 & !l31) ; - // nds16 indicates cases where d-1 is assumed - to get our encoded value - wire nd1s6 = ki | (ei & !l22 & !l13) | (!ei & !di & ci & bi & ai) ; - - // ndos6 is pds16 cases where d-1 is + yields - disp out - all of them - wire ndos6 = pd1s6 ; - // pdos6 is nds16 cases where d-1 is - yields + disp out - all but one - wire pdos6 = ki | (ei & !l22 & !l13) ; - - - // some Dx.7 and all Kx.7 cases result in run length of 5 case unless - // an alternate coding is used (referred to as Dx.A7, normal is Dx.P7) - // specifically, D11, D13, D14, D17, D18, D19. - wire alt7 = fi & gi & hi & (ki | - (dispin ? (!ei & di & l31) : (ei & !di & l13))) ; - - - wire fo = fi & ! alt7 ; - wire go = gi | (!fi & !gi & !hi) ; - wire ho = hi ; - wire jo = (!hi & (gi ^ fi)) | alt7 ; - - // nd1s4 is cases where d-1 is assumed - to get our encoded value - wire nd1s4 = fi & gi ; - // pd1s4 is cases where d-1 is assumed + to get our encoded value - wire pd1s4 = (!fi & !gi) | (ki & ((fi & !gi) | (!fi & gi))) ; - - // ndos4 is pd1s4 cases where d-1 is + yields - disp out - just some - wire ndos4 = (!fi & !gi) ; - // pdos4 is nd1s4 cases where d-1 is - yields + disp out - wire pdos4 = fi & gi & hi ; - - // only legal K codes are K28.0->.7, K23/27/29/30.7 - // K28.0->7 is ei=di=ci=1,bi=ai=0 - // K23 is 10111 - // K27 is 11011 - // K29 is 11101 - // K30 is 11110 - so K23/27/29/30 are ei & l31 - wire illegalk = ki & - (ai | bi | !ci | !di | !ei) & // not K28.0->7 - (!fi | !gi | !hi | !ei | !l31) ; // not K23/27/29/30.7 - - // now determine whether to do the complementing - // complement if prev disp is - and pd1s6 is set, or + and nd1s6 is set - wire compls6 = (pd1s6 & !dispin) | (nd1s6 & dispin) ; - - // disparity out of 5b6b is disp in with pdso6 and ndso6 - // pds16 indicates cases where d-1 is assumed + to get our encoded value - // ndos6 is cases where d-1 is + yields - disp out - // nds16 indicates cases where d-1 is assumed - to get our encoded value - // pdos6 is cases where d-1 is - yields + disp out - // disp toggles in all ndis16 cases, and all but that 1 nds16 case - - wire disp6 = dispin ^ (ndos6 | pdos6) ; - - wire compls4 = (pd1s4 & !disp6) | (nd1s4 & disp6) ; - assign dispout = disp6 ^ (ndos4 | pdos4) ; - - assign dataout = {(jo ^ compls4), (ho ^ compls4), - (go ^ compls4), (fo ^ compls4), - (io ^ compls6), (eo ^ compls6), - (do ^ compls6), (co ^ compls6), - (bo ^ compls6), (ao ^ compls6)} ; - -endmodule |