| `define default_netname none |
| |
| module buffer_cell ( |
| input wire in, |
| output wire out |
| ); |
| assign out = in; |
| endmodule |
| |
| module and_cell ( |
| input wire a, |
| input wire b, |
| output wire out |
| ); |
| |
| assign out = a & b; |
| endmodule |
| |
| module or_cell ( |
| input wire a, |
| input wire b, |
| output wire out |
| ); |
| |
| assign out = a | b; |
| endmodule |
| |
| module xor_cell ( |
| input wire a, |
| input wire b, |
| output wire out |
| ); |
| |
| assign out = a ^ b; |
| endmodule |
| |
| module nand_cell ( |
| input wire a, |
| input wire b, |
| output wire out |
| ); |
| |
| assign out = !(a&b); |
| endmodule |
| |
| module not_cell ( |
| input wire in, |
| output wire out |
| ); |
| |
| assign out = !in; |
| endmodule |
| |
| module mux_cell ( |
| input wire a, |
| input wire b, |
| input wire sel, |
| output wire out |
| ); |
| |
| assign out = sel ? b : a; |
| endmodule |
| |
| module dff_cell ( |
| input wire clk, |
| input wire d, |
| output reg q, |
| output wire notq |
| ); |
| |
| assign notq = !q; |
| always @(posedge clk) |
| q <= d; |
| |
| endmodule |
| |
| module dffsr_cell ( |
| input wire clk, |
| input wire d, |
| input wire s, |
| input wire r, |
| output reg q, |
| output wire notq |
| ); |
| |
| assign notq = !q; |
| |
| always @(posedge clk or posedge s or posedge r) begin |
| if (r) |
| q <= '0; |
| else if (s) |
| q <= '1; |
| else |
| q <= d; |
| end |
| endmodule |