scarf_syntax/primitive_instances/
primitive_instantiation_and_instances.rs1use crate::*;
6
7#[derive(Clone, Debug, PartialEq)]
8pub enum GateInstantiation<'a> {
9 Cmos(
10 Box<(
11 CmosSwitchtype<'a>,
12 Option<Delay3<'a>>,
13 CmosSwitchInstance<'a>,
14 Vec<(
15 Metadata<'a>, CmosSwitchInstance<'a>,
17 )>,
18 Metadata<'a>, )>,
20 ),
21 Mos(
22 Box<(
23 MosSwitchtype<'a>,
24 Option<Delay3<'a>>,
25 MosSwitchInstance<'a>,
26 Vec<(
27 Metadata<'a>, MosSwitchInstance<'a>,
29 )>,
30 Metadata<'a>, )>,
32 ),
33 Enable(
34 Box<(
35 EnableGatetype<'a>,
36 Option<DriveStrength<'a>>,
37 Option<Delay3<'a>>,
38 EnableGateInstance<'a>,
39 Vec<(
40 Metadata<'a>, EnableGateInstance<'a>,
42 )>,
43 Metadata<'a>, )>,
45 ),
46 NInput(
47 Box<(
48 NInputGatetype<'a>,
49 Option<DriveStrength<'a>>,
50 Option<Delay2<'a>>,
51 NInputGateInstance<'a>,
52 Vec<(
53 Metadata<'a>, NInputGateInstance<'a>,
55 )>,
56 Metadata<'a>, )>,
58 ),
59 NOutput(
60 Box<(
61 NOutputGatetype<'a>,
62 Option<DriveStrength<'a>>,
63 Option<Delay2<'a>>,
64 NOutputGateInstance<'a>,
65 Vec<(
66 Metadata<'a>, NOutputGateInstance<'a>,
68 )>,
69 Metadata<'a>, )>,
71 ),
72 PassEn(
73 Box<(
74 PassEnSwitchtype<'a>,
75 Option<Delay2<'a>>,
76 PassEnableSwitchInstance<'a>,
77 Vec<(
78 Metadata<'a>, PassEnableSwitchInstance<'a>,
80 )>,
81 Metadata<'a>, )>,
83 ),
84 Pass(
85 Box<(
86 PassSwitchtype<'a>,
87 PassSwitchInstance<'a>,
88 Vec<(
89 Metadata<'a>, PassSwitchInstance<'a>,
91 )>,
92 Metadata<'a>, )>,
94 ),
95 Pulldown(
96 Box<(
97 Metadata<'a>, Option<PulldownStrength<'a>>,
99 PullGateInstance<'a>,
100 Vec<(
101 Metadata<'a>, PullGateInstance<'a>,
103 )>,
104 Metadata<'a>, )>,
106 ),
107 Pullup(
108 Box<(
109 Metadata<'a>, Option<PullupStrength<'a>>,
111 PullGateInstance<'a>,
112 Vec<(
113 Metadata<'a>, PullGateInstance<'a>,
115 )>,
116 Metadata<'a>, )>,
118 ),
119}
120
121#[derive(Clone, Debug, PartialEq)]
122pub struct CmosSwitchInstance<'a>(
123 pub Option<NameOfInstance<'a>>,
124 pub Metadata<'a>, pub OutputTerminal<'a>,
126 pub Metadata<'a>, pub InputTerminal<'a>,
128 pub Metadata<'a>, pub NcontrolTerminal<'a>,
130 pub Metadata<'a>, pub PcontrolTerminal<'a>,
132 pub Metadata<'a>, );
134
135#[derive(Clone, Debug, PartialEq)]
136pub struct EnableGateInstance<'a>(
137 pub Option<NameOfInstance<'a>>,
138 pub Metadata<'a>, pub OutputTerminal<'a>,
140 pub Metadata<'a>, pub InputTerminal<'a>,
142 pub Metadata<'a>, pub EnableTerminal<'a>,
144 pub Metadata<'a>, );
146
147#[derive(Clone, Debug, PartialEq)]
148pub struct MosSwitchInstance<'a>(
149 pub Option<NameOfInstance<'a>>,
150 pub Metadata<'a>, pub OutputTerminal<'a>,
152 pub Metadata<'a>, pub InputTerminal<'a>,
154 pub Metadata<'a>, pub EnableTerminal<'a>,
156 pub Metadata<'a>, );
158
159#[derive(Clone, Debug, PartialEq)]
160pub struct NInputGateInstance<'a>(
161 pub Option<NameOfInstance<'a>>,
162 pub Metadata<'a>, pub OutputTerminal<'a>,
164 pub Metadata<'a>, pub InputTerminal<'a>,
166 pub Vec<(
167 Metadata<'a>, InputTerminal<'a>,
169 )>,
170 pub Metadata<'a>, );
172
173#[derive(Clone, Debug, PartialEq)]
174pub struct NOutputGateInstance<'a>(
175 pub Option<NameOfInstance<'a>>,
176 pub Metadata<'a>, pub OutputTerminal<'a>,
178 pub Vec<(
179 Metadata<'a>, OutputTerminal<'a>,
181 )>,
182 pub Metadata<'a>, pub InputTerminal<'a>,
184 pub Metadata<'a>, );
186
187#[derive(Clone, Debug, PartialEq)]
188pub struct PassSwitchInstance<'a>(
189 pub Option<NameOfInstance<'a>>,
190 pub Metadata<'a>, pub InoutTerminal<'a>,
192 pub Metadata<'a>, pub InoutTerminal<'a>,
194 pub Metadata<'a>, );
196
197#[derive(Clone, Debug, PartialEq)]
198pub struct PassEnableSwitchInstance<'a>(
199 pub Option<NameOfInstance<'a>>,
200 pub Metadata<'a>, pub InoutTerminal<'a>,
202 pub Metadata<'a>, pub InoutTerminal<'a>,
204 pub Metadata<'a>, pub EnableTerminal<'a>,
206 pub Metadata<'a>, );
208
209#[derive(Clone, Debug, PartialEq)]
210pub struct PullGateInstance<'a>(
211 pub Option<NameOfInstance<'a>>,
212 pub Metadata<'a>, pub OutputTerminal<'a>,
214 pub Metadata<'a>, );