[libre-riscv-dev] formal verification

Hendrik Boom hendrik at topoi.pooq.com
Wed Feb 27 14:46:03 GMT 2019


On Wed, Feb 27, 2019 at 01:49:52PM +0000, Luke Kenneth Casson Leighton wrote:
> On Wed, Feb 27, 2019 at 11:48 AM Hendrik Boom <hendrik at topoi.pooq.com> wrote:
> 
> > I've been wondering whether to voluntee here, because
> >
> > * I don't have any hardware experience
> 
>  it's python.  this was very deliberate so that software people stand
> a chance of understanding.  the main thing to remember is, m.d.comb
> means "it gets calculated straight away" and m.d.sync means "it gets
> assigned on the next clock cycle".
> 
> > * I haven't done any work in formal verification recently (but I was
> >   developing a type-theory verifier three decades ago)
> > * I probably haven't the time to do it,
> 
>  :)
> 
> >   * let alone time to get up-to-date on proofs about hardware
> > * And even if I succeed, waiting for me would delay the project
> >   significantly
> 
>  unit tests can always be added which mitigate a definitive need for
> formal proofs.... i'd still like them to be added / available, however
> there's no critical dependence.
> 
> > * And I do't know if the tools I can use are compatible with the tools
> >   you use
> >
> > but ...
> >
> > would it be helpful if I were to look into formal verification of any
> > of this RISC-V architecture under development?
> 
>  sure!
> 
> > And what do I need to get familiar with any of it?  (links to documents
> > and software, please)
> 
>  ok so.. it *might* be as simple as writing a 20-line verilog script,
> using riscv-formal as the test suite.
> 
>  https://github.com/SymbioticEDA/riscv-formal
>  https://www.semiwiki.com/forum/content/7850-verifying-risc-v-1-page-code-e.html
> 
>  i really am not sure of the difference between "formal verification"
> and "running the riscv-isa-tests" to confirm compliance.  perhaps they
> are considered to be the same, i really don't know.


Formal verification means to produce a machine-checked mathematical 
proof of correctness.

It's not trivial to do.

But I'll start looking at what you've linked me to in order to 
familiarise myself with it.

-- hendrik

> 
>  if you can take a look that alone would be really helpful.
> 
> l.
> 
> _______________________________________________
> libre-riscv-dev mailing list
> libre-riscv-dev at lists.libre-riscv.org
> http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev



More information about the libre-riscv-dev mailing list