@oe1cxw so, I made a nice and simple CPU today, now I want to formally verify it.
is there some introductory material for SymbiYosys that explains how to verify nontrivial designs?
-
-
Replying to @whitequark
Is it using your own ISA? Do you want to fully verify the CPU against an ISA spec or just some "sanity check" safety properties such as correct handling of pipeline hazards?
2 replies 0 retweets 2 likes -
Replying to @oe1cxw @whitequark
Forgive me if I am butting in or being patronising but +1 what they ^^^ said : what do you want to verify about it? Verification needs a system and a specification.
1 reply 0 retweets 0 likes -
Replying to @ciphernyx @oe1cxw
I want to verify that for any valid sequence of instructions, the observable behavior of CPU (i.e. internal memory writes, and external bus reads/writes) matches what is required by the ISA
1 reply 0 retweets 1 like -
(general-purpose registers, code and data are all in the same BRAM, and PC/flags are observable via instructions, so that should be sufficient)
1 reply 0 retweets 0 likes -
Replying to @whitequark @oe1cxw
If wish my clients were this prompt and direct
Do you have the ISA formalised, if so, what formalism?1 reply 0 retweets 1 like -
Replying to @ciphernyx @oe1cxw
I don't! I've never worked with formal verification of gateware before (ok, I ran a few trivial tests with yosys-smtbmc, but that's it) and I want to learn it. The ISA is really straightforward (https://github.com/whitequark/Glasgow/blob/master/software/glasgow/arch/boneless/__init__.py#L131-L257 …) so I imagine formalizing it can't be *that* hard
2 replies 0 retweets 0 likes -
Replying to @whitequark @ciphernyx
That looks pretty doable. You probably want to use symbiyosys (sby) instead of calling yosys-smtbmc directly. It's a bit more "black boxy" but it really simplifies trying different solvers. (The performance difference can be huge so it definitely pays to try different things.)
1 reply 0 retweets 2 likes -
Replying to @oe1cxw @ciphernyx
so, my main question is: where do I start? do I open https://symbiyosys.readthedocs.io/en/latest/ and read through it? are there better introductory texts?
4 replies 0 retweets 2 likes
Just bits and pieces as of now unfortunately. Readthedocs is one bit. There are also some tutorials on https://zipcpu.com and my latest slides are at http://www.clifford.at/papers/2018/sby-formal/ …. Feedback on what kind of materials would be good for getting people started would be appreciated.
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.