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

Subversion Repositories pairing

[/] [pairing/] [trunk/] [rtl/] [f3.v] - Diff between revs 5 and 8

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

Rev 5 Rev 8
Line 4... Line 4...
    output [1:0] C;
    output [1:0] C;
    wire a0, a1, b0, b1, c0, c1;
    wire a0, a1, b0, b1, c0, c1;
    assign {a1, a0} = A;
    assign {a1, a0} = A;
    assign {b1, b0} = B;
    assign {b1, b0} = B;
    assign C = {c1, c0};
    assign C = {c1, c0};
    assign c0 = ( a0 & !a1 & !b0 & !b1) |
    assign c0 = ( a0 & ~a1 & ~b0 & ~b1) |
                (!a0 & !a1 &  b0 & !b1) |
                (~a0 & ~a1 &  b0 & ~b1) |
                (!a0 &  a1 & !b0 &  b1) ;
                (~a0 &  a1 & ~b0 &  b1) ;
    assign c1 = (!a0 &  a1 & !b0 & !b1) |
    assign c1 = (~a0 &  a1 & ~b0 & ~b1) |
                ( a0 & !a1 &  b0 & !b1) |
                ( a0 & ~a1 &  b0 & ~b1) |
                (!a0 & !a1 & !b0 &  b1) ;
                (~a0 & ~a1 & ~b0 &  b1) ;
endmodule
endmodule
 
 
// f3_sub: C == A-B (mod 3)
// f3_sub: C == A-B (mod 3)
module f3_sub(A, B, C);
module f3_sub(A, B, C);
    input [1:0] A, B;
    input [1:0] A, B;
Line 27... Line 27...
        input [1:0] B;
        input [1:0] B;
        output [1:0] C;
        output [1:0] C;
        wire a0, a1, b0, b1;
        wire a0, a1, b0, b1;
        assign {a1, a0} = A;
        assign {a1, a0} = A;
        assign {b1, b0} = B;
        assign {b1, b0} = B;
        assign C[0] = (!a1 & a0 & !b1 & b0) | (a1 & !a0 & b1 & !b0);
        assign C[0] = (~a1 & a0 & ~b1 & b0) | (a1 & ~a0 & b1 & ~b0);
        assign C[1] = (!a1 & a0 & b1 & !b0) | (a1 & !a0 & !b1 & b0);
        assign C[1] = (~a1 & a0 & b1 & ~b0) | (a1 & ~a0 & ~b1 & b0);
endmodule
endmodule
 
 
 
// c == a+1 (mod 3)
 
module f3_add1(a, c);
 
    input [1:0] a;
 
    output [1:0] c;
 
    assign c[0] = (~a[0]) & (~a[1]);
 
    assign c[1] = a[0] & (~a[1]);
 
endmodule
 
 
 
// c == a-1 (mod 3)
 
module f3_sub1(a, c);
 
    input [1:0] a;
 
    output [1:0] c;
 
    assign c[0] = (~a[0]) & a[1];
 
    assign c[1] = (~a[0]) & (~a[1]);
 
endmodule
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

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