@modular-circuit/perc 0.0.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +40 -0
  3. package/build/erc/connect_graph_visitor/index.d.ts +2 -0
  4. package/build/erc/connect_graph_visitor/index.d.ts.map +1 -0
  5. package/build/erc/connect_graph_visitor/index.js +1 -0
  6. package/build/erc/connect_graph_visitor/visitor.d.ts +5 -0
  7. package/build/erc/connect_graph_visitor/visitor.d.ts.map +1 -0
  8. package/build/erc/connect_graph_visitor/visitor.js +0 -0
  9. package/build/erc/context/connection_graph_builder_ctx.d.ts +7 -0
  10. package/build/erc/context/connection_graph_builder_ctx.d.ts.map +1 -0
  11. package/build/erc/context/connection_graph_builder_ctx.js +0 -0
  12. package/build/erc/context/error_severity.d.ts +11 -0
  13. package/build/erc/context/error_severity.d.ts.map +1 -0
  14. package/build/erc/context/error_severity.js +13 -0
  15. package/build/erc/context/graph.d.ts +3 -0
  16. package/build/erc/context/graph.d.ts.map +1 -0
  17. package/build/erc/context/graph.js +0 -0
  18. package/build/erc/context/graph_converter.d.ts +8 -0
  19. package/build/erc/context/graph_converter.d.ts.map +1 -0
  20. package/build/erc/context/graph_converter.js +0 -0
  21. package/build/erc/context/index.d.ts +6 -0
  22. package/build/erc/context/index.d.ts.map +1 -0
  23. package/build/erc/context/index.js +5 -0
  24. package/build/erc/context/pin_to_pin_test_ctx.d.ts +7 -0
  25. package/build/erc/context/pin_to_pin_test_ctx.d.ts.map +1 -0
  26. package/build/erc/context/pin_to_pin_test_ctx.js +0 -0
  27. package/build/erc/index.d.ts +5 -0
  28. package/build/erc/index.d.ts.map +1 -0
  29. package/build/erc/index.js +4 -0
  30. package/build/erc/netlist/constraints.d.ts +5 -0
  31. package/build/erc/netlist/constraints.d.ts.map +1 -0
  32. package/build/erc/netlist/constraints.js +30 -0
  33. package/build/erc/netlist/index.d.ts +3 -0
  34. package/build/erc/netlist/index.d.ts.map +1 -0
  35. package/build/erc/netlist/index.js +2 -0
  36. package/build/erc/netlist/tester.d.ts +10 -0
  37. package/build/erc/netlist/tester.d.ts.map +1 -0
  38. package/build/erc/netlist/tester.js +67 -0
  39. package/build/erc/parameter_propagation/error_code.d.ts +41 -0
  40. package/build/erc/parameter_propagation/error_code.d.ts.map +1 -0
  41. package/build/erc/parameter_propagation/error_code.js +74 -0
  42. package/build/erc/parameter_propagation/index.d.ts +3 -0
  43. package/build/erc/parameter_propagation/index.d.ts.map +1 -0
  44. package/build/erc/parameter_propagation/index.js +2 -0
  45. package/build/erc/parameter_propagation/link_testers/index.d.ts +2 -0
  46. package/build/erc/parameter_propagation/link_testers/index.d.ts.map +1 -0
  47. package/build/erc/parameter_propagation/link_testers/index.js +1 -0
  48. package/build/erc/parameter_propagation/link_testers/link_tester_base.d.ts +23 -0
  49. package/build/erc/parameter_propagation/link_testers/link_tester_base.d.ts.map +1 -0
  50. package/build/erc/parameter_propagation/link_testers/link_tester_base.js +112 -0
  51. package/build/erc/parameter_propagation/link_testers/tester_impl.d.ts +247 -0
  52. package/build/erc/parameter_propagation/link_testers/tester_impl.d.ts.map +1 -0
  53. package/build/erc/parameter_propagation/link_testers/tester_impl.js +1456 -0
  54. package/build/erc/parameter_propagation/tester.d.ts +16 -0
  55. package/build/erc/parameter_propagation/tester.d.ts.map +1 -0
  56. package/build/erc/parameter_propagation/tester.js +215 -0
  57. package/build/erc/pin_compatibility_matrix/erc_setting.d.ts +29 -0
  58. package/build/erc/pin_compatibility_matrix/erc_setting.d.ts.map +1 -0
  59. package/build/erc/pin_compatibility_matrix/erc_setting.js +110 -0
  60. package/build/erc/pin_compatibility_matrix/error_code.d.ts +55 -0
  61. package/build/erc/pin_compatibility_matrix/error_code.d.ts.map +1 -0
  62. package/build/erc/pin_compatibility_matrix/error_code.js +56 -0
  63. package/build/erc/pin_compatibility_matrix/index.d.ts +5 -0
  64. package/build/erc/pin_compatibility_matrix/index.d.ts.map +1 -0
  65. package/build/erc/pin_compatibility_matrix/index.js +4 -0
  66. package/build/erc/pin_compatibility_matrix/pin_error.d.ts +7 -0
  67. package/build/erc/pin_compatibility_matrix/pin_error.d.ts.map +1 -0
  68. package/build/erc/pin_compatibility_matrix/pin_error.js +7 -0
  69. package/build/erc/pin_compatibility_matrix/tester.d.ts +9 -0
  70. package/build/erc/pin_compatibility_matrix/tester.d.ts.map +1 -0
  71. package/build/erc/pin_compatibility_matrix/tester.js +23 -0
  72. package/build/graphics/index.d.ts +3 -0
  73. package/build/graphics/index.d.ts.map +1 -0
  74. package/build/graphics/index.js +2 -0
  75. package/build/graphics/maker/index.d.ts +4 -0
  76. package/build/graphics/maker/index.d.ts.map +1 -0
  77. package/build/graphics/maker/index.js +3 -0
  78. package/build/graphics/maker/maker_base.d.ts +35 -0
  79. package/build/graphics/maker/maker_base.d.ts.map +1 -0
  80. package/build/graphics/maker/maker_base.js +0 -0
  81. package/build/graphics/maker/maker_type.d.ts +10 -0
  82. package/build/graphics/maker/maker_type.d.ts.map +1 -0
  83. package/build/graphics/maker/maker_type.js +10 -0
  84. package/build/graphics/maker/sch_maker.d.ts +5 -0
  85. package/build/graphics/maker/sch_maker.d.ts.map +1 -0
  86. package/build/graphics/maker/sch_maker.js +0 -0
  87. package/build/graphics/sch_erc_item.d.ts +28 -0
  88. package/build/graphics/sch_erc_item.d.ts.map +1 -0
  89. package/build/graphics/sch_erc_item.js +0 -0
  90. package/build/index.d.ts +6 -0
  91. package/build/index.d.ts.map +1 -0
  92. package/build/index.js +5 -0
  93. package/build/report/erc_report.d.ts +16 -0
  94. package/build/report/erc_report.d.ts.map +1 -0
  95. package/build/report/erc_report.js +16 -0
  96. package/build/report/erc_reporter.d.ts +88 -0
  97. package/build/report/erc_reporter.d.ts.map +1 -0
  98. package/build/report/erc_reporter.js +87 -0
  99. package/build/report/index.d.ts +3 -0
  100. package/build/report/index.d.ts.map +1 -0
  101. package/build/report/index.js +2 -0
  102. package/build/rule_check_item/erc_item.d.ts +4 -0
  103. package/build/rule_check_item/erc_item.d.ts.map +1 -0
  104. package/build/rule_check_item/erc_item.js +0 -0
  105. package/build/rule_check_item/index.d.ts +3 -0
  106. package/build/rule_check_item/index.d.ts.map +1 -0
  107. package/build/rule_check_item/index.js +2 -0
  108. package/build/rule_check_item/rc_item.d.ts +33 -0
  109. package/build/rule_check_item/rc_item.d.ts.map +1 -0
  110. package/build/rule_check_item/rc_item.js +0 -0
  111. package/build/tester/erc_tester.d.ts +18 -0
  112. package/build/tester/erc_tester.d.ts.map +1 -0
  113. package/build/tester/erc_tester.js +66 -0
  114. package/build/tester/graph/connection_graphs_builder.d.ts +22 -0
  115. package/build/tester/graph/connection_graphs_builder.d.ts.map +1 -0
  116. package/build/tester/graph/connection_graphs_builder.js +187 -0
  117. package/build/tester/graph/graph_erc.d.ts +16 -0
  118. package/build/tester/graph/graph_erc.d.ts.map +1 -0
  119. package/build/tester/graph/graph_erc.js +63 -0
  120. package/build/tester/graph/index.d.ts +4 -0
  121. package/build/tester/graph/index.d.ts.map +1 -0
  122. package/build/tester/graph/index.js +3 -0
  123. package/build/tester/graph/ir_graph_converter.d.ts +30 -0
  124. package/build/tester/graph/ir_graph_converter.d.ts.map +1 -0
  125. package/build/tester/graph/ir_graph_converter.js +279 -0
  126. package/build/tester/index.d.ts +3 -0
  127. package/build/tester/index.d.ts.map +1 -0
  128. package/build/tester/index.js +2 -0
  129. package/build/tsconfig.build.tsbuildinfo +1 -0
  130. package/build/utils/get_dependent_modules_definition.d.ts +4 -0
  131. package/build/utils/get_dependent_modules_definition.d.ts.map +1 -0
  132. package/build/utils/get_dependent_modules_definition.js +145 -0
  133. package/build/utils/index.d.ts +2 -0
  134. package/build/utils/index.d.ts.map +1 -0
  135. package/build/utils/index.js +1 -0
  136. package/package.json +39 -0
@@ -0,0 +1,112 @@
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ };
8
+ return function (d, b) {
9
+ if (typeof b !== "function" && b !== null)
10
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
+ extendStatics(d, b);
12
+ function __() { this.constructor = d; }
13
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
+ };
15
+ })();
16
+ var __values = (this && this.__values) || function(o) {
17
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
18
+ if (m) return m.call(o);
19
+ if (o && typeof o.length === "number") return {
20
+ next: function () {
21
+ if (o && i >= o.length) o = void 0;
22
+ return { value: o && o[i++], done: !o };
23
+ }
24
+ };
25
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
26
+ };
27
+ var __read = (this && this.__read) || function (o, n) {
28
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
29
+ if (!m) return o;
30
+ var i = m.call(o), r, ar = [], e;
31
+ try {
32
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
33
+ }
34
+ catch (error) { e = { error: error }; }
35
+ finally {
36
+ try {
37
+ if (r && !r.done && (m = i["return"])) m.call(i);
38
+ }
39
+ finally { if (e) throw e.error; }
40
+ }
41
+ return ar;
42
+ };
43
+ import { LABEL_ASSOCIATED } from '@modular-circuit/electronics-model';
44
+ var LinkTesterBase = /** @class */ (function () {
45
+ function LinkTesterBase(ctx, ports) {
46
+ this.ctx = ctx;
47
+ this.ports = ports;
48
+ }
49
+ LinkTesterBase.prototype.test = function () {
50
+ if (!this.init_link())
51
+ return;
52
+ this.check_parameter_propagation();
53
+ };
54
+ Object.defineProperty(LinkTesterBase.prototype, "all_port_ids", {
55
+ get: function () {
56
+ var _this = this;
57
+ if (!this._all_port_ids)
58
+ this._all_port_ids = this.ports.map(function (v) { return _this.ctx.port_id.get(v); });
59
+ return this._all_port_ids;
60
+ },
61
+ enumerable: false,
62
+ configurable: true
63
+ });
64
+ return LinkTesterBase;
65
+ }());
66
+ export { LinkTesterBase };
67
+ var CompositePortLinkTesterBase = /** @class */ (function (_super) {
68
+ __extends(CompositePortLinkTesterBase, _super);
69
+ function CompositePortLinkTesterBase() {
70
+ return _super !== null && _super.apply(this, arguments) || this;
71
+ }
72
+ CompositePortLinkTesterBase.prototype.test = function () {
73
+ var e_1, _a;
74
+ try {
75
+ for (var _b = __values(this.ports), _c = _b.next(); !_c.done; _c = _b.next()) {
76
+ var port = _c.value;
77
+ this.annot_composite_port(port, this.ctx.port_id.get(port));
78
+ }
79
+ }
80
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
81
+ finally {
82
+ try {
83
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
84
+ }
85
+ finally { if (e_1) throw e_1.error; }
86
+ }
87
+ _super.prototype.test.call(this);
88
+ };
89
+ CompositePortLinkTesterBase.prototype.annot_composite_port = function (port, uuid) {
90
+ var e_2, _a;
91
+ try {
92
+ for (var _b = __values(Object.entries(port)), _c = _b.next(); !_c.done; _c = _b.next()) {
93
+ var _d = __read(_c.value, 2), k = _d[0], v = _d[1];
94
+ if (k === LABEL_ASSOCIATED && typeof v === 'string') {
95
+ this.ctx.port_id.set(port, v);
96
+ }
97
+ else if (typeof v === 'object' && !Array.isArray(v) && v !== null) {
98
+ this.annot_composite_port(v, uuid);
99
+ }
100
+ }
101
+ }
102
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
103
+ finally {
104
+ try {
105
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
106
+ }
107
+ finally { if (e_2) throw e_2.error; }
108
+ }
109
+ };
110
+ return CompositePortLinkTesterBase;
111
+ }(LinkTesterBase));
112
+ export { CompositePortLinkTesterBase };
@@ -0,0 +1,247 @@
1
+ import { CompositePortLinkTesterBase, LinkTesterBase } from './link_tester_base';
2
+ import type { AnalogLink, CanDiffLink, CanLogicLink, CrystalLink, DigitalLink, Dvp8Link, GroundLink, I2cLink, I2sLink, SpeakerLink, SpiLink, SwdLink, TouchLink, UartLink, UsbCcLink, UsbLink, VoltageLink } from '@modular-circuit/electronics-model';
3
+ /**
4
+ self.assign(self.sink_impedance, 1 / (1 / self.sinks.map_extract(lambda x: x.impedance)).sum())
5
+ self.require(self.source.impedance.upper() <= self.sink_impedance.lower() * 0.1) # about 10x for signal integrity
6
+ self.assign(self.current_drawn, self.sinks.sum(lambda x: x.current_draw))
7
+
8
+ self.assign(self.voltage_limits, self.sinks.intersection(lambda x: x.voltage_limits))
9
+ self.require(self.voltage_limits.contains(self.voltage), "incompatible voltage levels")
10
+ self.assign(self.signal_limits, self.sinks.intersection(lambda x: x.signal_limits))
11
+ self.require(self.voltage.contains(self.signal), "signal levels not contained within voltage")
12
+ self.require(self.signal_limits.contains(self.signal), "incompatible signal levels")
13
+ self.assign(self.current_limits, self.source.current_limits)
14
+ self.require(self.current_limits.contains(self.current_drawn), "overcurrent")
15
+ */
16
+ export declare class AnalogLinkTester extends LinkTesterBase<AnalogLink> {
17
+ protected init_link(): boolean;
18
+ check_parameter_propagation(): void;
19
+ }
20
+ /**
21
+
22
+ voltage_hull = self.bidirs.hull(lambda x: x.voltage_out)
23
+ voltage_hull = self.sources.any_connected().then_else(
24
+ voltage_hull.hull(self.sources.hull(lambda x: x.voltage_out)),
25
+ voltage_hull
26
+ )
27
+ self.assign(self.voltage, voltage_hull)
28
+
29
+ self.assign(self.voltage_limits,
30
+ self.sinks.intersection(lambda x: x.voltage_limits).intersect(self.bidirs.intersection(lambda x: x.voltage_limits))
31
+ )
32
+ self.require(self.voltage_limits.contains(self.voltage), "overvoltage")
33
+
34
+ self.assign(self.current_drawn,
35
+ self.sinks.sum(lambda x: x.current_draw) + self.bidirs.sum(lambda x: x.current_draw)
36
+ )
37
+ self.assign(self.current_limits,
38
+ self.sources.intersection(lambda x: x.current_limits)
39
+ .intersect(self.bidirs.intersection(lambda x: x.current_limits)))
40
+ self.require(self.current_limits.contains(self.current_drawn), "overcurrent")
41
+
42
+ self.assign(self.output_thresholds,
43
+ self.sources.intersection(lambda x: x.output_thresholds)
44
+ .intersect(self.bidirs.intersection(lambda x: x.output_thresholds),))
45
+ self.assign(self.input_thresholds,
46
+ self.sinks.hull(lambda x: x.input_thresholds).hull(self.bidirs.hull(lambda x: x.input_thresholds)),
47
+ )
48
+ self.require(self.output_thresholds.contains(self.input_thresholds), "incompatible digital thresholds")
49
+
50
+ self.require(self.sources.any_connected() | (self.bidirs.length() > 0),
51
+ "requires connected source or bidir")
52
+
53
+ # ensure both digital levels can be driven (but pull-up or -down only connections are allowed)
54
+ self.assign(self.pullup_capable,
55
+ self.sources.any(lambda x: x.pullup_capable) |
56
+ self.sinks.any(lambda x: x.pullup_capable) |
57
+ self.bidirs.any(lambda x: x.pullup_capable))
58
+ self.assign(self.pulldown_capable,
59
+ self.sources.any(lambda x: x.pulldown_capable) |
60
+ self.sinks.any(lambda x: x.pulldown_capable) |
61
+ self.bidirs.any(lambda x: x.pulldown_capable))
62
+ self.assign(self._has_low_signal_driver, # assumed bidirs are true directional drivers
63
+ self.bidirs.any_connected() | self.sources.any(lambda x: x.low_driver))
64
+ self.assign(self._has_high_signal_driver,
65
+ self.bidirs.any_connected() | self.sources.any(lambda x: x.high_driver))
66
+
67
+ is_bridged_internal = (self.sources.any(lambda x: x._bridged_internal) |
68
+ self.sinks.any(lambda x: x._bridged_internal) |
69
+ self.bidirs.any(lambda x: x._bridged_internal))
70
+ self.require(is_bridged_internal |
71
+ self._has_high_signal_driver.implies(self._has_low_signal_driver | self.pulldown_capable), "requires low driver or pulldown")
72
+ self.require(is_bridged_internal |
73
+ self._has_low_signal_driver.implies(self._has_high_signal_driver | self.pullup_capable), "requires high driver or pullup")
74
+
75
+ # when multiple sources, ensure they all drive only one signal direction (eg, open drain)
76
+ self.require((self.sources.count(lambda x: x.high_driver) > 1).implies(~self.sources.any(lambda x: x.low_driver)) &
77
+ (self.sources.count(lambda x: x.low_driver) > 1).implies(~self.sources.any(lambda x: x.high_driver)),
78
+ "conflicting source drivers")
79
+
80
+
81
+ */
82
+ export declare class DigitalLinkTester extends LinkTesterBase<DigitalLink> {
83
+ protected init_link(): boolean;
84
+ check_parameter_propagation(): void;
85
+ }
86
+ /**
87
+ self.assign(self.voltage, self.source.voltage_out)
88
+ self.assign(self.voltage_limits, self.sinks.intersection(lambda x: x.voltage_limits))
89
+ self.require(self.voltage_limits.contains(self.voltage), "overvoltage")
90
+ self.assign(self.current_limits, self.source.current_limits)
91
+
92
+ self.assign(self.current_drawn, self.sinks.sum(lambda x: x.current_draw))
93
+ self.require(self.current_limits.contains(self.current_drawn), "overcurrent")
94
+ */
95
+ export declare class VoltageLinkTester extends LinkTesterBase<VoltageLink> {
96
+ protected check_parameter_propagation(): void;
97
+ protected init_link(): boolean;
98
+ }
99
+ export declare class GroundLinkTester extends LinkTesterBase<GroundLink> {
100
+ protected check_parameter_propagation(): void;
101
+ protected init_link(): boolean;
102
+ }
103
+ /**
104
+ self.txd = self.connect(self.controller.txd, self.transceiver.txd, self.passive.map_extract(lambda port: port.txd),
105
+ flatten=True)
106
+ self.rxd = self.connect(self.controller.rxd, self.transceiver.rxd, self.passive.map_extract(lambda port: port.rxd),
107
+ flatten=True)
108
+ */
109
+ export declare class CanLogicLinkTester extends CompositePortLinkTesterBase<CanLogicLink> {
110
+ protected check_parameter_propagation(): void;
111
+ protected init_link(): boolean;
112
+ }
113
+ /**
114
+ self.canh = self.connect(self.nodes.map_extract(lambda node: node.canh),
115
+ flatten=True)
116
+ self.canl = self.connect(self.nodes.map_extract(lambda node: node.canl),
117
+ flatten=True)
118
+ */
119
+ export declare class CanDiffLinkTester extends CompositePortLinkTesterBase<CanDiffLink> {
120
+ protected check_parameter_propagation(): void;
121
+ protected init_link(): boolean;
122
+ }
123
+ /**
124
+ self.require(self.driver.frequency_limits.contains(self.frequency))
125
+
126
+ self.xi = self.connect(self.driver.xtal_in, self.crystal.xtal_in)
127
+ self.xo = self.connect(self.driver.xtal_out, self.crystal.xtal_out)
128
+ */
129
+ export declare class CrystalLinkTester extends CompositePortLinkTesterBase<CrystalLink> {
130
+ protected check_parameter_propagation(): void;
131
+ protected init_link(): boolean;
132
+ }
133
+ /**
134
+ self.swdio = self.connect(self.host.swdio, self.device.swdio, self.pull.map_extract(lambda port: port.swdio),
135
+ flatten=True)
136
+ self.swclk = self.connect(self.host.swclk, self.device.swclk, self.pull.map_extract(lambda port: port.swclk),
137
+ flatten=True)
138
+ */
139
+ export declare class SwdLinkTester extends CompositePortLinkTesterBase<SwdLink> {
140
+ protected check_parameter_propagation(): void;
141
+ protected init_link(): boolean;
142
+ }
143
+ /**
144
+ self.require(self.pull.any_connected() | self.controller.has_pullup)
145
+ self.require(self.pull.length() <= 1, "at most one pullup")
146
+ self.require(self.addresses.all_unique(), "conflicting addresses on I2C bus")
147
+ self.scl = self.connect(self.pull.map_extract(lambda device: device.scl),
148
+ self.controller.scl, self.targets.map_extract(lambda device: device.scl),
149
+ flatten=True)
150
+ self.sda = self.connect(self.pull.map_extract(lambda device: device.sda),
151
+ self.controller.sda, self.targets.map_extract(lambda device: device.sda),
152
+ flatten=True)
153
+ */
154
+ export declare class I2cLinkTester extends CompositePortLinkTesterBase<I2cLink> {
155
+ protected check_parameter_propagation(): void;
156
+ protected init_link(): boolean;
157
+ }
158
+ /**
159
+ self.sck = self.connect(self.controller.sck, self.target_receiver.sck)
160
+ self.ws = self.connect(self.controller.ws, self.target_receiver.ws)
161
+ self.sd = self.connect(self.controller.sd, self.target_receiver.sd)
162
+
163
+ */
164
+ export declare class I2sLinkTester extends CompositePortLinkTesterBase<I2sLink> {
165
+ protected check_parameter_propagation(): void;
166
+ protected init_link(): boolean;
167
+ }
168
+ /**
169
+ self.sck = self.connect(self.controller.sck, self.peripherals.map_extract(lambda device: device.sck),
170
+ flatten=True)
171
+ self.miso = self.connect(self.controller.miso, self.peripherals.map_extract(lambda device: device.miso),
172
+ flatten=True)
173
+ self.mosi = self.connect(self.controller.mosi, self.peripherals.map_extract(lambda device: device.mosi),
174
+ flatten=True)
175
+
176
+ */
177
+ export declare class SpiLinkTester extends CompositePortLinkTesterBase<SpiLink> {
178
+ protected check_parameter_propagation(): void;
179
+ protected init_link(): boolean;
180
+ }
181
+ /**
182
+ self.a = self.connect(self.source.a, self.sink.a)
183
+ self.b = self.connect(self.source.b, self.sink.b)
184
+ */
185
+ export declare class SpeakerLinkTester extends CompositePortLinkTesterBase<SpeakerLink> {
186
+ protected check_parameter_propagation(): void;
187
+ protected init_link(): boolean;
188
+ }
189
+ /**
190
+ self.driver = self.Port(TouchDriver())
191
+ self.pad = self.Port(TouchPadPort())
192
+ */
193
+ export declare class TouchLinkTester extends LinkTesterBase<TouchLink> {
194
+ protected init_link(): boolean;
195
+ protected check_parameter_propagation(): void;
196
+ }
197
+ /**
198
+ self.a_tx = self.connect(self.a.tx, self.b.rx)
199
+ self.b_tx = self.connect(self.b.tx, self.a.rx)
200
+
201
+ */
202
+ export declare class UartLinkTester extends CompositePortLinkTesterBase<UartLink> {
203
+ protected check_parameter_propagation(): void;
204
+ protected init_link(): boolean;
205
+ }
206
+ /**
207
+
208
+ self.d_P = self.connect(self.host.dp, self.device.dp, self.passive.map_extract(lambda port: port.dp),
209
+ flatten=True)
210
+ self.d_N = self.connect(self.host.dm, self.device.dm, self.passive.map_extract(lambda port: port.dm),
211
+ flatten=True)
212
+ */
213
+ export declare class UsbLinkTester extends CompositePortLinkTesterBase<UsbLink> {
214
+ protected check_parameter_propagation(): void;
215
+ protected init_link(): boolean;
216
+ }
217
+ /**
218
+ self.cc1 = self.Port(DigitalBidir(pullup_capable=pullup_capable))
219
+ self.cc2 = self.Port(DigitalBidir(pullup_capable=pullup_capable))
220
+
221
+ */
222
+ export declare class UsbCcLinkTester extends CompositePortLinkTesterBase<UsbCcLink> {
223
+ protected check_parameter_propagation(): void;
224
+ protected init_link(): boolean;
225
+ }
226
+ /**
227
+
228
+ self.xclk = self.connect(self.host.xclk, self.cam.xclk)
229
+ self.pclk = self.connect(self.host.pclk, self.cam.pclk)
230
+ self.href = self.connect(self.host.href, self.cam.href)
231
+ self.vsync = self.connect(self.host.vsync, self.cam.vsync)
232
+
233
+ self.y0 = self.connect(self.host.y0, self.cam.y0)
234
+ self.y1 = self.connect(self.host.y1, self.cam.y1)
235
+ self.y2 = self.connect(self.host.y2, self.cam.y2)
236
+ self.y3 = self.connect(self.host.y3, self.cam.y3)
237
+ self.y4 = self.connect(self.host.y4, self.cam.y4)
238
+ self.y5 = self.connect(self.host.y5, self.cam.y5)
239
+ self.y6 = self.connect(self.host.y6, self.cam.y6)
240
+ self.y7 = self.connect(self.host.y7, self.cam.y7)
241
+
242
+ */
243
+ export declare class Dvp8LinkTester extends CompositePortLinkTesterBase<Dvp8Link> {
244
+ protected check_parameter_propagation(): void;
245
+ protected init_link(): boolean;
246
+ }
247
+ //# sourceMappingURL=tester_impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tester_impl.d.ts","sourceRoot":"","sources":["../../../../src/erc/parameter_propagation/link_testers/tester_impl.ts"],"names":[],"mappings":"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"}