OpenCores
URL https://opencores.org/ocsvn/pairing/pairing/trunk

Subversion Repositories pairing

[/] [pairing/] [trunk/] [rtl/] [f3m.v] - Diff between revs 11 and 17

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 11 Rev 17
Line 17... Line 17...
 
 
// out = (v0 & l0) | (v1 & l1) | (v2 & l2) | ... | (v5 & l5)
// out = (v0 & l0) | (v1 & l1) | (v2 & l2) | ... | (v5 & l5)
module f3m_mux6(v0, v1, v2, v3, v4, v5, l0, l1, l2, l3, l4, l5, out);
module f3m_mux6(v0, v1, v2, v3, v4, v5, l0, l1, l2, l3, l4, l5, out);
    input l0, l1, l2, l3, l4, l5;
    input l0, l1, l2, l3, l4, l5;
    input [`WIDTH:0] v0, v1, v2, v3, v4, v5;
    input [`WIDTH:0] v0, v1, v2, v3, v4, v5;
    output reg [`WIDTH:0] out;
    output [`WIDTH:0] out;
    always @ (l0,l1,l2,l3,l4,l5,v0,v1,v2,v3,v4,v5)
    genvar i;
      case ({l0,l1,l2,l3,l4,l5})
    generate
        6'b100000: out = v0;
        for(i=0;i<=`WIDTH;i=i+1)
        6'b010000: out = v1;
          begin : label
        6'b001000: out = v2;
            assign out[i] = (v0[i]&l0)|(v1[i]&l1)|(v2[i]&l2)|(v3[i]&l3)|(v4[i]&l4)|(v5[i]&l5);
        6'b000100: out = v3;
          end
        6'b000010: out = v4;
    endgenerate
        6'b000001: out = v5;
 
        default: out = 0;
 
      endcase
 
endmodule
endmodule
 
 
// f3m_add: C = A + B, in field F_{3^M}
// f3m_add: C = A + B, in field F_{3^M}
module f3m_add(A, B, C);
module f3m_add(A, B, C);
    input [`WIDTH : 0] A, B;
    input [`WIDTH : 0] A, B;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.