Why Am I Learning About Agile Hardware?

Here’s a guest post from Soheil Salehian, the fellow at University of Calgary who is helping me out with the Agile2014 co-development demo. It’s been fun working with Soheil thus far so I asked him to jot down a few thoughts on why he’s interested in agile hardware and what he’s hoping to get out of our demo development. Here’s what he had to say…


1980193_4116373203862_5265614512891722028_oI have always been a firm believer that once you start learning a concept at some level, it is often incredibly rewarding (or at least humorous!) to step back and ask yourself: ”why am I learning this? Does learning this concept get me any further in anything?” The interesting thing is not the actual answer but the rewarding process of asking those type of questions. For anyone familiar with Agile concepts, such questions may resemble asking for feedback which is the most valuable part of using the Agile methodologies and processes in the first place. Continue reading

New Agile Engineering Program Launched on AgileAlliance.org

This is a special announcement to let people know that Agile Alliance has launched a new Agile Engineering Program. The purpose of the program is to help consolidate and grow the community of people that are applying agile practices in engineering by providing a platform for sharing short experience reports on why and how they’ve applied agile. In short, it’s a way for us to help each other out.

The Agile Engineering Program is being lead by Nancy van Schooenderwoert with me side-kick. Nancy and I are happy to have Agile Alliance explore the potential for agile development beyond software development… very happy :).

You can find more information about the program on AgileAlliance.org.

Thank you Agile Alliance!

-neil

Our AgileSoC.com To-do list

From time to time I have people asking me how they can help out with the various activities and developments we talk about on AgileSoC.com. It’s not everyday, but it’s often enough that I thought it would be useful to publish a consolidated list of what’s currently on the go to see if anyone is hip to pitching in. When I say anyone, I really mean anyone. There are no agile hardware experts that I know of which means we’re all equally qualified. You could be working now in ASIC/FPGA development, taking a break, studying at university or whatever. If you got the interest with a few hours to spare, you can help.


Projects Currently Under Development

SVUnit

Download the Latest Version of SVUnit from GitHubSVUnit is our most popular SystemVerilog unit test framework. The framework itself is reasonably solid but there’s always opportunities to publish add-ons or examples. If you have an example of how you’ve used SVUnit to solve a problem that you can share with the community, EDAPlayground.com is probably the best place to do that. If you’ve got add-ons to the framework that you think belong in the release package, please contact me, tell me what you have and we can discuss how to get it in there.

MiniTB

Get the latest version of MiniTB from Github

[CSSBUTTON target=”https://github.com/nosnhojn/miniTB/archive/master.zip” color=”003366″ textcolor=”ffffff” float=”left” newwindow=”true”]Download MiniTB[/CSSBUTTON]

Our second most popular SystemVerilog unit test framework (aka: the other framework) is MiniTB. Similar to SVUnit, it’s reasonably solid on it’s own but more so than SVUnit, it could use some examples. Since it’s geared more toward RTL testing, we could really use some examples of how different RTL modules are being smoke-tested. Likewise, we could use some interface IP (I already have some AMBA BFMs packaged with MiniTB but they could use some company). If you’ve got anything or are motivated to put something together, let me know and we’ll see if we can get something into the release package.

UVM-UTest

I tend to forget about UVM-UTest as an option for further development even though it’s probably the project with the most direct link to what’s going on in the EDA industry. UVM-UTest is our project where we unit test components of the UVM library. Seeing as how UVM is so huge and UVM-UTest covers only a small subset so far, there’s a never ending opportunity here to grow the unit test suite, continuing to verify what is a very important and relevant industry framework. Check out the getting started page to see what we’ve done so far. If you want to dive in, I can show you the ropes and help you get started verify a new piece of the UVM.

Agile2014 HW/SW Co-dev Platform

Our Agile2014 Co-dev platform is being actively developed as we speak. I’m quite excited about this project because unlike almost my entire career, it involves hardware that you can actually see and touch and use. For our Agile2014 Co-dev platform, I think a neat opportunity exists for one or more people to build a module that does some basic graphics processing. Ideally, we’d like something that shows how we can use logic on the FPGA to transform software generated video frames. Complexity doesn’t really matter. We’re just trying to impress a bunch of software developers so pretty much anything will do :). This will probably entail inserting a block into a pipeline that uses AMBA AXI4-Stream protocol for the I/O with some basic stuff in between. If it sounds good to you, let me know.


Other Possibilities

Experience Reports

If you want to help the Agile Hardware community, likely the best way is to set a good example, then publish it (the most common Agile Hardware email I get is: “do you have any examples of agile being applied to _fill_in_the_blank_?”). I’ve posted guest posts on AgileSoC.com before and would be happy to do so again… even from people that criticize the very idea of agile in hardware development. I don’t discriminate 🙂 . Lessons learned, new techniques, anything that others can learn from is good with me.

SVUnit/MiniTB Compatible Mocking Libraries

This would be an interesting way for people to strike off on their own. Mocking is a useful technique for unit testing and TDD. I’ve recently seen first hand how useful a mocking utility/framework can be. Seeing Cadence add a mocking utility to Specman should be enough to convince people it’s not an entirely crazy idea. If you’re new to mocking, you can check out CMock or GoogleMock for two examples from C/C++. If the idea tickles your fancy, you could think about building a SystemVerilog version. That’d be a super idea.

SVUnit Support for OVM

This has come up a few times… there are teams still using OVM and are looking for a framework that supports development and test of OVM components. I’ve talked to people that have tried using SVUnit with OVM so it is possible. It’d just be a matter of packaging an add-on similar to what I’ve done with UVM to make it easy for people to use. Add VMM to the list for that matter. Support for either would be a decent idea.


That’s most of what I can think of. You can get me at neil.johnson@agilesoc.com if any of it is worth talking about. If you have any other ideas, maybe you’re looking for feedback or someone to help you out, feel free to get a hold of me.

-neil

Yes… This is an AgileSoC Shirt

photo 2So I’ve been waiting for about 5 years now for someone to turn our AgileSoC logo into a shirt and send it to me without me asking. 5 Years!

Ok… not entirely true. I haven’t been waiting for an AgileSoC shirt but much to my surprise, it’s happened anyway! Thanks to Matt Plavcan devoting his spare time to something fully and completely awesome, I have a new AgileSoC shirt.

Super. Duper!

Officially… in case it’s not obvious… this is my new favorite shirt. Besides the shirt, Matt also sent me a few DIY iron-ons with various logo configurations. All that for the low, low price of 2 beers.

No solid plans for more shirts yet though it would be awfully selfish of me to keep them for myself. I’m thinking I might pay this forward to some agile hardware developer that does something special for the community. So go do something good… and keep an eye on your mailbox. Someone sending me an AgileSoC shirt totally out of the blue means pretty much anything can happen :).

-neil

AgileSoC.com Best of 2013

We can’t leave 2013 without a ‘best of’ summary. Here’s the most read 2013 AgileSoC.com posts for 2013…

Why Agile Will Never Work in Hardware: Of course. This makes complete sense. A post with all the reasons why agile can’t work in hardware was the most popular new entry of 2013.

Time to Blow-up UVM: In this post, I propose an alternative direction to that of UVM; a verification framework with a radical opt-in approach. We’re talking a real platform with (truly) independent pieces as opposed to the hyper-integrated UVM.

Planning to Fail in Hardware Development: This was the first of several posts with analysis of hardware development planning practices based on the 2012 survey I did with Catherine Louis. Lots of interest data here for those who missed it. Worth a look.

You’re Either With Me Or You’re With: The UVM Sequencer: OK… so I tend to pick on UVM a bit. Here’s a post where I talk about some of the unnecessary complexity of UVM sequencer.

How Do Verification Engineers Waste 2 Hours, 52 Minutes, 48 Seconds a Day?: Rounding out the top 5 is analysis of the Mentor Graphics verification survey. (Hint: it has to do with debugging garbage code).

Honorable mention goes to the most read AgileSoC.com reigning champion of all time (by a mile): Emacs, org-mode, Kanban, Pomodoro… Oh my…. That’s Bryan. He’s an Emacs guys. Please… someone needs to post an entry on kanban with VIM already ;).

Thanks for a successful 2013! Hope we’ll see you back in 2014 for more AgileSoC.com!

-neil

Agile Hardware is Real… and it’s Partly Your Fault

2013-11-12 10.52.20It’s tuesday… maybe a little early yet… but I hope you’re checking your mailbox. If you’ve been an active member or enabler in the agile hardware community, you should soon have your commemorative 1710 day anniversary AgileSoC sticker.

Step 2… if you’ve got it in you to send me a selfy of you and your sticker, I’d love to be able to post a few of those as inspiration for others to join our little community. You can either email it to me at neil.johnson@agilesoc.com or tweet it to @nosnhojn.

Thanks again, all!

-neil

Update: Here’s a few shots of people taking credit for agile hardware. Love it! Keep’em coming!

1710 Days of Agile Hardware

agilesoc-stickerIf you’ve been watching the clock since Bryan first brought up the idea of agile hardware with me back during SNUG 2009, you’ll know that we’ve been working on AgileSoC.com for exactly 1710 days. That’s March 15th, 2009 to today.

To commemorate the 1710 day anniversary of AgileSoC.com, I figured something special was in order. Specifically, something special to recognize the people that have helped fuel this little experiment; those who have helped turn very little into a little more. Continue reading