| // Copyright (C) 2020-2021 The SymbiFlow Authors. | |
| // | |
| // Use of this source code is governed by a ISC-style | |
| // license that can be found in the LICENSE file or at | |
| // https://opensource.org/licenses/ISC | |
| // | |
| // SPDX-License-Identifier:ISC | |
| module inpad ( | |
| output Q, | |
| (* iopad_external_pin *) | |
| input P | |
| ); | |
| assign Q = P; | |
| endmodule | |
| module outpad ( | |
| (* iopad_external_pin *) | |
| output P, | |
| input A | |
| ); | |
| assign P = A; | |
| endmodule | |
| module ckpad ( | |
| output Q, | |
| (* iopad_external_pin *) | |
| input P | |
| ); | |
| assign Q = P; | |
| endmodule | |
| module bipad ( | |
| input A, | |
| input EN, | |
| output Q, | |
| (* iopad_external_pin *) | |
| inout P | |
| ); | |
| assign Q = P; | |
| assign P = EN ? A : 1'bz; | |
| endmodule | |
| module dff ( | |
| output reg Q, | |
| input D, | |
| (* clkbuf_sink *) | |
| input CLK | |
| ); | |
| parameter [0:0] INIT = 1'b0; | |
| initial Q = INIT; | |
| always @(posedge CLK) Q <= D; | |
| endmodule | |