aboutsummaryrefslogtreecommitdiff
path: root/preamble.typ
blob: b285afc5638355859124851b436a46d43e3c2c69 (plain)
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
124
125
126
127
128
129
130
131
132
133
134
#import "lib/unify.typ": 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(\"inch\")", 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\"))")
#add-unit("mil", "mil", "upright(\"mil\")")

#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+ -- GPLv3.0 or later]),
      )
    }
  },

  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+
/ SPDX-License-Identifier: GPL-3.0-or-later

The prose, explanatory text, rendered 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, and CAD models) are licensed under CERN-OHL-S-2.0+.

All executable code, helper libraries (`lib/*`), metrology assertions, and
embedded verification scripts throughout the source documents are licensed
under the GNU General Public License v3.0 or later (GPL-3.0-or-later).

// 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>

=== Interface modules <reference-implementation-interface-modules>

= Theory of operation <theory-of-operation>

= Applications <applications>