v {xschem version=3.1.0 file_version=1.2
* Copyright 2022 Stefan Frederik Schippers
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
}
G {}
K {type=primitive
function3="1 0 2 & & 0 ~ 2 3 & & |"
function4="3 ~"
format="@name @@CLK @@D @@RESET_B @VGND @VNB @VPB @VPWR @@Q @@Q_N @prefix\\\\dfrbp_1"
template="name=x1 VGND=VGND VNB=VNB VPB=VPB VPWR=VPWR prefix=sky130_fd_sc_hd__ "
extra="VGND VNB VPB VPWR prefix"
}
V {}
S {}
E {}
L 4 -70 -30 70 -30 {}
L 4 -70 30 70 30 {}
L 4 -70 -30 -70 30 {}
L 4 70 -30 70 30 {}
L 4 -90 -20 -70 -20 {}
L 4 -90 0 -70 0 {}
L 4 -90 20 -70 20 {}
L 4 70 -20 90 -20 {}
L 4 70 0 90 0 {}
B 5 -92.5 -22.5 -87.5 -17.5 {name=CLK dir=in goto=3 clock=1}
B 5 -92.5 -2.5 -87.5 2.5 {name=D dir=in }
B 5 -92.5 17.5 -87.5 22.5 {name=RESET_B dir=in goto=3 clock=2}
B 5 87.5 -22.5 92.5 -17.5 {name=Q dir=out goto=4}
B 5 87.5 -2.5 92.5 2.5 {name=Q_N dir=out }
T {@symname} 0 -6 0 0 0.3 0.3 {hcenter=true}
T {@name} 75 -42 0 0 0.2 0.2 {}
T {CLK} -65 -24 0 0 0.2 0.2 {}
T {D} -65 -4 0 0 0.2 0.2 {}
T {RESET_B} -65 16 0 0 0.2 0.2 {}
T {Q} 65 -24 0 1 0.2 0.2 {}
T {Q_N} 65 -4 0 1 0.2 0.2 {}
