diff options
author | gatecat <gatecat@ds0.me> | 2021-12-30 13:18:34 +0000 |
---|---|---|
committer | gatecat <gatecat@ds0.me> | 2022-01-04 20:19:29 +0000 |
commit | e88bd34c02272ecdad6295123941d9040fa4f043 (patch) | |
tree | 2ff879a3a856d19f61cc0c0875e7a3aa7fba7ac1 /generic/viaduct/example/example_prims.v | |
parent | 089ca8258e6f4dc93f8d39594c1109a8578cdc98 (diff) | |
download | nextpnr-e88bd34c02272ecdad6295123941d9040fa4f043.tar.gz nextpnr-e88bd34c02272ecdad6295123941d9040fa4f043.tar.bz2 nextpnr-e88bd34c02272ecdad6295123941d9040fa4f043.zip |
Viaduct API for a hybrid between generic and full-custom arch
Signed-off-by: gatecat <gatecat@ds0.me>
Diffstat (limited to 'generic/viaduct/example/example_prims.v')
-rw-r--r-- | generic/viaduct/example/example_prims.v | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/generic/viaduct/example/example_prims.v b/generic/viaduct/example/example_prims.v new file mode 100644 index 00000000..d2813129 --- /dev/null +++ b/generic/viaduct/example/example_prims.v @@ -0,0 +1,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 + |