verilator/docs/CONTRIBUTORS

132 lines
2.0 KiB
Plaintext
Raw Normal View History

2019-06-11 00:29:58 +00:00
The contributors listed below have certified their Verilator contributions
2020-04-20 23:54:07 +00:00
under the Developer Certificate of Origin (https://developercertificate.org/).
2019-06-11 00:29:58 +00:00
2020-04-20 23:38:21 +00:00
Please see the Verilator manual for 200+ additional contributors. Thanks to all.
2019-06-11 00:29:58 +00:00
Adrien Le Masle
2019-10-10 10:46:03 +00:00
Ahmed El-Mahmoudy
Alex Chadwick
Àlex Torregrosa
Aliaksei Chapyzhenka
Ameya Vikram Singh
2021-02-21 13:22:52 +00:00
Andreas Kuster
Arkadiusz Kozdra
2019-10-10 10:46:03 +00:00
Chris Randall
Chuxuan Wang
Conor McCullough
2020-05-06 23:16:41 +00:00
Dan Petrisko
Daniel Bates
2020-05-29 01:35:38 +00:00
David Horton
David Metz
2020-04-03 21:59:19 +00:00
David Stanford
David Turner
Drew Ranck
Drew Taussig
2019-12-06 23:49:54 +00:00
Driss Hafdi
Edgar E. Iglesias
2019-10-07 21:31:33 +00:00
Eric Rippey
2020-07-01 21:32:15 +00:00
Fan Shupei
Felix Yan
Garrett Smith
Geza Lore
Gianfranco Costamagna
2020-05-26 23:12:19 +00:00
Glen Gibb
Graham Rushton
Guokai Chen
Gustav Svensk
Harald Heckmann
Howard Su
Huang Rui
Huanghuang Zhou
HungMingWu
HyungKi Jeong
Iru Cai
Ivan Vnučec
2019-10-10 10:46:03 +00:00
Iztok Jeras
James Hanlon
2020-05-25 14:54:09 +00:00
James Hutchinson
James Pallister
Jamey Hicks
Jamie Iles
Jan Van Winkel
Jean Berniolles
Jeremy Bennett
2019-06-11 00:29:58 +00:00
John Coiner
John Demme
2021-05-08 12:18:08 +00:00
Jonathan Drolet
2020-07-15 21:58:59 +00:00
Josh Redford
Julie Schwartz
2019-12-04 00:12:18 +00:00
Julien Margetts
Kaleb Barrett
Kamil Rakoczy
2019-06-11 00:29:58 +00:00
Kanad Kanhere
Keith Colbert
2019-10-10 10:46:03 +00:00
Kevin Kiningham
Krzysztof Bieganski
Kuba Ober
Larry Doolittle
Ludwig Rogiers
Lukasz Dalek
2019-07-26 16:57:42 +00:00
Maarten De Braekeleer
2020-04-03 22:06:24 +00:00
Maciej Sobkowski
Marco Widmer
Mariusz Glebocki
Markus Krause
Marlon James
2020-07-14 10:33:04 +00:00
Marshal Qiao
Martin Schmidt
Martin Stadler
Matthew Ballance
2020-05-31 13:03:51 +00:00
Michael Killough
Michaël Lefebvre
2019-10-10 10:46:03 +00:00
Mike Popoloski
Miodrag Milanović
Morten Borup Petersen
Mostafa Gamal
Nandu Raj
Nathan Kohagen
Nathan Myers
2019-10-07 21:31:33 +00:00
Patrick Stewart
Paul Wright
Timing support (#3363) Adds timing support to Verilator. It makes it possible to use delays, event controls within processes (not just at the start), wait statements, and forks. Building a design with those constructs requires a compiler that supports C++20 coroutines (GCC 10, Clang 5). The basic idea is to have processes and tasks with delays/event controls implemented as C++20 coroutines. This allows us to suspend and resume them at any time. There are five main runtime classes responsible for managing suspended coroutines: * `VlCoroutineHandle`, a wrapper over C++20's `std::coroutine_handle` with move semantics and automatic cleanup. * `VlDelayScheduler`, for coroutines suspended by delays. It resumes them at a proper simulation time. * `VlTriggerScheduler`, for coroutines suspended by event controls. It resumes them if its corresponding trigger was set. * `VlForkSync`, used for syncing `fork..join` and `fork..join_any` blocks. * `VlCoroutine`, the return type of all verilated coroutines. It allows for suspending a stack of coroutines (normally, C++ coroutines are stackless). There is a new visitor in `V3Timing.cpp` which: * scales delays according to the timescale, * simplifies intra-assignment timing controls and net delays into regular timing controls and assignments, * simplifies wait statements into loops with event controls, * marks processes and tasks with timing controls in them as suspendable, * creates delay, trigger scheduler, and fork sync variables, * transforms timing controls and fork joins into C++ awaits There are new functions in `V3SchedTiming.cpp` (used by `V3Sched.cpp`) that integrate static scheduling with timing. This involves providing external domains for variables, so that the necessary combinational logic gets triggered after coroutine resumption, as well as statements that need to be injected into the design eval function to perform this resumption at the correct time. There is also a function that transforms forked processes into separate functions. See the comments in `verilated_timing.h`, `verilated_timing.cpp`, `V3Timing.cpp`, and `V3SchedTiming.cpp`, as well as the internals documentation for more details. Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2022-08-22 12:26:32 +00:00
Pawel Sagan
2020-04-30 11:20:31 +00:00
Peter Horvath
Peter Monsson
Philipp Wagner
Pierre-Henri Horrein
2020-01-15 12:32:45 +00:00
Pieter Kapsenberg
Piotr Binkowski
Qingyao Sun
2020-10-08 11:54:01 +00:00
Rafal Kapuscik
Raynard Qiao
2019-06-12 01:38:17 +00:00
Richard Myers
Rupert Swarbrick
Ryszard Rozak
Samuel Riedel
Sean Cross
2020-04-03 21:59:19 +00:00
Sebastien Van Cauwenberghe
2020-05-25 13:16:40 +00:00
Sergi Granell
2019-06-11 00:29:58 +00:00
Stefan Wallentowitz
Stephen Henry
Steven Hugg
Teng Huang
Tim Snyder
Tobias Rosenkranz
Tobias Wölfel
2019-09-30 13:33:17 +00:00
Todd Strader
2020-05-29 01:35:38 +00:00
Tomasz Gorochowik
2020-05-25 17:36:24 +00:00
Tymoteusz Blazejczyk
Udi Finkelstein
Unai Martinez-Corral
Vassilis Papaefstathiou
2020-04-04 22:02:23 +00:00
Veripool API Bot
Victor Besyakov
William D. Jones
2019-06-11 00:29:58 +00:00
Wilson Snyder
Xi Zhang
Yoda Lee
2020-05-10 18:27:22 +00:00
Yossi Nivin
Yuri Victorovich
Yutetsu TAKATSUKASA
2019-10-02 22:47:06 +00:00
Yves Mathieu
Zhanglei Wang