aboutsummaryrefslogtreecommitdiffstats
path: root/generic/viaduct/example/example_prims.v
blob: d2813129b43b7f833dccf13c6bc3fa8e438b1dc4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
module LUT4 #(
    parameter [15:0] INIT = 0
) (
    input [3:0] I,
    output F
);
    wire [7:0] s3 = I[3] ?     INIT[15:8] :     INIT[7:0];
    wire [3:0] s2 = I[2] ?       s3[ 7:4] :       s3[3:0];
    wire [1:0] s1 = I[1] ?       s2[ 3:2] :       s2[1:0];
    assign F = I[0] ? s1[1] : s1[0];
endmodule

module DFF (
    input CLK, D,
    output reg Q
);
    initial Q = 1'b0;
    always @(posedge CLK)
        Q <= D;
endmodule

module INBUF (
    input PAD,
    output O,
);
    assign O = PAD;
endmodule

module OUTBUF (
    output PAD,
    input I,
);
    assign PAD = I;
endmodule