~/talk

Behavioral Modeling in HW/SW Co-design Using C++ Coroutines

links:none on file
links:none on file
slides:none on file

Two methodologies drive the work: Register Hooking (preprocessor-backed hook registers that overload assign and cast to trigger side effects) and using C++20 coroutines with the concurrent_cpp library to express parallel hardware behavior as time-sliced awaitables. The team implements lockless coroutine queues, shows how tests co_await done bits, validates functional correctness against specs, and demonstrates hardware-in-the-loop substitution. Code and examples live on the linked GitHub and the approach reduces synchronization complexity while proving practical for pre‑silicon software development.

AI-written summary · about

  1. 0:00Introduction
  2. 1:12Problem statement and shift left
  3. 3:17Behavioral modeling requirements
  4. 5:28Complexity with C++ coroutines
  5. 7:15Coroutines implementation
  6. 11:30Coroutines vs threads
  7. 18:34Waiting for multiple conditions
  8. 21:43State machines for hardware
  9. 22:47Generators for hardware simulation
  10. 25:55Coroutines for queues
  11. 30:11Register hooking
  12. 34:52Integrating C code
  13. 38:25Starting models and reset
  14. 40:29Testing models with assertions
  15. 43:01Hardware-in-the-loop testing
  16. 44:50Benefits and takeaways
  17. 48:41Q&A
  18. 50:26Q&A: Queue sync and mutexes
  19. 51:33Q&A: Thread pool for coroutines
  20. 53:05Q&A: Timing accuracy
  21. 54:10Q&A: Machine-generated hardware
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.