ORConf 2024

Friday to Sunday September 13–15, 2024 in Gothenburg, Sweden

The ORConf conference is a weekend of presentations and networking dedicated to free and open source silicon. It's an event for the open source silicon community, and is run by the FOSSi Foundation and its volunteers.

Our 10th ORConf!

The FOSSi Foundation is proud to announce the 10th installment of ORConf, a conference dedicated to free and open source silicon to be held over the weekend of Friday September 13 to Sunday September 15 in Gothenburg, Sweden.

ORConf is a weekend of presentations and networking for the open source silicon community. Browse through previous installments of ORConf here.

Questions? Ping the organizers via email at orconf@fossi-foundation.org.

Venue | Schedule | Programme

Two different venues will host ORConf this year; The Lindholmen Conference Centre on Friday and Chalmers University main campus in Johanneberg on Saturday and Sunday.

Talk Schedule

Friday, September 13

The venue is the Pascal room at the Chalmers Lindholmen Conferene Centre on the Lindholmen Science Park.

Google maps link | Conference centre room site

Getting there by public transport:

From the city center take any bus going to Lindholmen, e.g. 16 or a boat, e.g. 286 to Lindholmspiren.

If you are coming directly from the airport take the airport buses (Flygbussarna) into the city center, exit at Nils Ericsson Terminalen and switch to another bus from the nearby Nordstan stop.

09:00 - Welcome Coffee - Mingle with a nice coffee in front of venue
10:30 - Opening - FOSSi team
10:40 - Using Clash to enable logically synchronous data centers - Christiaan Baaij (details)
11:00 - The Saturn Vector Unit: Design of a Fully Compliant Open-Source RISC-V Vector Unit - Jerry Zhao
11:20 - VexiiRiscv : A Debian demonstration - Charles Papon (details)
11:40 - FazyRV: A RISC-V Core that Scales to Your Needs - Meinhard Kissich (details)
12:00 - A very small cross compiler for OpenRISC and maybe your homebrew processor - Jörg Mische (details)
12:20 - Lunch Break -
13:00 - Roadmap for Open Source EDA in Europe - Stefan Wallentowitz (details)
13:30 - New open source IP, tools and verification flows for Caliptra 2.0 - Karol Gugala (details)
13:50 - The future of FuseSoC - Olof Kindgren (details)
14:10 - Surfer - An Extensible and Snappy Waveform Viewer - Frans Skarman (details)
14:30 - Coffee Break -
15:00 - naja_edit: An Open Source Tool for Gate-Level Netlist editing and optimization - Christophe Alexandre (details)
15:20 - Development of Certificate Courses and Status Quo of Digital EDA Course using IHP-SG13G2 - Thorsten Knoll / Christian Wittke (details)
15:40 - SoCESS? - Adventures deploying (digital design) Open Source assets into Curriculum - John Goodenough (details)
16:00 - My open source analog microelectronics journey - Matt Venn (details)

Saturday, September 14

The venue is auditorium HA1 at the main Chalmers University of Technology campus in Johanneberg.

Google maps link | Chalmers University map

Getting there by public transport:

From the city center take any tram or bus going to Chalmers, e.g. 6, 7 or 16.

If you are coming directly from the airport take the airport buses (Flygbussarna) to Korsvägen and switch to tram 6 or 8.

09:00 - Open Source Standard Cell Library Design - Antoine Sirianni (details)
09:20 - Project Arrakeen: One API to rule all PDKs - Staf Verhaegen (details)
09:40 - Porting of Proprietary PDK to Digital Open-Source EDA Tools - Tomasz Hemperek (details)
10:00 - DFHDL: The 3-in-1 Abstraction Approach to Hardware Design - Oron Port (details)
10:20 - Coffee Break -
10:50 - cocotb as a way towards a new verification methodology - Marek Cieplucha (details)
11:10 - cocotb Gets A Glow Up: Fixes and Features of 2.0 - Kaleb Barrett (details)
11:30 - Forastero: cocotb testbenches with batteries included - Peter Birch (details)
11:50 - Buckets of Coverage - Stuart Alldred (details)
12:10 - BYOL (Build Your Own Linter) - UVMLint for IEEE-UVM core code development - Ajeetha Kumari Venkatesan (details)
12:30 - Lunch Break -
13:20 - Co-simulation with Renode DPI and SystemC interfaces for architectural exploration and development of SoCs - Piotr Zierhoffer (details)
13:40 - Synthesizing Music Synthesizers - Sebastian Holzapfel (details)
14:00 - Teaching Analog IC Design using Open Source Tools - Ted Johansson (details)
14:20 - Accelerating software development for emerging ISA extensions with cloud-based FPGAs: RVV case study - Marek Pikuła (details)
14:40 - Digital Signal Processing: Modeling with Julia - David Hossack (details)
15:00 - Coffee Break -
15:30 - OSVVM in a NutShell, VHDL’s #1 Verification Methodology - Jim Lewis (details)
15:50 - BenchBot: Automated OSVVM Testbench Template Generator for VHDL DUTs - Adruth Vasudevan Srinivasan / Arya Sharma (details)
16:10 - Debug your Design with a Tiny Interpreter - Christopher Lozinski (details)
16:30 - APyTypes - NumPy for people that care about their bits - Oscar Gustafsson (details)

Social Event & Lightning Talks

We will have a social event on Saturday evening!

The event will start at 18:00 and we can all move there together from the conference venue. After dinner, we will have a round of exciting lightning talks while having drinks and snacks: Everyone is invited to get on stage for 3 minutes to present an exciting project, look for collaborators etc.

Location: Berg211 Google maps link

Getting there by public transport:

From Chalmers, take tram 6, 7 to Bellevue.

Sunday, September 15

On Saturday, we will have an unconference and workshops to have more time to intensify discussions.

The venue is rooms ES51, ES52 and ES53 at the main Chalmers University of Technology campus in Johanneberg.

Google maps link | Chalmers University map

Submit a talk

Presentation submissions are made through the Eventbrite registration interface.

Please be aware that we can only accept lightning talks any more. But you are guaranteed to be able to present during the session of the lightning talks. ::

Sponsors

This year's ORConf is made possible by our very generous sponsors.

Antmicro
Chalmers University of Technology
Mullvad VPNTillitisHRTLowRISCQamcom

Code of conduct

We ask all ORConf participants to adhere to the the FOSSi Foundation code of conduct throughout the event.

Chat

Chat with fellow ORConf attendees in our Matrix chat room at #orconf2024:fossi-foundation.org. Any Matrix client works, or just use the Element web chat.

Contact

Please feel free to reach out to the event organizers via orconf@fossi-foundation.org at any point. Or send a message on the Matrix channel: #orconf2024:fossi-foundation.org.

Talk details

Welcome Coffee

Mingle with a nice coffee in front of venue

Opening

FOSSi team

Using Clash to enable logically synchronous data centers

Christiaan Baaij

The fact that all the computers and switches in a data center are mostly independent and asynchronously operating entities can cause issues. This includes a wide variance in end-to-end latency (“lag spike”), to efficient compute resource usage; and on top of that: all the buffers that are all over the place are consuming a lot of energy. Imagine, however, what would happen if you could treat your entire data center as a synchronous digital circuit: latency becomes deterministic, scheduling applications for efficient resource usage becomes easier, and you can drastically reduce buffer sizes. This is what the Bittide project, https://www.bittide.io/, aims to achieve: to bring ‘logical’ synchrony to data centers. This talk will explain what ‘logical’ synchrony is and how we used Clash, https://clash-lang.org/, to build the hardware support to enable it.

VexiiRiscv : A Debian demonstration

Charles Papon

The VexiiRiscv (Vex2Risc5) project aim at remplacing VexRiscv and extends its scope with features such as multi-issue, hardware prefetcher, 64 bits support, ... This presentation will mainly be a live demonstration of the project running Debian on FPGA, exposing the level of performance achievable on such system including boot, userland, some demos and finaly a few slides.

FazyRV: A RISC-V Core that Scales to Your Needs

Meinhard Kissich

FazyRV is a scalable RISC-V core that can be synthesized into a (1-)bit-serial, 2-, 4-, or 8-bit-serial implementation to fulfill your performance requirements with the least area (resp. resources) demand. FazyRV provides manifold variants to adapt to the target technology by, e.g., avoiding dual-port BRAM at the cost of an additional clock cycle. Contradictory to hand-optimized cores at the gate level, FazyRV tries to avoid manual low-level optimizations to increase readability and simplify adaptations. This talk gives an insight into the open-source FazyRV core and its design objectives. We show how the area demand scales, answer why there is no 16-bit variant, discuss how the performance can be improved, and outline possible extensions to improve the current FazyRV design.

A very small cross compiler for OpenRISC and maybe your homebrew processor

Jörg Mische

PunyCC is a cross compiler for a very small subset of C. Only one source file, no preprocessor, no structs, no floating point and only one datatype that can be used as unsigend int or pointer to char. Due to these simplifications the compiler source code is very small and can easily be adopted to a new target instruction set. So far PunyCC supported 4 architectures: ARM Thumb-2, RISC-V, x86-32 and WebAssembly. It can compile itself and thus provides cross compilers from any of the instruction sets to any other. This talk presents how easy it is to add OpenRISC support to PunyCC. Use it as a blueprint for porting PunyCC to your own special instruction set.

Roadmap for Open Source EDA in Europe

Stefan Wallentowitz

Open source silicon and open source EDA tools have been identified as strategically important for European sovereignty. The GoIT! project and FOSSi Foundation have been tasked with creating a roadmap and recommendations for open source EDA in Europe. In this presentation, we will give an overview about the roadmap and initiate the community feedback period, which is extremely important for the success of the roadmap.

New open source IP, tools and verification flows for Caliptra 2.0

Karol Gugala

CHIPS Alliance’s open source Caliptra Root of Trust Project (a collaboration between AMD, Google, Microsoft and NVIDIA) is heading towards a 2.0 release. This talk will cover recent open source developments resulting from Antmicro’s involvement in the project, expanding on last year’s update at ORConf: a new open source I3C core built for use in future Caliptra integrations, further developments in the RISC-V-based VeeR core including PMP, ePMP and User Mode support, fully open verification of the AXI bus interface with Verilator and axi-vip verification IP and a number of improvements related to coverage visualization, automated documentation and chip aggregation. The talk will also present the SystemRDL integration with Renode speeding up generation of the co-simulation verification environment, as well as Caliptra’s entry in Antmicro’s System Designer which lets you explore the SoC’s structure, RTL and verification artifacts from a block diagram perspective.

The future of FuseSoC

Olof Kindgren

While individual projects like Linux and GCC paved the road for open source software success, it can be argued that the thing that really enabled scaling up development of Linux-based solutions was the idea of package management. Having a common way to install software and describe their relations made it possible to rapidly create custom systems. The same can be said for language-specific package managers like pip for Python or Cargo for Rust. On the chip design side, FuseSoC has been doing the same thing since its inception 2011. It is by now likely the world's most widely used package manager, both for open source projects and for proprietary code. The background of FuseSoC has been presented several times over the years, so this presentation aims to instead look ahead and see what new features that are in store for FuseSoC and its sister project Edalize.

Surfer - An Extensible and Snappy Waveform Viewer

Frans Skarman

Surfer is a new waveform viewer focused on extensibility and a snappy interface. This presentation will briefly show off Surfer, showcase off how an extensible waveform viewer can be used for more effective debugging such as translating types from high level HDLs, visualising the results of waveform analysis, or even as a teaching tool. The presentation will also showcase some recently added features such as transaction visualization, the "Surver" headless interface, and scriptable plugins.

naja_edit: An Open Source Tool for Gate-Level Netlist editing and optimization

Christophe Alexandre

naja_edit is an open source tool designed to optimize and edit gate-level netlists. It features algorithms for Dead Logic Elimination, Constant Propagation, and Primitives Optimization, all performed with minimal changes to the hierarchical netlist structure. This tool can be interleaved with Yosys and OpenROAD, making it particularly useful for large designs requiring hierarchical synthesis. naja_edit also features a Python interface for power users to inspect and edit the netlist using simple scripts. This talk will present optimization results on a set of open source designs.

Development of Certificate Courses and Status Quo of Digital EDA Course using IHP-SG13G2

Thorsten Knoll / Christian Wittke

This talk will present the ongoing effort and progress in creating the OS-EDA course. An overview of the available materials, lectures, and hands-on components will be included. Additionally, we will explain how to participate and use the materials independently. A first test run of the course, planned to be held in-house at IHP, will be announced during this talk at ORConf. The course's overall goal is to help participants understand and use open-source EDA tools to create an open-source tapeout, with IHP as the default target chip factory and the usage of OPENROAD. The course will be available in English, with all materials hosted in a public Git repository under an open-source license. This work is funded by the German Federal Ministry of Education and Research in the Project FMD-QNC (16ME0831).This talk will present the development of certificate courses within the FMD-QNC project, which will be part of an educational platform aimed at training individuals from trainees to academics. The OS-EDA courses under development at IHP target academics and career changers. We will present the progress in creating the digital OS-EDA course, including an overview of the available materials, lectures, and hands-on components. Additionally, we will explain how to participate and use the materials independently. A first test run of the course, planned to be held in-house at IHP, will be announced during this talk at ORConf. The overall goal of the course is to help participants understand and use open-source EDA tools to create an open-source tapeout, with IHP as the default target chip factory and the use of OPENROAD. The course will be available in English, with all materials hosted in a public Git repository under an open-source license. This work is funded by the German Federal Ministry of Education and Research as part of the FMD-QNC project (16ME0831).

SoCESS? - Adventures deploying (digital design) Open Source assets into Curriculum

John Goodenough

The many efforts in the open source community have produced IP and tool assets that can no be deployed at scale into Curriculum. At the University of Sheffield we have begun a multi year curriculum transformation within the school of Electronic and Electrical Engineering. We will outline our plans , discuss delivery constraints and report on experiences to date deploying at moderate cohort scale, this will focus on digital SoC design using Risc-V. The non technical experiences should transfer to other methodology and flow areas. We aim to catalyse the community in thinking more deeply about user needs for in academic teaching and to promote further collaboration and sharing of ideas

My open source analog microelectronics journey

Matt Venn

Analog microelectronics is a crucial but often overlooked part of ASIC design. In this talk I will share my experience getting started with analog microelectronics, and taping out my first few designs. I will cover motivation, tools, my designs, and my success and failures so far. The presentation will end with a discussion on how this fascinating topic fits into the wider picture of open source silicon and the next steps needed to enable radio transmitters and receivers.

Open Source Standard Cell Library Design

Antoine Sirianni

With the avenue of AI as a game changer, what would Open Source Standard Cell Library Design consist in to date? Where to start ? Let's focus on combinatorics to provide with an unexpected contribution.

Project Arrakeen: One API to rule all PDKs

Staf Verhaegen

Project Arrakeen is an umbrella project for providing a python framework for portable and scalable digital and analog circuits. It is based on the PDKMaster base project which provide a uniform API to PDK data and generation of circuit and layouts. On this base project other projects are being built that provide standard cells, IO cells, SRAM compiler and analog blocks. In this talk the state of the Arrakeen project and it's subprojects for the three supported open source PDKs, e.g. Sky130, IHP SG13G2 and GF180MCU will be presented.

Porting of Proprietary PDK to Digital Open-Source EDA Tools

Tomasz Hemperek

Open-source tools for ASIC design are gaining momentum due to their cost-effectiveness, customizability, and reliability. These tools have proven their value through multiple successful designs in recent years. This talk will present our experience in successfully porting a proprietary 110nm Process Design Kit (PDK) to open-source EDA tools such as Yosys and OpenRoad. We will discuss both the successes and challenges encountered during this process, using the prototype Gbit serial data link as a case study.

DFHDL: The 3-in-1 Abstraction Approach to Hardware Design

Oron Port

Join us for a dive into DFHDL (DFiant Hardware Description Language), where we break down a fresh approach to hardware design. This talk introduces a unique three-layer abstraction method that blends Dataflow (DF), Register-Transfer (RT), and Event-Driven (ED) models into one streamlined framework. We’ll explore how DFHDL simplifies and speeds up the logic design processes and our goals to do the same for verification. Expect a straightforward discussion on how each layer of DFHDL works, why it matters, and what it means for the future of hardware design. We’ll share real-life examples and insights that show DFHDL in action. Whether you’re deep into hardware design or just curious about how chips come to life, this talk has something for you. DFHDL is an opensource framework available at https://dfianthdl.github.io/ (WIP)

cocotb as a way towards a new verification methodology

Marek Cieplucha

SystemVerilog and UVM have dominated digital verification, even though they are relatively old technologies with significant limitations. The EDA industry's strategy has been to develop smarter (and more expensive) tools based on these technologies. However, Cocotb offers a different approach. It minimizes the reliance on EDA tools (limited to just simulation) by enabling the vast capabilities of the Python ecosystem. Is this a recipe for success? What challenges does it present? Is there room for both strategies in the future? In this presentation, I will discuss some general considerations, as well as share experiences from successful deployments of the Cocotb flow in industrial projects (which might even be in your pocket right now). Some fancy around-Cocotb ideas developed will be shown: usage of massive parallelism, flow unification with algorithm-level modeling and checkpointing.

cocotb Gets A Glow Up: Fixes and Features of 2.0

Kaleb Barrett

Since it's inception and the minting of 1.0, cocotb has carried with it several design issues that only API-breaking changes could fix. 2024 is the year those issues finally get fixed. cocotb 2.0 includes changes to how tests are parameterized and selected, how tasks are managed, how HDL values are represented in Python, and how simulations are run. Tune in to this talk to learn how to leverage these new features and how to make your code 2.0 compliant.

Forastero: cocotb testbenches with batteries included

Peter Birch

Forastero is a Python library that builds on top of cocotb adding standard components like drivers, monitors, and scoreboards but without bringing the full weight of a UVM environment. While in some ways a spiritual successor to cocotb-bus, Forastero goes further and provides mechanisms for generating complex random stimulus. In this talk I'll present how you can use Forastero to quickly construct a testbench around a DUT, driving and monitoring multiple interfaces, and producing complex stimulus patterns. Forastero is fully open source and comes with both documentation and examples. It can be found on GitHub at github.com/Intuity/forastero

Buckets of Coverage

Stuart Alldred

Bucket is a python-based functional coverage tool designed to work easily with cocotb(/Forastero). It allows for the easy creation of multiple nested covergroups and coverpoints with a straight forward sampling mechanism. Each coverpoint is a cross of one or more axes, with the ability to modify target hits, illegal or ignore status for each bucket. The data to be covered can be sampled directly from the DUT, higher levels of abstraction (such as entire CPU pipelines), or even parsing of logs/test output. Bucket is being actively developed and used by Vypercore for our own IP. It is fully open source and available at github.com/VyperCore/bucket, where you can find further documentation and examples.

BYOL (Build Your Own Linter) - UVMLint for IEEE-UVM core code development

Ajeetha Kumari Venkatesan

UVM is the most adopted design verification methodology in the field of ASIC and FPGA designs. Lint and static checking of code has proven to be very effective in projects that have wide user base, longer lifetime and distributed developers. During the recent UVM IEEE 1800.2-2023 release cycle, an observation was made regarding the potential application of a custom UVMLint solution to lint the UVM Base Class Library (BCL) as it gets developed, updated etc. We at AsFigo have developed custom rules for linting UVM BCL code on top of PySlint, an open-source SystemVerilog testbench linter. We intend to offer this as an opensource lint package to the UVM IEEE committee and to the general audience via GitHub. The eventual goal is to have these rules as gatekeepers via GitHub actions so that any future code addition to the UVM BCL is free from common pitfalls. Based on early brainstorming, below are some of the sample lint rules that are relevant to the UVM BCL codebase: • Avoid race condition around "static const" (use localparam instead) • Avoid one-liner conditional statements: o if (cond) $display ("cond"); o if (cond) .. else $display ("Else cond as single line"); o case..endcase • Avoid one-liner code in loops: o for, repeat, while, do..while, foreach • Use enadlabels for elements such as endclass, endfunction, endtask etc. • Flag non-virtual methods Typical UVMLint rules for a VIP user would be quite different from the requirements of UVM BCL. These rules are tailored for UVM BCL codebase. As an example, a typical UVMLint rule for a VIP would be: • Check that agent is reusable by ensuring that active components are guarded with a conditional check to is_active == UVM_ACTIVE Such a rule is quite useless for UVM BCL as it provides the base class library for tens of thousands of engineers around the globe using this library to build VIPs, verify their IPs, systems etc. In this talk we show how we approach this cusotm UVMLint development with sample Python code, tests and results. A snapshot of UVMLint findings on latest IEEE 1800.2-2023 codebase is below: ** Violation count by Rule-IDs ** DBG_CL_MISSING_ENDLABEL : 286 DBG_METHOD_MISSING_ENDLABEL : 1899 DBG_FN_MISSING_ENDLABEL : 752 DBG_AVOID_ONE_LINER_IF : 73 DBG_AVOID_ONE_LINER_ELSE : 88 RACE_NO_STATIC_CONST : 8 REUSE_NON_VIRTUAL_METHOD : 1407 --- UVMLint Concise Report --- Total number of rules violated: 7

Co-simulation with Renode DPI and SystemC interfaces for architectural exploration and development of SoCs

Piotr Zierhoffer

The Renode simulation framework is being used in a number of projects and open source initiatives developing new ASIC-targeted IPs and SoCs. It lets you mix fast, functional full-system simulation with co-simulated RTL blocks. This talk will show how Renode's DPI interface support allows interfacing SystemVerilog IP simulated with Verilator or other DPI-capable simulators via a range of bus interfaces as well as present the newly-added SystemC TLM support. Renode's co-simulation capabilities together with features like trace-based modeling as well as flexible support of the RISC-V ISA including simple definition of custom instructions, help explore architectural choices, analyze the security and performance of in-development SoCs, develop software pre-silicon, and build rigorous, deterministic test suites which guide teams through the entire development lifecycle of SoCs.

Synthesizing Music Synthesizers

Sebastian Holzapfel

Tiliqua is an open hardware development platform, DSP library and collection of examples (built in Amaranth HDL) that aims to make FPGA-based audio and video synthesis more accessible. The hardware itself is designed to integrate into the Eurorack ecosystem, or can be easily taken apart and used in custom instrument designs. This presentation will go through the Tiliqua hardware design, the RTL framework provided and some of the included example projects. The project is distributed under CERN-OHL-S-V2 and is under active development here: https://github.com/apfelaudio/tiliqua

Teaching Analog IC Design using Open Source Tools

Ted Johansson

EU and USA Chips Act programs have regained the focus on fabrication of semiconductors, new devices, circuit design, and the supply chains. In the next couple of years, huge amounts of money, shared between government and industry, will be spent on rebuilding the semiconductor industry in Europe and USA. However, during the last 25 years, this area has not attracted the students. We need to educate a new generation of engineers and researchers on semiconductors and circuit design. Analog/RF circuit design is usually not very complex, but often requires knowledge of actual device physics and parameters. It also requires many simulation to find good circuit solutions and robust designs. Open-source tools for parts of IC design flows have been available for a long time, but only lately, open process information (process design kits, PDKs) has been made available, which make fully open-source design flows for circuit design and commercial foundry fabrication possible. But how well suited for exploring and teaching the principles of analog/RF IC design are open-source tools and PDKs compared to commercial tools and closed PDKs? And can they be used for prototype chips in research projects? In the presentation, I will describe how we created a PhD course (also suitable for master programs) on analog IC design, addressing the design chain, tools, and everything you need to know to design and have chips fabricated at a foundry using only open-source tools and PDKs. A comparison with the commercial tools currently used in education and industry will also be made.

Accelerating software development for emerging ISA extensions with cloud-based FPGAs: RVV case study

Marek Pikuła

The RISC-V Vector Extension (RVV) promises an enhanced performance and power efficiency across various complex computational tasks. However, the efficient utilization of RVV demands careful consideration of the optimization approach. This article examines strategies for accelerating this process. Key challenges include assessing performance differences among algorithmic approaches and overcoming initial hardware constraints. FireSim provides a comprehensive solution by offering advanced software and hardware simulation capabilities. Utilizing FireSim, we started the process of enhancing source code with RVV instructions (called vectorization) for the pixman project. Our experience outlines the efficacy of a cloud-based FPGA simulation in expediting software development for emerging ISA extensions. Overall, FireSim facilitates faster iteration cycles and informed design decisions, benefiting individual developers and fostering collaboration in remote teams.

Digital Signal Processing: Modeling with Julia

David Hossack

Digital signal processing (DSP) paths are usually simulated at a high level using C or MATLAB/Simulink models to confirm basic functionality and to assess whether signal processing requirements such as frequency response and signal-to-noise ratio are being met. Complex signal processing paths consist of cascades of sigma-delta modulators, filter stages, mixers, modulators, demodulators etc each of which have a corresponding high level model. A very simple framework has been developed in Julia to enable combinations of DSP stages to be evaluated. This talk will discuss the experience of using Julia to combine models written in Julia and C, and designs written in Verilog (using Verilator) in industrial settings over many years. The principles should also be applicable to C++ or Python evaluation environments.

OSVVM in a NutShell, VHDL’s #1 Verification Methodology

Jim Lewis

OSVVM is a suite of libraries designed to streamline your VHDL entire verification process, boosting productivity and reducing development time. Each library provides independent capabilities, allowing selective adoption and a learn-as-you-go approach. Whether using directed or random testing, OSVVM facilitates writing concise and readable test cases for both simple unit/RTL tests and complex, full-chip or system-level FPGA and ASIC tests. OSVVM provides VHDL with verification capabilities that rival SystemVerilog + UVM. These include transaction-level modeling, verification components, co-simulation with software, randomized test generation, self-checking test support, verification data structures, comprehensive test reporting in HTML and text, and synchronization primitives. With OSVVM and a good team lead, any VHDL engineer can do verification – and have fun doing it. OSVVM grew rapidly during the COVID years, giving us better capability, better data structures, better test reporting (HTML and Junit), and scripting that is simple to use (and works with most VHDL simulators). This presentation will show how these advances fit into the overall OSVVM Methodology.

BenchBot: Automated OSVVM Testbench Template Generator for VHDL DUTs

Adruth Vasudevan Srinivasan / Arya Sharma

BenchBot is an open-source Python based app developed to automate the generation of OSVVM-compliant testbenches for VHDL designs. It utilizes YAML configuration files to define testbench parameters, enabling users to quickly produce tailored test environments for their DUTs. Main goal of this bot is to provide a ready-to-use OSVMM compliant testbench for a given VHDL DUT with popular elements such as clock generator, reset generator, main stimulus place holder, a watchdog etc. It also paves way to distributed test development by leveraging on modular testbench architecture using OSVMM framework. In this paper, we share our experience of using BenchBot on various open-source VHDL designs available online for the community, ensuring its reliability and versatility across different use cases. Along the way, we found a few unsupported constructs and added enhancements to the bot. This bot streamlines the process of creating standardized testbenches, making integrating it into existing VHDL development workflows easier.

Debug your Design with a Tiny Interpreter

Christopher Lozinski

Interpreters are very helpful tools for hardware development, but most existing tools require lots of memory, or slow interprocess communication. Best to use a tiny open source interpreter that runs on both the FPGA, and in the simulator, without any interprocess communication. The Mecrisp Ice soft core includes such an interpreter. 2K cross compiled words of memory (4K Bytes) required for the nucleus. On ICE 40 FPGAs, most people use 5K words for the entire system, plus 3K for their own application. Smaller applications are also possible. Using the interpreter for debugging, an 88 word compute kernel was built for loading SPRAM from FLASH. Applications requiring more data memory are also possible.

APyTypes - NumPy for people that care about their bits

Oscar Gustafsson

APyTypes is an array library for Python with highly configurable bit-accurate fixed-point and floating-point data types of arbitrary word length written in C++. Hence, it can be used to easily simulate finite word length effects and to provide reference data for hardware implementations. This talk discuss features of APyTypes, how to work with it, and how it compares against other libraries with a similar purpose.