Skip to content

Commit

Permalink
Add ECP5 PLL post to tutorials
Browse files Browse the repository at this point in the history
  • Loading branch information
WillGreen committed Jan 30, 2025
1 parent 76aa299 commit 1fcdce7
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions tutorials/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
FPGA Graphics Learn graphics at the hardware level and improve your FPGA design skills.
Beginning FPGA Graphics - video signals and basic graphics Racing the Beam - simple demo effects with minimal logic FPGA Pong - recreate the classic arcade on an FPGA Display Signals - revisit display signals and meet colour palettes Hardware Sprites - fast, colourful graphics for games Framebuffers - bitmap graphics featuring Michelangelo&rsquo;s David Lines and Triangles - drawing lines and triangles 2D Shapes - filled shapes and simple pictures Animated Shapes - animation and double-buffering RISC-V Assembler Get comfortable with RISC-V assembler."><meta name=author content="Will Green"><link rel="preload stylesheet" as=style href=https://projectf.io/main.min.css><link rel=preload as=image href=https://projectf.io/theme.png><link rel=preload as=image href=https://projectf.io/rss.svg><script defer src=https://projectf.io/highlight.min.js onload=hljs.initHighlightingOnLoad()></script><link rel=icon href=https://projectf.io/favicon.ico><link rel=apple-touch-icon href=https://projectf.io/apple-touch-icon.png><meta name=generator content="Hugo 0.128.2"><script src=https://cdn-eu.usefathom.com/script.js data-site=EVCGKVDN defer></script><meta itemprop=name content="FPGA & RISC-V Tutorials"><meta itemprop=description content="Tutorials to get you started and improve your design skills. See also Recommended FPGA sites.
FPGA Graphics Learn graphics at the hardware level and improve your FPGA design skills.
Beginning FPGA Graphics - video signals and basic graphics Racing the Beam - simple demo effects with minimal logic FPGA Pong - recreate the classic arcade on an FPGA Display Signals - revisit display signals and meet colour palettes Hardware Sprites - fast, colourful graphics for games Framebuffers - bitmap graphics featuring Michelangelo’s David Lines and Triangles - drawing lines and triangles 2D Shapes - filled shapes and simple pictures Animated Shapes - animation and double-buffering RISC-V Assembler Get comfortable with RISC-V assembler."><meta itemprop=wordCount content="429"><meta property="og:url" content="https://projectf.io/tutorials/"><meta property="og:site_name" content="Project F"><meta property="og:title" content="FPGA & RISC-V Tutorials"><meta property="og:description" content="Tutorials to get you started and improve your design skills. See also Recommended FPGA sites.
Beginning FPGA Graphics - video signals and basic graphics Racing the Beam - simple demo effects with minimal logic FPGA Pong - recreate the classic arcade on an FPGA Display Signals - revisit display signals and meet colour palettes Hardware Sprites - fast, colourful graphics for games Framebuffers - bitmap graphics featuring Michelangelo’s David Lines and Triangles - drawing lines and triangles 2D Shapes - filled shapes and simple pictures Animated Shapes - animation and double-buffering RISC-V Assembler Get comfortable with RISC-V assembler."><meta itemprop=wordCount content="428"><meta property="og:url" content="https://projectf.io/tutorials/"><meta property="og:site_name" content="Project F"><meta property="og:title" content="FPGA & RISC-V Tutorials"><meta property="og:description" content="Tutorials to get you started and improve your design skills. See also Recommended FPGA sites.
FPGA Graphics Learn graphics at the hardware level and improve your FPGA design skills.
Beginning FPGA Graphics - video signals and basic graphics Racing the Beam - simple demo effects with minimal logic FPGA Pong - recreate the classic arcade on an FPGA Display Signals - revisit display signals and meet colour palettes Hardware Sprites - fast, colourful graphics for games Framebuffers - bitmap graphics featuring Michelangelo’s David Lines and Triangles - drawing lines and triangles 2D Shapes - filled shapes and simple pictures Animated Shapes - animation and double-buffering RISC-V Assembler Get comfortable with RISC-V assembler."><meta property="og:locale" content="en_gb"><meta property="og:type" content="article"><meta name=twitter:card content="summary"><meta name=twitter:title content="FPGA & RISC-V Tutorials"><meta name=twitter:description content="Tutorials to get you started and improve your design skills. See also Recommended FPGA sites.
FPGA Graphics Learn graphics at the hardware level and improve your FPGA design skills.
Beginning FPGA Graphics - video signals and basic graphics Racing the Beam - simple demo effects with minimal logic FPGA Pong - recreate the classic arcade on an FPGA Display Signals - revisit display signals and meet colour palettes Hardware Sprites - fast, colourful graphics for games Framebuffers - bitmap graphics featuring Michelangelo’s David Lines and Triangles - drawing lines and triangles 2D Shapes - filled shapes and simple pictures Animated Shapes - animation and double-buffering RISC-V Assembler Get comfortable with RISC-V assembler."><link rel=canonical href=https://projectf.io/tutorials/></head><body class="text-black duration-200 ease-out dark:text-white"><header class="mx-auto flex h-[4.5rem] max-w-4xl px-8 lg:justify-center"><div class="relative z-50 mr-auto flex items-center"><a class="-translate-x-[1px] -translate-y-[1px] text-2xl font-semibold" href=https://projectf.io/>Project F</a><div class="btn-dark text-[0] ml-4 h-6 w-6 shrink-0 cursor-pointer [background:url(./theme.png)_left_center/_auto_theme('spacing.6')_no-repeat] [transition:_background-position_0.4s_steps(5)] dark:[background-position:right]" role=button aria-label=Dark></div></div><div class="btn-menu relative z-50 -mr-8 flex h-[4.5rem] w-[5rem] shrink-0 cursor-pointer flex-col items-center justify-center gap-2.5 lg:hidden" role=button aria-label=Menu></div><script>const htmlClass=document.documentElement.classList;setTimeout(()=>{htmlClass.remove("not-ready")},10);const btnMenu=document.querySelector(".btn-menu");btnMenu.addEventListener("click",()=>{htmlClass.toggle("open")});const metaTheme=document.querySelector('meta[name="theme-color"]'),lightBg="#fff".replace(/"/g,""),setDark=e=>{metaTheme.setAttribute("content",e?"#000":lightBg),htmlClass[e?"add":"remove"]("dark"),localStorage.setItem("dark",e)},darkScheme=window.matchMedia("(prefers-color-scheme: dark)");if(htmlClass.contains("dark"))setDark(!0);else{const e=localStorage.getItem("dark");setDark(e?e==="true":darkScheme.matches)}darkScheme.addEventListener("change",e=>{setDark(e.matches)});const btnDark=document.querySelector(".btn-dark");btnDark.addEventListener("click",()=>{setDark(localStorage.getItem("dark")!=="true")})</script><div class="nav-wrapper fixed inset-x-0 top-full z-40 flex h-full select-none flex-col justify-center pb-16 duration-200 dark:bg-black lg:static lg:h-auto lg:flex-row lg:!bg-transparent lg:pb-0 lg:transition-none"><nav class="lg:ml-12 lg:flex lg:flex-row lg:items-center lg:space-x-6"><a class="block text-center text-2xl leading-[5rem] lg:text-base lg:font-normal" href=/about/>About</a>
<a class="block text-center text-2xl leading-[5rem] lg:text-base lg:font-normal" href=/demos/>Demos</a>
<a class="block text-center text-2xl leading-[5rem] lg:text-base lg:font-normal" href=/verilog-lib/>Lib</a>
<a class="block text-center text-2xl leading-[5rem] lg:text-base lg:font-normal" href=/tools/>Tools</a>
<a class="block text-center text-2xl leading-[5rem] lg:text-base lg:font-normal" href=/tutorials/>Tutorials</a></nav><nav class="mt-12 flex justify-center space-x-10 dark:invert lg:ml-12 lg:mt-0 lg:items-center lg:space-x-6"><a class="h-8 w-8 text-[0] [background:var(--url)_center_center/cover_no-repeat] lg:h-6 lg:w-6" style=--url:url(./rss.svg) href=https://projectf.io/index.xml target=_blank rel=alternate>rss</a></nav></div></header><main class="prose prose-neutral relative mx-auto min-h-[calc(100%-9rem)] max-w-4xl px-8 pb-4 pt-4 dark:prose-invert"><article><header class=mb-4><h1 class="!my-0 pb-2.5">FPGA & RISC-V Tutorials</h1></header><section><p>Tutorials to get you started and improve your design skills. See also <strong><a href=/recommended-fpga-sites>Recommended FPGA sites</a></strong>.</p><p><img src=/img/posts/fpga-shapes/banner.png alt title="Rainbow graphic from 2D shapes tutorial."></p><h2 id=fpga-graphics>FPGA Graphics</h2><p>Learn graphics at the hardware level and improve your FPGA design skills.</p><ul><li><a href=/posts/fpga-graphics/>Beginning FPGA Graphics</a> - video signals and basic graphics</li><li><a href=/posts/racing-the-beam/>Racing the Beam</a> - simple demo effects with minimal logic</li><li><a href=/posts/fpga-pong/>FPGA Pong</a> - recreate the classic arcade on an FPGA</li><li><a href=/posts/display-signals/>Display Signals</a> - revisit display signals and meet colour palettes</li><li><a href=/posts/hardware-sprites/>Hardware Sprites</a> - fast, colourful graphics for games</li><li><a href=/posts/framebuffers/>Framebuffers</a> - bitmap graphics featuring Michelangelo&rsquo;s David</li><li><a href=/posts/lines-and-triangles/>Lines and Triangles</a> - drawing lines and triangles</li><li><a href=/posts/fpga-shapes/>2D Shapes</a> - filled shapes and simple pictures</li><li><a href=/posts/animated-shapes/>Animated Shapes</a> - animation and double-buffering</li></ul><h2 id=risc-v-assembler>RISC-V Assembler</h2><p>Get comfortable with RISC-V assembler.</p><ul><li><a href=/posts/riscv-arithmetic/>Arithmetic</a> - load immediate (li, lui), addition (add, addi), and subtraction (sub)</li><li><a href=/posts/riscv-logical/>Logical</a> - bitwise logical instructions, such as and, not, and xori</li><li><a href=/posts/riscv-shift/>Shift</a> - shift instructions, such as sll, srl, and srai</li><li><a href=/posts/riscv-load-store/>Load and Store</a> - load and store instructions, such as lw, sw, and lbu</li><li><a href=/posts/riscv-branch-set/>Branch and Set</a> - branch and set instructions, such as beq, bltu, bgez, and slt</li><li><a href=/posts/riscv-jump-function/>Jump and Function</a> - jump instructions: jal and jalr, function calls, and RISC-V ABI</li><li><a href=/posts/riscv-multiply-divide/>Multiply and Divide</a> - multiply and divide instructions, such as mul, mulh, and div</li><li><a href=/posts/riscv-compiler-explorer/>Compiler Explorer</a> - use Compiler Explorer to generate RISC-V assembly code</li><li><a href=/posts/riscv-cheat-sheet/>Assembler Cheat Sheet</a> - 32-bit RISC-V instruction reference, registers, and concepts</li></ul><h2 id=hello-fpga>Hello FPGA</h2><p>An introduction to FPGA development and Verilog with the Digilent Arty or Nexys Video boards.</p><ul><li>Part 1: <a href=/posts/hello-arty-1/>Hello Arty 1</a> & <a href=/posts/hello-nexys-1/>Hello Nexys 1</a></li><li>Part 2: <a href=/posts/hello-arty-2/>Hello Arty 2</a> & <a href=/posts/hello-nexys-2/>Hello Nexys 2</a></li><li>Part 3: <a href=/posts/hello-arty-3/>Hello Arty 3</a></li></ul><h2 id=maths-and-algorithms>Maths and Algorithms</h2><p>Learn about numbers and put maths to work in Verilog algorithms.</p><ul><li><a href=/posts/numbers-in-verilog/>Numbers in Verilog</a> - introduction to numbers in Verilog</li><li><a href=/posts/verilog-vectors-arrays>Vectors and Arrays</a> - working with Verilog vectors and arrays</li><li><a href=/posts/multiplication-fpga-dsps>Multiplication with DSPs</a> - efficient FPGA multiplication</li><li><a href=/posts/fixed-point-numbers-in-verilog/>Fixed-Point Numbers</a> - precision without complexity</li><li><a href=/posts/division-in-verilog>Division in Verilog</a> - divided we stand</li></ul><h2 id=fpga-how-to>FPGA How To</h2><p>Handy recipes for solving FPGA problems. See the <a href=/tools/>Tools</a> page for FPGA dev and testing tools.</p><h3 id=hardware--devices>Hardware & Devices</h3><ul><li><a href=/posts/spram-ice40-fpga/>SPRAM on iCE40 FPGA</a> - use SPRAM with Yosys and compare it with Block RAM</li><li><a href=/posts/fpga-memory-types/>Memory Types</a> - understand FPGA memory types, including BRAM, HBM, SRAM, and DRAM</li><li><a href=/posts/initialize-memory-in-verilog/>Initialize Memory in Verilog</a> - use $readmemh and $readmemb to initialize RAM or ROM</li><li><a href=/posts/video-timings-vga-720p-1080p/>Video Timings: VGA, SVGA, 720p, 1080p</a> - work with standard monitors and TVs</li></ul><h3 id=maths>Maths</h3><p>See the new <strong><a href=/posts/numbers-in-verilog/>Maths Tutorials</a></strong> for topics including vectors, fixed-point numbers, division, and DSPs.</p><ul><li><a href=/posts/fpga-sine-table/>Sine & Cosine</a> - lookup sine and cosine from ROM</li><li><a href=/posts/square-root-in-verilog/>Square Root</a> - calculate square roots for integers and fixed-point</li></ul></section></article></main><footer class="opaco mx-auto flex h-[4.5rem] max-w-4xl items-center px-8 text-[0.9em] opacity-60"><div class=mr-auto><a class=link href=https://projectf.io/>Project F</a>: FPGA and RISC-V. Only hardware makes it possible!
<a class="block text-center text-2xl leading-[5rem] lg:text-base lg:font-normal" href=/tutorials/>Tutorials</a></nav><nav class="mt-12 flex justify-center space-x-10 dark:invert lg:ml-12 lg:mt-0 lg:items-center lg:space-x-6"><a class="h-8 w-8 text-[0] [background:var(--url)_center_center/cover_no-repeat] lg:h-6 lg:w-6" style=--url:url(./rss.svg) href=https://projectf.io/index.xml target=_blank rel=alternate>rss</a></nav></div></header><main class="prose prose-neutral relative mx-auto min-h-[calc(100%-9rem)] max-w-4xl px-8 pb-4 pt-4 dark:prose-invert"><article><header class=mb-4><h1 class="!my-0 pb-2.5">FPGA & RISC-V Tutorials</h1></header><section><p>Tutorials to get you started and improve your design skills. See also <strong><a href=/recommended-fpga-sites>Recommended FPGA sites</a></strong>.</p><p><img src=/img/posts/fpga-shapes/banner.png alt title="Rainbow graphic from 2D shapes tutorial."></p><h2 id=fpga-graphics>FPGA Graphics</h2><p>Learn graphics at the hardware level and improve your FPGA design skills.</p><ul><li><a href=/posts/fpga-graphics/>Beginning FPGA Graphics</a> - video signals and basic graphics</li><li><a href=/posts/racing-the-beam/>Racing the Beam</a> - simple demo effects with minimal logic</li><li><a href=/posts/fpga-pong/>FPGA Pong</a> - recreate the classic arcade on an FPGA</li><li><a href=/posts/display-signals/>Display Signals</a> - revisit display signals and meet colour palettes</li><li><a href=/posts/hardware-sprites/>Hardware Sprites</a> - fast, colourful graphics for games</li><li><a href=/posts/framebuffers/>Framebuffers</a> - bitmap graphics featuring Michelangelo&rsquo;s David</li><li><a href=/posts/lines-and-triangles/>Lines and Triangles</a> - drawing lines and triangles</li><li><a href=/posts/fpga-shapes/>2D Shapes</a> - filled shapes and simple pictures</li><li><a href=/posts/animated-shapes/>Animated Shapes</a> - animation and double-buffering</li></ul><h2 id=risc-v-assembler>RISC-V Assembler</h2><p>Get comfortable with RISC-V assembler.</p><ul><li><a href=/posts/riscv-arithmetic/>Arithmetic</a> - load immediate (li, lui), addition (add, addi), and subtraction (sub)</li><li><a href=/posts/riscv-logical/>Logical</a> - bitwise logical instructions, such as and, not, and xori</li><li><a href=/posts/riscv-shift/>Shift</a> - shift instructions, such as sll, srl, and srai</li><li><a href=/posts/riscv-load-store/>Load and Store</a> - load and store instructions, such as lw, sw, and lbu</li><li><a href=/posts/riscv-branch-set/>Branch and Set</a> - branch and set instructions, such as beq, bltu, bgez, and slt</li><li><a href=/posts/riscv-jump-function/>Jump and Function</a> - jump instructions: jal and jalr, function calls, and RISC-V ABI</li><li><a href=/posts/riscv-multiply-divide/>Multiply and Divide</a> - multiply and divide instructions, such as mul, mulh, and div</li><li><a href=/posts/riscv-compiler-explorer/>Compiler Explorer</a> - use Compiler Explorer to generate RISC-V assembly code</li><li><a href=/posts/riscv-cheat-sheet/>Assembler Cheat Sheet</a> - 32-bit RISC-V instruction reference, registers, and concepts</li></ul><h2 id=hello-fpga>Hello FPGA</h2><p>An introduction to FPGA development and Verilog with the Digilent Arty or Nexys Video boards.</p><ul><li>Part 1: <a href=/posts/hello-arty-1/>Hello Arty 1</a> & <a href=/posts/hello-nexys-1/>Hello Nexys 1</a></li><li>Part 2: <a href=/posts/hello-arty-2/>Hello Arty 2</a> & <a href=/posts/hello-nexys-2/>Hello Nexys 2</a></li><li>Part 3: <a href=/posts/hello-arty-3/>Hello Arty 3</a></li></ul><h2 id=maths-and-algorithms>Maths and Algorithms</h2><p>Learn about numbers and put maths to work in Verilog algorithms in this tutorial series:</p><ul><li><a href=/posts/numbers-in-verilog/>Numbers in Verilog</a> - introduction to numbers in Verilog</li><li><a href=/posts/verilog-vectors-arrays>Vectors and Arrays</a> - working with Verilog vectors and arrays</li><li><a href=/posts/multiplication-fpga-dsps>Multiplication with DSPs</a> - efficient FPGA multiplication</li><li><a href=/posts/fixed-point-numbers-in-verilog/>Fixed-Point Numbers</a> - precision without complexity</li><li><a href=/posts/division-in-verilog>Division in Verilog</a> - divided we stand</li></ul><p>Handy recipes for FPGA maths:</p><ul><li><a href=/posts/fpga-sine-table/>Sine & Cosine</a> - lookup sine and cosine from ROM</li><li><a href=/posts/square-root-in-verilog/>Square Root</a> - calculate square roots for integers and fixed-point</li></ul><h2 id=hardware--devices>Hardware & Devices</h2><p>Handy recipes for working with memory, clocks, and external hardware.</p><ul><li><a href=/posts/ecp5-fpga-clock/>ECP5 FPGA Clock Generation</a> - use the ECP5 PLL to generate custom clock frequencies</li><li><a href=/posts/spram-ice40-fpga/>SPRAM on iCE40 FPGA</a> - use SPRAM with Yosys and compare it with Block RAM</li><li><a href=/posts/fpga-memory-types/>Memory Types</a> - understand FPGA memory types, including BRAM, HBM, SRAM, and DRAM</li><li><a href=/posts/initialize-memory-in-verilog/>Initialize Memory in Verilog</a> - use $readmemh and $readmemb to initialize RAM or ROM</li><li><a href=/posts/video-timings-vga-720p-1080p/>Video Timings: VGA, SVGA, 720p, 1080p</a> - work with standard monitors and TVs</li></ul></section></article></main><footer class="opaco mx-auto flex h-[4.5rem] max-w-4xl items-center px-8 text-[0.9em] opacity-60"><div class=mr-auto><a class=link href=https://projectf.io/>Project F</a>: FPGA and RISC-V. Only hardware makes it possible!
&copy; 2025 Will Green.</div></footer></body></html>

0 comments on commit 1fcdce7

Please sign in to comment.