aboutsummaryrefslogtreecommitdiffstats
path: root/techlibs/coolrunner2/cells_sim.v
diff options
context:
space:
mode:
authorRobert Ou <rqou@robertou.com>2017-06-24 06:59:20 -0700
committerRobert Ou <rqou@robertou.com>2017-06-24 07:22:56 -0700
commit6e0fb889fafc58d40ef83e61520f68f6767f0c91 (patch)
treedfdaab4ee59f78f754e53422147d6c66238a7c80 /techlibs/coolrunner2/cells_sim.v
parent8f8baccfde62d238025024eb1060ae0aba4c77e3 (diff)
downloadyosys-6e0fb889fafc58d40ef83e61520f68f6767f0c91.tar.gz
yosys-6e0fb889fafc58d40ef83e61520f68f6767f0c91.tar.bz2
yosys-6e0fb889fafc58d40ef83e61520f68f6767f0c91.zip
coolrunner2: Initial commit
Diffstat (limited to 'techlibs/coolrunner2/cells_sim.v')
-rw-r--r--techlibs/coolrunner2/cells_sim.v41
1 files changed, 41 insertions, 0 deletions
diff --git a/techlibs/coolrunner2/cells_sim.v b/techlibs/coolrunner2/cells_sim.v
new file mode 100644
index 000000000..328e7504d
--- /dev/null
+++ b/techlibs/coolrunner2/cells_sim.v
@@ -0,0 +1,41 @@
+module IBUF(input I, output O);
+ assign O = I;
+endmodule
+
+module IOBUFE(input I, input E, output O, inout IO);
+ assign O = IO;
+ assign IO = E ? I : 1'bz;
+endmodule
+
+module ANDTERM(IN, OUT);
+ parameter WIDTH = 0;
+
+ input [(WIDTH*2)-1:0] IN;
+ output reg OUT;
+
+ integer i;
+
+ always @(*) begin
+ OUT = 1;
+ for (i = 0; i < WIDTH; i=i+1) begin
+ OUT = OUT & ~IN[i * 2 + 0];
+ OUT = OUT & IN[i * 2 + 1];
+ end
+ end
+endmodule
+
+module ORTERM(IN, OUT);
+ parameter WIDTH = 0;
+
+ input [WIDTH-1:0] IN;
+ output reg OUT;
+
+ integer i;
+
+ always @(*) begin
+ OUT = 0;
+ for (i = 0; i < WIDTH; i=i+1) begin
+ OUT = OUT | IN[i];
+ end
+ end
+endmodule