| Login | | Don't have an account yet? You can create one. As a registered user you have some advantages like theme manager, comments configuration and post comments with your name. | |
| Who's Online | There are currently, 63 guest(s) and 0 member(s) that are online.
You are Anonymous user. You can register for free by clicking here | |
 | |
|
Verification Guild: Forums |
|
| View previous topic :: View next topic |
| Author |
Message |
fredinashed Junior


Joined: Oct 19, 2009 Posts: 9
|
Posted: Mon Jun 20, 2011 3:12 pm Post subject: Processor Verification Methodolgies |
|
|
Hi ,
I am looking any pointers to any good articles, white papers, books or websites that discuss verification methodologies for processor cores.
Have a new processor project to start and only have VHDL, a simulator and code coverage to complete verification.
At the moment it is looking to costly to move to system verilog, assertions or any formal tools.
So looking for new ideas to add to current methods or more justification to support a move to new tools. |
|
| Back to top |
|
 |
qwk000 Senior


Joined: Oct 13, 2004 Posts: 66 Location: Fort Worth, TX
|
Posted: Tue Jun 21, 2011 10:55 am Post subject: |
|
|
Sorry I don't have any links or white papers to give you. Just a few suggestions.
1. You can write SVA in a stand alone file and bind to internal VHDL modules.
2. Write the testbench in SV and use lots of functional coverage so you can monitor progress.
3. Of course use constrained random techniques if possible but directed test cases may get you the coverage you need. Maybe your time is limited?
4. Do you have an instruction set simulator model for the processor? Do you have a compiler for the processor? This would be very useful so you can write a bunch of test cases in C (or whatever).
Maybe that was all trivial. Not sure how much experience or time you have... |
|
| Back to top |
|
 |
pavanshanbhag Senior


Joined: Mar 25, 2009 Posts: 380 Location: Bangalore, India
|
Posted: Fri Jun 24, 2011 2:02 am Post subject: |
|
|
Inbetween I have written a whitepaper on "Verification Flow Guidelines", I can circulate you, if you pass me ur mail address. _________________ -Pavan K Shanbhag
“The difference between genius and stupidity, genius knows his limits.” - Albert Einstein |
|
| Back to top |
|
 |
Hanken Senior


Joined: Aug 02, 2005 Posts: 55
|
|
| Back to top |
|
 |
tblackmore Senior


Joined: Jan 23, 2004 Posts: 43 Location: Bristol, England
|
Posted: Mon Jun 27, 2011 10:32 am Post subject: |
|
|
Hi fredinashed,
there must be a lot of (very busy) processor verification engineers out there, but not so many replies as yet. Perhaps they were a little put off by the 'At the moment it is looking too costly ...' since processor verification is probably not something you want to do quick and dirty.
I can point you to a paper published in 2006 at DesignCon written by Fabio Bruno and myself titled something like 'Verifying the TriCore2 multithreaded processor' but this is now quite old and things have moved on somewhat from there.
When you say simulator I guess you mean ISS? You're sure to need one of these. How will you simulate the ISS and VHDL - each standalone with offline comparison, or together checking each instruction (and all intervening asynchronous events) as it executes? You'll need to look at memory and bus accesses as well as register updates. And where comparison with the model and scoreboarding don't provide suitable checking assertions may prove suitable (e.g. to check that bus protocols are adhered to).
I would also think that, on top of your directed tests, you would need a pseudo-random Instruction Stream Generator, which you would probably want to use to drive interrupts and other external stimuli as well as generate instruction streams. I think code coverage will not be enough - e.g. pipeline effects mean that much coverage will not propogate to anywhere interesting - so you'll need functional coverage of some kind (and lots of it). You'll want to pay particular attention to areas that are notoriously problematic, such as atomic instructions. With all this stimulation you'll want to think carefully how you'll debug all the failures. Think of triaging these, at least by failure type, and you'll need some kind of tool to compare the traces from your VHDL processor and your ISS.
It would be good to do some formal e.g. just formally verify the arithmetic works correctly - this is likely to be quicker than getting a decent of level of coverage here as well as being exhaustive. But formal verification of e.g. cache controllers is probably well advised (these can hide killer bugs) and not easy.
Of course this all just functional verification. Performance is likely to be important (careful analysis of benchmarks may help here), as is power. But this may be beyond the scope of your task.
And this is just the tip of the iceberg since it is really in the details as to how succesful the verification will be. And of course none of it is about tools - it can all be done in many languages with many tools. In fact, when recruiting your verification team I would look closely at their experience with processors as much as at their experience with any particular verification methodologies or languages.
All the best - processor verification is an interesting challenge,
Tim. |
|
| Back to top |
|
 |
fredinashed Junior


Joined: Oct 19, 2009 Posts: 9
|
Posted: Tue Jun 28, 2011 3:05 pm Post subject: |
|
|
Hi All,
Thanks for the reply's so far, to answer some of the points raised.
pavanshanbhag - are you able to upload the verification flow guide lines as suggested ?
tblackmore - Thank you for the paper reference its exactly the kind of thing I was looking for, I have downloaded it and also started looking at the paper references.
In regard to you comment about 'too costly', I agree with you whole heartedly, I currently think the verification proposal put to me is woefully lacking and cost is no excuse. Perhaps I should have said I want to adopt new tools and methods but am not being backed up.
Not having worked on a processor verification before I am looking to see what more experienced processor people have done, such that I can strengthen my arguments for adopting new methods and tools.
Also as you point out 'none of it is about tools' so I am interested in what I could achieve with out a budget for new tools. |
|
| Back to top |
|
 |
tblackmore Senior


Joined: Jan 23, 2004 Posts: 43 Location: Bristol, England
|
Posted: Wed Jun 29, 2011 5:04 am Post subject: |
|
|
I'm glad the reference was useful.
It seems to me that your single most important task is to convince your management just how woefully inadequate their proposal is, which is really what was driving the tone of my reply. Perhaps the best way to do this is to start finding bugs. There certainly will be plenty if the processor has not been verified properly. A well written Instruction Stream Generator (ISG) is likely to find plenty. And each new feature you add to this, or new methodology you adopt, is likely to find more.
My reference to 'none of it' being about tools or languages was really meant to say that none of it was about specific tools or languages. I believe it doesn't matter too much if your ISG is written by an expert in SV or e testbenches, but they will need to understand the processor architecture well and previous experience with processor verification will be invaluable - they will have a sense of where the killer bugs will be. Clearly tools can be written from scratch - and no doubt some of your tools will have to be written from scratch (such as the debug tools) - but this can be as expensive or more than buying a 3rd party tool, and no doubt more time consuming. I really wouldn't suggest writting a constraint solver for pseudo-random generation, although this is of course possible. |
|
| Back to top |
|
 |
pavanshanbhag Senior


Joined: Mar 25, 2009 Posts: 380 Location: Bangalore, India
|
Posted: Thu Jun 30, 2011 10:13 am Post subject: |
|
|
Well I was very much intrested to upload into verification guild, but im on my way to make it a copywright version. Will upload it - once its been approved .. _________________ -Pavan K Shanbhag
“The difference between genius and stupidity, genius knows his limits.” - Albert Einstein |
|
| Back to top |
|
 |
miket Senior


Joined: Jan 12, 2004 Posts: 31 Location: Ottawa, Ontario, Canada
|
Posted: Mon Jul 04, 2011 8:11 am Post subject: |
|
|
A very interesting paper on this topic was published at San Jose SNUG in 2007. The title of the paper is "Applying CRV to Microprocessor Verification". It was written by Jason Chen of Synopsys.
Its a good paper and the concepts in it are sound. Some work we did in our shop is loosely based on Chen's ideas.
---mike |
|
| Back to top |
|
 |
fredinashed Junior


Joined: Oct 19, 2009 Posts: 9
|
Posted: Mon Jul 04, 2011 4:26 pm Post subject: Applying crv to microprocessor verification |
|
|
Hi mike,
Thank you for the paper reference it looks good, ( haven't read it fully yet!) |
|
| Back to top |
|
 |
JimLewis Senior


Joined: Jun 29, 2004 Posts: 21 Location: Tigard, OR
|
Posted: Fri Jul 08, 2011 7:38 pm Post subject: |
|
|
> Have a new processor project to start and only have VHDL, ...
We have developed open source VHDL packages for constrained random verification and functional coverage. Check them out at:
http://www.synthworks.com/downloads/index.htm
Best,
Jim _________________ SynthWorks VHDL Training
1-800-505-VHDL
jim@synthworks.com |
|
| Back to top |
|
 |
war_isbest Senior


Joined: Dec 05, 2007 Posts: 23
|
Posted: Wed Aug 03, 2011 4:23 am Post subject: ISS |
|
|
| tblackmore wrote: | I'm glad the reference was useful.
It seems to me that your single most important task is to convince your management just how woefully inadequate their proposal is, which is really what was driving the tone of my reply. Perhaps the best way to do this is to start finding bugs. There certainly will be plenty if the processor has not been verified properly. A well written Instruction Stream Generator (ISG) is likely to find plenty. And each new feature you add to this, or new methodology you adopt, is likely to find more.
My reference to 'none of it' being about tools or languages was really meant to say that none of it was about specific tools or languages. I believe it doesn't matter too much if your ISG is written by an expert in SV or e testbenches, but they will need to understand the processor architecture well and previous experience with processor verification will be invaluable - they will have a sense of where the killer bugs will be. Clearly tools can be written from scratch - and no doubt some of your tools will have to be written from scratch (such as the debug tools) - but this can be as expensive or more than buying a 3rd party tool, and no doubt more time consuming. I really wouldn't suggest writing a constraint solver for pseudo-random generation, although this is of course possible. |
Hi,
I am verifying a processor based on SPARC architecture(with some extra instructions which were defined as reserved opcodes in the standard) with 4 stage pipeline and AMBA AHB bus for peripherals.
The design is done in VHDL and no Instruction Set Simulator has been developed yet.
I have expertise in system verilog based environment for veriying protocol based designs.
How should i go about it? You recommend not to use Constrained based random generaor? Some one in the forum suggested a paper on CRV for processors. The link i found is here:
http://www.eetindia.co.in/STATIC/PDF/200712/EEIOL_2007DEC10_EDA_TA_01.pdf?SOURCES=DOWNLOAD
What is your opinion?
As we dont have an ISS yet i have decided to implement a reference model in system verilog but i am not able to decide whether to include pipeline in the reference model or not?
What architectural details of the implementation you suggest to be added to the golden model.
thanks in advance |
|
| Back to top |
|
 |
miket Senior


Joined: Jan 12, 2004 Posts: 31 Location: Ottawa, Ontario, Canada
|
Posted: Sun Aug 07, 2011 1:02 pm Post subject: |
|
|
I can't speak for Mr. Blackmore, I would strongly recommend a CRV approach. I referred a paper earlier in this thread that should get you started.
---mike |
|
| Back to top |
|
 |
Hans Senior


Joined: Dec 17, 2003 Posts: 50 Location: Ottawa, Ontario, Canada
|
Posted: Thu Aug 11, 2011 12:42 pm Post subject: |
|
|
As a shameless plug, another paper co-authored by myself was published at DVCon 2009:
"Model-Based Instruction Stream Generation For Processor Verification"
See if you can dig it up - you may find it useful. If you can't find it, drop me a line so I can send it to you.
Hans |
|
| Back to top |
|
 |
war_isbest Senior


Joined: Dec 05, 2007 Posts: 23
|
Posted: Fri Aug 12, 2011 4:35 am Post subject: What about reference model? |
|
|
Hi,
Thanks for the links.
Can any one please guide me in deciding about the reference model?
I have given a proposal where the verification environment contains an ISG which feeds the RTL and reference model.Their architectural states are compared to verify the RTL.
I have also proposed to use assertions to verify the small blocks and their interfacing.In addition i have told that we will also write directed tests to focus upon block level verification.
Here one question which is asked to me is: "What is the level of details required by the reference model and what should be tested in directed tests."
One level is that model can be pure sequential and need not reflect pipeline behavior. Is that correct?
Second level is where we model the pipeline and cache too.
Plz help.
Thanks for your replies. |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
| |
|
|