1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
#import "@preview/unify:0.8.1": add-unit
// All units for the specification should be specified here
#add-unit("ppm", "ppm", "upright(\"ppm\")")
#add-unit("ppb", "ppb", "upright(\"ppb\")")
#add-unit("inch", "\"", "upright(\"\\\"\")", space: false)
#add-unit("micro inch", "u\"", "upright(mu \"\\\"\")", space: false)
#add-unit("digital voltage", "VD", "upright(\"VD\")")
#add-unit("volt peak-to-peak", "Vpp", "V_\"pp\"")
#add-unit("milli volt peak-to-peak", "mVpp", "\"mV\"_\"pp\"")
#add-unit("micro volt peak-to-peak", "uVpp", "mu V_\"pp\"")
#add-unit("dBc", "dBc", "upright(\"dBc\")") // decibels relative to the carrier
#add-unit("rack unit", "U", "upright(U)", space: false)
#add-unit("ounce", "oz", "upright(\"oz\")")
#add-unit("american wire gauge", "AWG", "upright(\"AWG\")")
#add-unit("volt AC", "VAC", "V_\"AC\"")
#add-unit("volt DC", "VDC", "V_\"DC\"")
#add-unit("uVrms", "uVrms", "mu V_\"rms\"")
#add-unit("decade", "dec", "upright(\"dec\")")
#add-unit("shertz", "sHz", "sqrt(upright(\"Hz\"))")
#set document(
title: [SAME Analog Modular Ecosystem],
author: "Denis Chevalier",
description: [SAME Analog Modular Ecosystem Specification],
keywords: (),
date: auto,
)
#set page(
paper: "a4",
header: context {
if counter(page).get().first() > 1 {
grid(
columns: (1fr, 1fr),
align(left, text(8pt)[SAME Analog Modular Ecosystem]), align(right, text(8pt)[CC BY-SA 4.0 - CERN-OHL-S-2.0+]),
)
}
},
footer: context {
let pg = counter(page).get().first()
if pg > 1 {
v(4pt)
grid(
columns: (1fr, 1fr, 1fr),
align(left, text(8pt)[© 2026 Denis Chevalier]),
align(center, text(8pt)[Page #pg]),
align(right, text(8pt)[Draft]),
)
}
},
)
#set heading(numbering: "1.")
#show heading.where(depth: 1): body => {
pagebreak(weak: true)
body
}
#set par(
justify: true,
)
#show table.cell.where(y: 0): strong
// Title page
#title()
/ SPDX-FileCopyrightText: 2026 Denis Chevalier \<perso\@denischevalier.fr>
/ SPDX-License-Identifier: CC-BY-SA-4.0
/ SPDX-License-Identifier: CERN-OHL-S-2.0+
The text, figures, tables, and mathematical content of this specification are
licensed under CC BY-SA 4.0. If a later version of CC BY-SA is published, the
author grants permission to distribute this work under that later version as
well.
Hardware designs contained herein (schematics, PCB layouts, mechanical
drawings) are licensed under CERN-OHL-S-2.0+.
// Toc
#outline(
title: [Table of Contents],
indent: auto,
)
#outline(
title: [List of Tables],
target: figure.where(kind: table),
)
#outline(
title: [List of Figures],
target: figure.where(kind: image),
)
#outline(
title: [List of Listings],
target: figure.where(kind: raw),
)
#include "introduction.typ"
#include "electrical-specifications.typ"
#include "mechanical-specifications.typ"
#include "module-design.typ"
= Compliance verification <compliance-verification>
== Foundational invariants <foundational-invariants>
=== The time invariant <the-time-invariant>
= Reference implementation <reference-implementation>
== Chassis <reference-implementation-chassis>
= Theory of operation <theory-of-operation>
= Applications <applications>
|