FPGA Front Runner: FPGA Verification Strategies
Tue 24 Sep 2024 9:45 AM - 2:30 PM
Rolls Royce Control Systems Solihull, B377YP
Description
FPGA Verification Strategies Agenda and Details
Time |
Speaker |
Details |
09.30 |
Arrival and Registration |
|
10.00 |
Dave Sanders, Rolls-Royce |
Overview of Rolls Royce @ Solihull Presentation Title - Rolls-Royce… the past, the present and the future Abstract - Rolls-Royce has come a long way since its inception as a car manufacturer at the start of the twentieth century, for starters it doesn’t make cars anymore! This talk will provide an insight into Rolls-Royce’s past present and future with a focus on the pivotal role that electronics now plays in a company traditionally known for its mechanical engineering solutions. |
10.30 |
Espen Tallaksen, EmLogic |
Presentation Title – Modern VHDL testbenches – An AXI-stream example, first dead simple, then advanced Abstract – Do you want to see how easily you can verify your FPGA or ASIC? Join in to see this exemplified with a testbench for an AXI-stream based data flow design – using UVVM, which is currently used by more than one third of all European FPGA designers. Most testbenches verifying a complex DUT are relatively unstructured and difficult to understand, modify, extend, maintain and reuse. You can often easily reduce the verification time by at least a factor of two by having a well structured and easy to understand test harness, and writing commands at a higher abstraction level – allowing a good and complete testcase overview by just looking at a simple test sequencer with easy to understand high-level commands. This presentation will first show how interface handling procedures (BFMs) can be applied in a very simple way to verify a DUT. Then we will show how a more advanced testbench using verification components, models, scoreboards and high-level transactions will allow more thorough verification of more complex DUT scenarios in a very structured and simple way. |
11.00 |
Jim Lewis, SynthWorks Design Inc |
Presentation Title – Why Should Our Team be Using VHDL + OSVVM for Verification? Abstract – Developing and deploying a verification methodology can be costly and time consuming. Going without one will be even more costly due to bugs escaping into production hardware systems. Open Source VHDL Verification Methodology (OSVVM) provides the VHDL community with an already developed, open-source solution. OSVVM implements all of the capabilities of a modern verification methodology: transaction-based testing, a verification framework, verification components, self-checking tests, messaging handling, error tracking, requirements tracking, constrained random testing, scoreboards, functional coverage, co simulation with software, test automation, and a comprehensive set of test reports. This presentation examines how these capabilities will benefit your projects. SystemVerilog+UVM also provides a similar set of capabilities. Unfortunately, SV+UVM ended up absurdly complex to use – instead of using a module (entity/architecture in VHDL) with its built-in concurrency, SV+UVM uses OO, sequential code, and fork and join (to get concurrency). As a result, SV has failed to unify the design and verification communities. VHDL+OSVVM on the other hand uses entity/architectures to create verification components and libraries of subprograms (procedures and functions) to extend VHDL into a complete verification language. In doing this, OSVVM creates verification capabilities that rival SystemVerilog+UVM while at the same time it uses VHDL language elements that are familiar to VHDL design engineers. As a result, with VHDL+OSVVM and a good verification lead, any VHDL engineer can do verification as well as RTL design. |
11.30 |
Refreshment break |
|
12.00 |
Philipp Wagner, FOSSi Foundation |
Presentation Title – cocotb is making verification fun! Abstract – cocotb lets you verify chips like software: productive, simulator-agnostic, in Python. In this talk, you’ll learn what cocotb is and how using Python for verification can make your next verification job more productive. There’s even something in there for those of you who already know cocotb: a look at cocotb 2.0 and tips and tricks how to update your testbenches to make best use of the new features. |
12.30 |
Christian Tchilikov, semify GmbH |
Presentation Title – Utilizing the Cocotb Python Framework for Efficient Functional Verification Abstract – Cocotb is a framework that allows for verification test cases written in Python to interact with DUTs being simulated in common simulation tools. Compared to classical approaches for verification, Cocotb has very low upfront engineering costs. With access to the full functionality of the Python programming language, the complexity of testbenches can scale up as required. Cocotb comes with built-in functionalities for many of the tasks required of a modern testbench, like constrained random input generation, coverage tracking, and assertions. Cocotb’s foundation being the Python language means that software models of the design can be written in a high-level Object-Oriented language. Additionally, higher-level objects such as drivers or monitors can be designed for the bit-wiggling of DUT input signals, providing a higher level of abstraction, similar to UVM sequences. The software model can then be easily scoreboarded with the DUT through Cocotb. Additionally, Cocotb provides high-level abstractions for interfacing with the simulated design. This comes in the form of hierarchical signal reading and assignment, event triggers, and parallel execution of coroutines similar to SystemVerilog’s forks. Leveraging these tools, it becomes simple to launch verification modules like drivers and monitors, running and interfacing with the DUT in parallel. Third-party verification IP modules for many standard interfaces are available via the cocotb extensions packages hosted on PyPi, so devices using SPI or AXI, amongst others, can be verified with minimal effort. In addition, engineers can write and reuse their own verification IP, such as bus monitors, drivers, etc, similar to the UVM approach of verification. A special emphasis is on using cocotb alongside an open-source toolchain like Icarus Verilog, acheiving a similar quality of results compared to commercial offerings. This combination of tools provides features that are otherwise hidden behind expensive licence paywalls, and makes digital verification accessible to a wider audience. Cocotb serves as a great alternative to traditional SystemVerilog Object-Oriented verification by working around the limitations of the simulators that do not support the full feature set of SystemVerilog by providing similar functionality in the Python language instead. |
13.00 |
Dave Amor, Ultra Maritime |
Presentation Title – Integration of Atlassian Bamboo with MathWorks Tools for FPGA Development Abstract – In safety critical FPGA development, the need for efficiency, reliability, and predictability while maintaining agility is vital. Ultra Maritime has embraced these demands by integrating Continuous Integration (CI) practices with MathWorks tools and Agile methodologies, creating a streamlined and robust development process that ensures high-quality outcomes in mission-critical applications. This presentation will explore the strategies and technologies we use to achieve consistent, and resilient FPGA development, focusing on how these practices contribute to the success of our projects. Atlassian Bamboo allows us to automate testing, code generation, and the bitstream creation processes. This integration ensures that every change in our FPGA designs can be automatically validated through rigorous testing, significantly reducing the risk of errors and accelerating the development lifecycle. By automating these processes, a higher standard of code quality is possible while freeing up our engineers to focus on innovation and problem-solving. This presentation will touch on the adoption of Agile Scrum practices within our FPGA development teams. Agile Scrum provides a flexible framework that allows us to adapt to changing requirements, prioritise tasks effectively, and deliver incremental improvements throughout the project lifecycle. Key ceremonies such as sprint planning, daily stand-ups, and retrospectives are essential to maintaining focus and ensuring continuous improvement. We will discuss how these practices have enhanced our ability to respond to challenges, manage complexity, and maintain alignment across our teams. A crucial aspect of our development process is the integration of Jira with Bamboo and Simulink. This connection enables seamless tracking of tasks, test results, and code changes. Automated reporting of test failures and direct linking to Jira tasks ensure that issues are identified, prioritised and resolved. The presentation will also address the advantages of CI in ensuring resilience against the turnover of key personnel. By standardising workflows and maintaining consistent environments, we reduce the dependency on individual knowledge and ensure that our processes are sustainable. Looking to the future, we will explore potential enhancements to our current setup, by leveraging developments in Large Language Models. Ultra Maritime’s approach to FPGA processes evolving over the last 25 years has created a environment that is effective, adaptable and resilient, ensuring the delivery of high-quality, reliable products. |
13.30 |
Lunch |
|
14.00 |
Tour |
|
14.30 |
Finish refreshments/networking |
NOTE
Please be aware that if you register for both the in-person and virtual events, your physical ticket will be cancelled, preventing access on the event day.
We also maintain a blacklist; individuals who register for the in-person event but fail to attend will be restricted from participating in future events. If you book a physical ticket but cannot attend then please cancel it in advance
Location
Rolls Royce Control Systems Solihull, B377YP