diff --git a/css/theme/teardown-bg-transparent.afdesign b/css/theme/teardown-bg-transparent.afdesign new file mode 100644 index 0000000..0dab767 Binary files /dev/null and b/css/theme/teardown-bg-transparent.afdesign differ diff --git a/css/theme/teardown19.css b/css/theme/teardown19.css index c55f3fe..f55c7e6 100644 --- a/css/theme/teardown19.css +++ b/css/theme/teardown19.css @@ -23,13 +23,14 @@ body { .reveal .footer { position: absolute; bottom: 1em; - right: 2em; + right: 4em; text-align: right; - font-size: 0.5em; + font-size: 0.75em; width: 100%; height: 96px; - /*background-image: url("lca2019-logo.svg");*/ + background-image: url("teardown2019-logo.svg"); background-repeat: no-repeat; + background-position: right; display: flex; justify-content: flex-end; align-items: flex-end; diff --git a/css/theme/teardown2019-logo.afdesign b/css/theme/teardown2019-logo.afdesign new file mode 100644 index 0000000..d68f412 Binary files /dev/null and b/css/theme/teardown2019-logo.afdesign differ diff --git a/css/theme/teardown2019-logo.svg b/css/theme/teardown2019-logo.svg new file mode 100644 index 0000000..f6cbba8 --- /dev/null +++ b/css/theme/teardown2019-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/css/theme/teardown2019-title-bg-transparent.svg b/css/theme/teardown2019-title-bg-transparent.svg new file mode 100644 index 0000000..3ca532d --- /dev/null +++ b/css/theme/teardown2019-title-bg-transparent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/ice40-rgb.jpg b/img/ice40-rgb.jpg new file mode 100644 index 0000000..d5d387c Binary files /dev/null and b/img/ice40-rgb.jpg differ diff --git a/img/xtal-datasheet-icon.jpg b/img/xtal-datasheet-icon.jpg new file mode 100644 index 0000000..7f03f9a Binary files /dev/null and b/img/xtal-datasheet-icon.jpg differ diff --git a/index.html b/index.html index 908edfc..38d5b88 100644 --- a/index.html +++ b/index.html @@ -81,8 +81,8 @@
@@ -93,7 +93,7 @@

-
+

Fomu: An FPGA in your USB Port

A whirlwind introduction to Fomu; a workshop in three levels

@@ -348,7 +348,12 @@

-->
-
+
+

Misleading Datasheets

+ Footprint from Crystal +
+ +

What modifications does it have?

  • Shorting out two zero-ohm resistors (R7, PU)
  • @@ -649,7 +654,73 @@ $ wishbone-tool --pid 0x5bf0 0x10000000 Value at 10000000: 12345678 $
+ +
+

Adding Hardware

+ Schematic of RGB block +
+ +
+

Technology Library Reference

+
// Verilog Instantiation
+SB_RGBA_DRV RGBA_DRIVER (
+.CURREN(ENABLE_CURR),
+.RGBLEDEN(ENABLE_RGBDRV),
+.RGB0PWM(RGB0),
+.RGB1PWM(RGB1),
+.RGB2PWM(RGB2),
+.RGB0(LED0),
+.RGB1(LED1),
+.RGB2(LED2)
+);
+defparam RGBA_DRIVER.CURRENT_MODE = "0b0";
+defparam RGBA_DRIVER.RGB0_CURRENT = "0b111111";
+defparam RGBA_DRIVER.RGB1_CURRENT = "0b111111" ;
+defparam RGBA_DRIVER.RGB2_CURRENT = "0b111111";
+

SBTICETechnologyLibrary201504.pdf page 147

+
+
+

RGB Block

+
class FomuRGB(Module, AutoCSR):
+    def __init__(self, pads):
+        self.output = CSRStorage(3)
+        self.specials += Instance("SB_RGBA_DRV",
+            i_CURREN = 0b1,
+            i_RGBLEDEN = 0b1,
+            i_RGB0PWM = self.output.storage[0],
+            i_RGB1PWM = self.output.storage[1],
+            i_RGB2PWM = self.output.storage[2],
+            o_RGB0 = pads.r,
+            o_RGB1 = pads.g,
+            o_RGB2 = pads.b,
+            p_CURRENT_MODE = "0b1",
+            p_RGB0_CURRENT = "0b000011",
+            p_RGB1_CURRENT = "0b000011",
+            p_RGB2_CURRENT = "0b000011",
+        )
+
+
+

Instantiating FomuRGB

+
@@ -55,6 +75,10 @@ class BaseSoC(SoCCore):
+                 with_ctrl=False,
+                 **kwargs)
+
++        # Add the LED driver block
++        led_pads = platform.request("rgb_led")
++        self.submodules.rgb = FomuRGB(led_pads)
++
+         # UP5K has single port RAM....
+         # Use this as CPU RAM.
+         spram_size = 128*1024
+
+ +
+

Interacting with the CSR

+
csr_register,rgb_output,0xe0006800,1,rw
+

From test/csr.csv

+
+

VexRiscv