There is a new free, open source (FOSS) e language project out there called “CFS Vision” that’s been getting very positive reviews from Specman users as well as our own Application Engineers. For example, their latest release is a really useful “eChart eVC” (actually a mix of e and Java) which allows you to draw charts directly from the verification environment. Given all of this positive excitement, Team Specman decided to catch up with the leader of this initiative, Mr. Cristian Slav, and share with you his story. As you will see, Cristian is a real “programmer’s programmer” that truly practices as well as preaches the FOSS gospel.
Team Specman (TSN): Tell us a little bit about yourself, and CFS Vision
Cristian of CFS (CFS): CFS Vision is a personal project started from my passion for this interesting field of ASIC verification. I entered the field over 5 years ago, and from the beginning Specman has been my verification tool of choice. During this time the majority of my projects have been networking based ASICs, and I have also worked on eVCs for some standard protocols like I2C (which at first glance, looks quite simple, but when you dig down into the details there is an immense space of legal scenarios in which randomness must be the key player.) Currently, I am working as a verification consultant for AMIQ in Romania (makers of the DVT IDE, which Team Specman has been nice enough to profile on your blog – thanks!)
TSN: What specifically inspired you to start this project, and how can people join and contribute their time and/or eVCs/UVCs?
CFS: First, the idea behind CFS Vision is to give something back to the verification community. There are not so many in-depth information sources out on the internet for the full-time, dedicated verification engineer. You can literally count them on the fingers with Cadence blogs and Specman Yahoo Group being on the top of the list. Granted, there are other blogs that can give a helping hand to the entry level engineers, but that’s it. Hence, the real “hunger” out there is for substantial open source examples because it’s often the quickest way to learn. Furthermore, open source gives one the opportunity to achieve a goal with less effort. I think the best example comes from Java, where most of the time you can find on the Internet all the pieces of the puzzle. Your job is just to put them all together.
The main driver of this project is the verification community. Anybody can send me the bugs they find in the code, suggestions for features they want or even requests for small and simple eVCs – community feedback is quite important for me/CFS Vision. The plan for the future is to evolve to the idea behind Open Cores in which anybody can upload their project to be used by others.
The bottom-line: the verification community is relatively small compared to other fields, and we need to stick together! Hence, if you are interested in contributing some time or code to this cause I invite you to contact me via email@example.com
TSN: What inspired you create the APB eVC you have posted on the CFS Vision site?
CFS: The APB eVC came about as a validation tool for the “eVC Generator” tool. The APB protocol is one of the simplest out there, and implementing was easy once the eVC infrastructure was generated.
TSN: What makes your APB eVC different from other solutions in the market? Is it OVM compliant?
CFS: Ha! Apologies for the laughter, but the APB eVC is not intended to be a commercial solution / product – it is provided as an educational example to whoever is interested. As noted above, I think that one can learn a lot about eVC development when looking at some real code, so I made sure to keep this eVC well organized and fully eRM compliant.
Regarding the specific question on OVM compliance: I haven’t put in any new OVM e features yet, but because it’s eRM compliant it’s fully backward compatible. Additionally, there is a parallel reason why the APB eVC is not OVM compliant: because “eVC Generator” tool I used to make the eVC only creates eRM compliant code at this time, i.e. I haven’t added OVM e updates to the code generator yet.
Of course, this eVC can be used inside a real project, which I strongly encourage; and I am more than happy to offer free support. But it does not compete with commercial IP offerings; it does not come with fancy custom features, or a huge sequence library. It is simply implementing the protocol with the checkers -- no more, no less. Of course, because it’s written in e and is eRM compliant, it can be easily extended to fully comply with anyone's requirements.
TSN: Tell us about the "eVC Generator" tool?
CFS: The “eVC Generator” tool came from my passion for Java. I am quite a fan of this language for which I learned just by writing small applications myself for fun, or to make my life easier. The idea for the generator was simple: make a visual interface to an ordinary ‘search and replace’ function; and that’s it! It can be easily extended by anybody: just add a new eVC architecture template, make small modifications to the Java files and you’re set. Of course a very simple bash script to do ‘search and replace’ can do the same, but the driving idea for me was to write Java, for fun. If somebody out there finds this eVC Generator useful for their purpose, that can only make me happy that I could help them in this way.
TSN: While we would like to do a more detailed post on your "eChart" visualization tool , can you give us a quick preview of it now?
CFS: Sure. First, my goal is for the “eChart” tool to be a real helping hand to front-line verification engineers. It allows one to draw two-dimensional charts directly from the ‘e’ code, and charts are a powerful tool when it comes to understating and validating the code. For example, a parameter’s evolution in time – like the ups and downs of bandwidth measurement on a bus – can quickly give you an idea of whether things are on the right track.
Using eChart is quite simple: there is an ‘e’ component that you instantiate in your environment to which you send X and Y axis information during the test. By accessing the API of this component one can start the visual interface to see the charts. The visual interface can also be loaded later on for further analysis.
However, I must emphasize that the big advantage of eChart is that it can be easily customized by other users to draw other types of charts -- not just an X-Y series type of chart. For example, you can extend it to create a pie chart because the engine behind eChart is JFreeChart, which is a free library for drawing charts using Java. In short, I tried to write the ‘e’ component in such a way that extending it should be as simple as possible.
Adding even more capabilities of the eChart tool is the next step for CFS Vision project. The plan is to allow the user to be able to draw more types of charts because JFreeChart has a huge variety.
TSN: How can people learn more about your APB eVC and your new "eChart" eVC?
CFS: The APB eVC can be downloaded from:
The eChart eVC can be downloaded from:
Both are well documented, with presentation videos included on their web pages.
Finally, allow me to take this opportunity to send a message to all the companies out there which develop ‘e’ code or tools for verification. If you have code or tools which are no longer of commercial value to you, make them open source so others can learn from you and your expertise. In the long run you will help create a larger pool of available, more knowledgeable verification engineers, which will be to your benefit as even in this economy the need for verification shows no sign of slowing down.
TSN: Thanks, Cristian, for your time today, and for sharing these great utilities and example eVCs with the community!
CFS: You are welcome – and thanks to the Specmaniac audience for listening!
P.S. from Team Specman:
Do you have an e language-related product, utility, plug-in, or shareware you would like to promote? If so, please contact Team Specman and we’ll work with you to introduce and discuss it via this blog -- and on Twitter too (follow us: @teamspecman ).