| module LUT1(output F, input I0); |
| parameter [1:0] INIT = 0; |
| assign F = I0 ? INIT[1] : INIT[0]; |
| endmodule |
| |
| module LUT2(output F, input I0, I1); |
| parameter [3:0] INIT = 0; |
| wire [ 1: 0] s1 = I1 ? INIT[ 3: 2] : INIT[ 1: 0]; |
| assign F = I0 ? s1[1] : s1[0]; |
| endmodule |
| |
| module LUT3(output F, input I0, I1, I2); |
| parameter [7:0] INIT = 0; |
| wire [ 3: 0] s2 = I2 ? INIT[ 7: 4] : INIT[ 3: 0]; |
| wire [ 1: 0] s1 = I1 ? s2[ 3: 2] : s2[ 1: 0]; |
| assign F = I0 ? s1[1] : s1[0]; |
| endmodule |
| |
| module LUT4(output F, input I0, I1, I2, I3); |
| parameter [15:0] INIT = 0; |
| wire [ 7: 0] s3 = I3 ? INIT[15: 8] : INIT[ 7: 0]; |
| wire [ 3: 0] s2 = I2 ? s3[ 7: 4] : s3[ 3: 0]; |
| wire [ 1: 0] s1 = I1 ? s2[ 3: 2] : s2[ 1: 0]; |
| assign F = I0 ? s1[1] : s1[0]; |
| endmodule |
| |
| module DFF (output reg Q, input CLK, D); |
| parameter [0:0] INIT = 1'b0; |
| initial Q = INIT; |
| always @(posedge CLK) |
| Q <= D; |
| endmodule |
| |
| module DFFN (output reg Q, input CLK, D); |
| parameter [0:0] INIT = 1'b0; |
| initial Q = INIT; |
| always @(negedge CLK) |
| Q <= D; |
| endmodule |
| |
| module VCC(output V); |
| assign V = 1; |
| endmodule |
| |
| module GND(output G); |
| assign G = 0; |
| endmodule |
| |
| module IBUF(output O, input I); |
| assign O = I; |
| endmodule |
| |
| module OBUF(output O, input I); |
| assign O = I; |
| endmodule |
| |
| module GSR (input GSRI); |
| wire GSRO = GSRI; |
| endmodule |
| |
| module ALU (input I0, input I1, input I3, input CIN, output COUT, output SUM); |
| parameter [3:0] ALU_MODE = 0; // default 0 = ADD |
| assign {COUT, SUM} = CIN + I1 + I0; |
| endmodule // alu |
| |