aboutsummaryrefslogtreecommitdiff
path: root/preamble.typ
blob: a0a4629d743b87668415d5dae0ad20032b3c155f (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
#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>

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

= Theory of operation <theory-of-operation>

= Applications <applications>