diff options
author | Robert Ou <rqou@robertou.com> | 2017-06-24 06:59:20 -0700 |
---|---|---|
committer | Robert Ou <rqou@robertou.com> | 2017-06-24 07:22:56 -0700 |
commit | 6e0fb889fafc58d40ef83e61520f68f6767f0c91 (patch) | |
tree | dfdaab4ee59f78f754e53422147d6c66238a7c80 /techlibs/coolrunner2/cells_sim.v | |
parent | 8f8baccfde62d238025024eb1060ae0aba4c77e3 (diff) | |
download | yosys-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.v | 41 |
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 |