Re: FPGA using Python language

From: Marko Mäkelä <msmakela_at_gmail.com>
Date: Sun, 21 Feb 2021 19:33:08 +0200
Message-ID: <YDKZVBv5gPb4YuoP_at_jyty>
Sun, Feb 21, 2021 at 10:45:16AM -0600, Luis Rene Vela Garcia wrote:
>People interested in PLDs and their programming, have to understand 
>that one thing is to know about this technology and HDL, and the thing 
>is to go for the process of designing of a digital system and its 
>veritifation.

Nitpicking: "verification" should refer to proving that something works 
correctly under all circumstances. The term "validation" is more 
relaxed, somewhere between "testing" and "verification".

I am curious: How commonly is verification part of the workflow 
nowadays? About 20 years ago, I knew that Intel was heavily investing in 
formal mehods, maybe prompted by the negative publicity from Pentium 
bugs (FDIV giving incorrect results, and incorrect page fault handling 
in LOCK XCMPCHG8B). I was under the impression that with techniques like 
Binary Decision Diagrams it could be feasible to verify hardware 
designs.

When it comes to verifying software designs, I am afraid that there has 
not been that much progress in the past 20 years. Some degree of 
validation is practical, but verification easily suffers from state 
space explosion.  And I have not followed the development, on whether 
there are any automated abstraction techniques. For validation, some 
interesting practical techniques include fuzzing and instrumentation 
(various -fsanitize implemented in Clang and GCC). Best of all, such 
instrumented code can be run inside https://rr-project.org/ so that one 
can replay and debug a failure exactly in the way it happened. (This is 
limited to specific processor types, and tends to be completely blind to 
some classes of race conditions.)

Best regards,

	Marko
Received on 2021-02-21 19:00:02

Archive generated by hypermail 2.3.0.