TITLE "Hamming Code Generator"; SUBDESIGN HAMMING_Gen ( CLK : INPUT; DIN[17..0] : INPUT; DOUT[23..0] : OUTPUT; CC : OUTPUT; ) VARIABLE D[18..1] : DFF; Q[24..1] : DFF; C[5..1] : NODE; PAR : NODE; CC : LCELL; BEGIN D[18..1]=DIN[17..0]; D[].CLK=CLK; CC=D[18..17]!=0; C1=LCELL( D1 $ D2 $ D4 $ D5) $ LCELL( D7 $ D9 $ D11 $ D12) $ LCELL(D14 $ D16 $ D18); C2=LCELL( D1 $ D3 $ D4 $ D6) $ LCELL( D7 $ D10 $ D11 $ D13) $ LCELL(D14 $ D17 $ D18); C3=LCELL( D2 $ D3 $ D4 $ D8) $ LCELL( D9 $ D10 $ D11 $ D15) $ LCELL(D16 $ D17 $ D18); C4=LCELL( D5 $ D6 $ D7 $ D8) $ LCELL( D9 $ D10 $ D11); C5=LCELL(D12 $ D13 $ D14 $ D15) $ LCELL(D16 $ D17 $ D18); PAR=LCELL(D1 $ D2 $ D3 $ D5) $ LCELL( D6 $ D8 $ D11 $ D12) $ LCELL(D13 $ D15 $ D18); Q1 = C1 and CC; Q[].CLK=CLK; Q2 = C2 and CC; Q3 = D1 and CC; Q4 = C3 and CC; Q5 = D2 and CC; Q6 = D3 and CC; Q7 = D4 and CC; Q8 = C4 and CC; Q9 = D5 and CC; Q10= D6 and CC; Q11= D7 and CC; Q12= D8 and CC; Q13= D9 and CC; Q14=D10 and CC; Q15=D11 and CC; Q16= C5 and CC; Q17=D12 and CC; Q18=D13 and CC; Q19=D14 and CC; Q20=D15 and CC; Q21=D16 and CC; Q22=D17 and CC; Q23=D18 and CC; Q24=PAR and CC; DOUT[23..0]=Q[24..1]; END;