191
index.html
Normal file
191
index.html
Normal file
@ -0,0 +1,191 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<title>Fomu: An FPGA in your USB Port</title>
|
||||
|
||||
<meta name="description" content="A framework for easily creating beautiful presentations using HTML">
|
||||
<meta name="author" content="Sean "xobs" Cross">
|
||||
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
|
||||
<link rel="stylesheet" href="css/reveal.css">
|
||||
<link rel="stylesheet" href="css/theme/solarized.css" id="theme">
|
||||
|
||||
<!-- Theme used for syntax highlighting of code -->
|
||||
<link rel="stylesheet" href="lib/css/zenburn.css">
|
||||
|
||||
<!-- Printing and PDF exports -->
|
||||
<script>
|
||||
var link = document.createElement('link');
|
||||
link.rel = 'stylesheet';
|
||||
link.type = 'text/css';
|
||||
link.href = window.location.search.match(/print-pdf/gi) ? 'css/print/pdf.css' : 'css/print/paper.css';
|
||||
document.getElementsByTagName('head')[0].appendChild(link);
|
||||
</script>
|
||||
|
||||
<!--[if lt IE 9]>
|
||||
<script src="lib/js/html5shiv.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<style>
|
||||
/*********************************************
|
||||
* ZOOM REVERSE TRANSITION (i.e. zoom out)
|
||||
*********************************************/
|
||||
.reveal .slides section[data-transition=zoomrev],
|
||||
.reveal.zoomrev .slides section:not([data-transition]) {
|
||||
transition-timing-function: ease;
|
||||
}
|
||||
|
||||
.reveal .slides > section[data-transition=zoomrev].past,
|
||||
.reveal .slides > section[data-transition~=zoomrev-out].past,
|
||||
.reveal.zoomrev .slides > section:not([data-transition]).past {
|
||||
visibility: hidden;
|
||||
-webkit-transform: scale(0.2);
|
||||
transform: scale(0.2);
|
||||
}
|
||||
|
||||
.reveal .slides > section[data-transition=zoomrev].future,
|
||||
.reveal .slides > section[data-transition~=zoomrev-in].future,
|
||||
.reveal.zoomrev .slides > section:not([data-transition]).future {
|
||||
visibility: hidden;
|
||||
-webkit-transform: scale(16);
|
||||
transform: scale(16);
|
||||
}
|
||||
|
||||
.reveal .slides > section > section[data-transition=zoomrev].past,
|
||||
.reveal .slides > section > section[data-transition~=zoomrev-out].past,
|
||||
.reveal.zoomrev .slides > section > section:not([data-transition]).past {
|
||||
-webkit-transform: translate(0, 150%);
|
||||
transform: translate(0, 150%);
|
||||
}
|
||||
|
||||
.reveal .slides > section > section[data-transition=zoomrev].future,
|
||||
.reveal .slides > section > section[data-transition~=zoomrev-in].future,
|
||||
.reveal.zoomrev .slides > section > section:not([data-transition]).future {
|
||||
-webkit-transform: translate(0, -150%);
|
||||
transform: translate(0, -150%);
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<!-- Start of main presentation -->
|
||||
<div class="reveal">
|
||||
<div class="footer">
|
||||
<a class="url" href="https://p.xobs.io/td19/">p.xobs.io/td19</a>
|
||||
<span class="theme">Teardown 2019</span><span class="hashtag"> | #teardown2019</span><span class="twitter"> |
|
||||
@teardown</span>
|
||||
</div>
|
||||
<div class="slides">
|
||||
<section>
|
||||
<h2>Fomu: an FPGA in your USB Port</h2>
|
||||
<img src="img/tomu-fomu-case-superwide.jpg">
|
||||
<p>
|
||||
Fomu (with case): an FPGA in your USB port. Crowdfunding now! One week to go. <a href="https://t.xobs.io/fomu">t.xobs.io/fomu</a>
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section data-background-image="css/theme/lca2019-title-bg-transparent.svg">
|
||||
<h1>Fomu: An FPGA in your USB Port</h1>
|
||||
<h4>A whirlwind introduction to Fomu and FPGAs</h4>
|
||||
<p align="right">
|
||||
<small>Sean Cross - <a href="https://xobs.io/">https://xobs.io/</a> - @xobs</small>
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h3>Outline</h3>
|
||||
<ol>
|
||||
<li>What is an FPGA?</li>
|
||||
<li>What is Fomu?</li>
|
||||
<li>What is this PCB?</li>
|
||||
<li>
|
||||
<ul>
|
||||
<li>Modifications made</li>
|
||||
<li>Differences to final PCB</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Levels of Fomu</li>
|
||||
<li>
|
||||
<ol>
|
||||
<li>Python / Interpreted</li>
|
||||
<li>RISC-V</li>
|
||||
<li>Verilog / FPGA</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Loading firmware onto Fomu</li>
|
||||
<li>Blinkenlights</li>
|
||||
</ol>
|
||||
</section>
|
||||
</div>
|
||||
</div> <!-- class="reveal" -->
|
||||
<!-- End of main presentation -->
|
||||
|
||||
<!-- Start of configuration section -->
|
||||
<script src="lib/js/head.min.js"></script>
|
||||
<script src="js/reveal.js"></script>
|
||||
|
||||
<script>
|
||||
var presenter = !!Reveal.getQueryHash().s;
|
||||
|
||||
// More info https://github.com/hakimel/reveal.js#configuration
|
||||
Reveal.initialize({
|
||||
controls: presenter ? false : true,
|
||||
progress: true,
|
||||
history: true,
|
||||
center: true,
|
||||
controlsTutorial: presenter ? false : true,
|
||||
|
||||
slideNumber: presenter ? null : 'c/t',
|
||||
|
||||
// The "normal" size of the presentation, aspect ratio will be preserved
|
||||
// when the presentation is scaled to fit different resolutions. Can be
|
||||
// specified using percentage units.
|
||||
width: 960,
|
||||
height: 700,
|
||||
|
||||
// Factor of the display size that should remain empty around the content
|
||||
margin: 0.1,
|
||||
|
||||
multiplex: {
|
||||
url: 'https://p.xobs.io/',
|
||||
id: 'cbd6556886c2825d',
|
||||
secret: Reveal.getQueryHash().s || null
|
||||
},
|
||||
|
||||
// Bounds for smallest/largest possible scale to apply to content
|
||||
minScale: 0.02,
|
||||
maxScale: 5.5,
|
||||
|
||||
transition: 'slide', // none/fade/slide/convex/concave/zoom
|
||||
|
||||
// More info https://github.com/hakimel/reveal.js#dependencies
|
||||
dependencies: [
|
||||
{ src: 'lib/js/classList.js', condition: function () { return !document.body.classList; } },
|
||||
{ src: 'plugin/markdown/marked.js', condition: function () { return !!document.querySelector('[data-markdown]'); } },
|
||||
{ src: 'plugin/markdown/markdown.js', condition: function () { return !!document.querySelector('[data-markdown]'); } },
|
||||
{ src: 'plugin/highlight/highlight.js', async: true, callback: function () { hljs.initHighlightingOnLoad(); } },
|
||||
{ src: 'plugin/search/search.js', async: true },
|
||||
{ src: 'plugin/zoom-js/zoom.js', async: true },
|
||||
{ src: 'plugin/notes/notes.js', async: true },
|
||||
|
||||
{ src: 'lib/js/socket.io.js', async: true },
|
||||
{
|
||||
src: presenter ?
|
||||
'plugin/multiplex/master.js' :
|
||||
'plugin/multiplex/client.js', async: true
|
||||
},
|
||||
]
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
Reference in New Issue
Block a user