mkk_ has left #skywater-pdk [#skywater-pdk]
mkk_ has joined #skywater-pdk
lkcl has quit [Ping timeout: 240 seconds]
lkcl has joined #skywater-pdk
lkcl has quit [Ping timeout: 260 seconds]
lkcl has joined #skywater-pdk
_whitelogger has joined #skywater-pdk
<mkk_> [Kunal Ghosh, skywater-pdk] @Channel Here's the beauty of 8-week-VSD internships. You can not only learn a scripting language, you can also implement a basic power analysis engine. Meet Charu Gupta, who, just like every VSD intern, learnt Python scripting from a VLSI application point of view. She also documented the whole demo to help other VLSI freshers/engineers and professionals on how to get started in Python scripting. *All o
<mkk_> Just FYI - *Scripting is a MUST TO HAVE skill in VLSI industry*
mkk_ has left #skywater-pdk [#skywater-pdk]
mkk_ has joined #skywater-pdk
lkcl has quit [*.net *.split]
mkk_ has quit [*.net *.split]
mkk_ has joined #skywater-pdk
lkcl has joined #skywater-pdk
mkk_ has left #skywater-pdk [#skywater-pdk]
mkk_ has joined #skywater-pdk
<lkcl> Kunal: the entire Libre-SOC design is in python, and the coriolis2 layout P&R is also a hybrid of c++ and python. entirely parametric automated P&R down to GDS-II files
<lkcl> i would say that proper and full Software Engineering training is a must-have in the VLSI industry.
<lkcl> i was quite alarmed to learn that test-driven development (systematic and comprehensive unit tests at every level of the design) are not industry-standard practice.
<lkcl> many SoCs are developed first then top-level systems-only-level tested *after* all components are 100% completed.
<mkk_> [Dan Ravensloft, skywater-pdk] lkcl: I should point out that on Slack your name appears as "realname, http://irc.freenode.net"
<mkk_> [Dan Ravensloft, skywater-pdk] Anyway, formal verification can help with that kind of thing
<lkcl> Dan: wonderful :)
<lkcl> it does...
<lkcl> however again if it's only being applied at the top-level it doesn't help you find bugs in individual modules that you may not know you've gotten right/wrong
<lkcl> we use formal correctness proofs *as* both low-level module unit tests, and upwards
<lkcl> a formal correctness proof of bpermd for example:
<lkcl> https://git.libre-soc.org/?p=soc.git;a=blob;f=src/soc/fu/logical/formal/proof_bpermd.py;hb=HEAD
<lkcl> then a full pipeline formal correctness proof
<lkcl> https://git.libre-soc.org/?p=soc.git;a=blob;f=src/soc/fu/logical/formal/proof_main_stage.py;hb=HEAD
<lkcl> oh and then some "ordinary" unit tests on the pipeline
<lkcl> https://git.libre-soc.org/?p=soc.git;a=blob;f=src/soc/fu/logical/test/test_pipe_caller.py;hb=HEAD
<lkcl> *and* some more unit tests on the bpermd module (same directory)
<lkcl> then those pipeline unit tests are run from *two more levels up*