diff --git a/index.html b/index.html index 3e54765..2a9e621 100644 --- a/index.html +++ b/index.html @@ -94,6 +94,7 @@
+

Introduction

+

About Me

+ +
+ +
+

Undocumented Hardware = Bad

+

(But so easy to do!)

+

Talk Outline

+

Motivation

+

About LiteX and lxsocdoc

+

LiteX Primitives

+

Aside: Python Docstrings

+

New Register Definition

+
self.bitbang = CSRStorage(4, fields=[
+	CSRField("mosi", description="Output value for MOSI pin, valid whenever ``dir`` is ``0``."),
+	CSRField("clk", description="Output value for SPI CLK pin."),
+	CSRField("cs_n", description="Output value for SPI CSn pin."),
+	CSRField("dir", description="Sets the direction for *ALL* SPI data pins except CLK and CSn.", values=[
+		("0", "OUT", "SPI pins are all output"),
+		("1", "IN", "SPI pins are all input"),
+	])
+], description="""
+	Bitbang controls for SPI output.  Only standard 1x SPI is supported, and as
+	a result all four wires are ganged together.  This means that it is only possible
+	to perform half-duplex operations, using this SPI core.
+""")
+

Refactored SPI Bitbang

+
If(self.bitbang.fields.dir,
+	dq.oe.eq(0)
+).Else(
+	dq.oe.eq(1)
+),
+# CPOL=0/CPHA=0 or CPOL=1/CPHA=1 only.
+If(self.bitbang.fields.clk,
+	self.miso.status.eq(dq.i[1])
+),
+dq.o.eq(
+	Cat(self.bitbang.fields.mosi, Replicate(1, spi_width-1))
+)
+

Generating a Manual

+

More Documentation: ModuleDoc

- ---ModuleDoc---
+

Protocol Documentation

+ +
+ +
+

SVD: Documentation for Machines

+

SVD2Rust: Generating Safe Accessors

+

Renode: Fancy Register Logging

- lxsocdoc - intro to litex/migen - concept of mixins - concept of documentation sections - what the output can look like - what's coming in the future - documenting interrupts - introspecting classes - other approaches - how you can help - why this helps you - - Benefits: - * Generating reference manuals - * SVD - * SVD2Rust