United Business Media EE Times


Search

HOMEMARKET INTELLIGENCE UNITFORUMSDESIGNNEW PRODUCTSCAREERSBLOGSCONTACTEVENTSSIGN UP!RSSMost Popular contentTrusted Sources

 


New language makes waves
Print this article Email this article Reprints RSS Digital Edition

EEdesign.com


I'm currently wrestling with a writing project that shall, for the moment, remain nameless. At the moment I'm wading through the mire, up to my ears in alligators, trying desperately to wrap my poor brain around the advantages and disadvantages of modeling with C/C++ versus SystemC versus SystemVerilog versus normal Verilog versus VHDL versus...arrggghh!

Hence, you can only begin to imagine my lack of enthusiasm when my old mate Tom Hawkins from Launchbird Design Systems called to regale me with gusto and abandon about a new language he's designed called "Confluence." "Does the world really need yet another language," I whimpered pitifully to myself, but Tom assured me that indeed we do.

HDL generation as opposed to circuit description

One point you have to understand about Tom is that he's one of those guys who has a size-16 extra-wide brain with "go faster stripes," so when he gets the urge to invent something, it's always incredibly cunning and well worth one's while to pay attention.

And so we come to Confluence, which isn't some sort of magic system design language, but instead is a regular programming-type language designed with RTL code generation in mind. To put this another way, you use an HDL (like VHDL or Verilog) to describe a specific circuit, but you use Confluence to describe an algorithm that can generate an entire class of circuits.

For example, consider the "generate" statement in VHDL (or the newly added equivalent in Verilog 2001). Well, Confluence is supposed to blow these away. For example, you can create a small Confluence representation of a FIR filter than can have any number of coefficients, and these coefficients can have whatever level of precision you specify. Similarly, the inputs can have whatever precision you specify (the output precision is determined by that of the inputs and the coefficients).

In programming terms, Confluence offers recursion, high-order data types, lexical scoping, and referential transparency (oooh!). When you run your Confluence representation through the associated Confluence Compiler, you can generate corresponding RTL in VHDL or Verilog, and you can also output cycle-accurate C.

What do the boys in the trenches think?

Of course, the real "proof of the pudding" comes when you try to use something like Confluence to perform a real-world design. So I exchanged emails with a few of the "boys in the trenches" who have been using (or experimenting) with Confluence.

First up was Chris Chaleki, who runs his own company called DSPcam, designing and manufacturing custom high resolution stereoscopic cameras for broadcast/professional and industrial/scientific use. Chris told me:

"I frequently browse through Opencores.org. It's there that I found Launchbird. I downloaded the Confluence program and had it running in very little time. I printed out the documentation on a Tuesday and spent a total of one day familiarizing myself with the language. It took a while to get my brain wrapped around the concepts.

With a little practice the next day, I decided to write my first REAL program for a project I was working on. It was a simple digital clamping module with threshold detectors/accumulators for a HD format digital video camera. My customer was expecting that aspect of the project to be completed in 10 days. With Confluence I finished it in 3 days. I haven't stopped using it since that first day."

High praise indeed! I also exchanged a few emails with Mikael Sylvest, a consultant with Embedit A/S, a Danish company with a specific focus on embedded software and systems. Mikael told me:

"I'm performing a brief study of Confluence. As a language Confluence is simpler than VHDL, fairly much like a scripting language compared to C. I've been pleasantly surprised to see how flexible and powerful Confluence promises when working with interface abstraction. Not only can you declare abstract interfaces, you can also declare abstract "cables" connecting such outgoing interfaces to incoming ones. This is an excellent inheritance from functional programming - VHDL doesn't come close here."

And last but certainly not least, I chatted with Rudolf (Rudi) Usselmann, from the ASICs World Site (This is a design house specializing in ASIC/FPGA designs for networking, CPUs, DSPs, interface controllers, storage controllers, encryption/decryption, visualization). As you'll see, Rudi's initial response to Confluence was much the same as mine:

"When I first saw Tom's announcement of Confluence, I thought to myself 'Oh God, not another language! I already have to master two HDLs, a handful of verification languages, all C's and Perls out there, and now this!' My resistance to Confluence was successful, until Tom posted a sample circuit of a floating point multiplier. Now I could not resist and had to take a closer look..."

Rudi continued at some length, but in reality the best way to decide whether or not you like something is to "try it and see."

Free evaluation copy

If you visit the Launchbird website, you'll find a lot of examples in Confluence source code, and anyone can download and use a single unlimited license for free (subsequent licenses will run you around $200 per seat per month, but prices are always subject to change, so you'll have to get the latest info from Launchbird). Furthermore, Tom assures me that you own anything you develop with your free license (that is, any Confluence source code models and any ensuing VHDL, Verilog, or C representations), and you can do with them what you wish, including selling them, which has to be a good deal, whichever way you look at it!

In fact the latest breaking news that just came in is that you can now learn and experiment with Confluence without having to install the Confluence Compiler on your own computer. This is because Launchbird has just provided the ability to compile and run Confluence code online. They say that the online compiler is the same as the real thing, but without the HDL and C code generation (I didn't really understand this bit).

They also ask that we all go light on the algorithms (so try not to perform computational fluid dynamics, automated theorem proving, or infinite recursions of death :-)

So does the world need another language? Well, why don't you try playing with Confluence in your spare time and then you tell me. In the meantime, I'm always impressed with anyone who invents anything like this, so I'm happy to award Tom and Launchbird an official "Cool Beans" from me! Until next time, have a good one!

Clive (Max) Maxfield is president of Techbites Interactive, a marketing consultancy firm specializing in high-tech. Author of Bebop to the Boolean Boogie (An Unconventional Guide to Electronics) and co-author of EDA: Where Electronics Begins, Max was once referred to as a "semiconductor design expert" by someone famous who wasn't prompted, coerced, or remunerated in any way.





The views and opinions expressed in this column are strictly those of the author and should not be taken as an editorial position of EE Times or any of its other editors, publications or Web sites.


  Free Subscription to EE Times
First Name Last Name
Company Name Title
Email address
  Click here for your Free Subscription to EETimes Europe
 
CAREER CENTER
Looking for a new job?
SEARCH JOBS
SPONSOR

RECENT JOB POSTINGS
CAREER NEWS
SRC Expands R&D Centers
The Semiconductor Research Corp has added a new center to its university R&D efforts.

For more great jobs, career related news, features and services, please visit EETimes' Career Center.



All White Papers »   

  Design Resources
Designing for a dual Galileo-based GPS system
Malcolm Lomer of SiGe Semiconductor discusses GPS design challenges with the Galileo satellite system.
More »
 
Education and
Learning


Learn Now:












Home | About | Editorial Calendar | Feedback | Subscriptions | Newsletter | Media Kit | Contact | Reprints|  RSS|   Digital|  Mobile
Network Websites
International
Network Features




All materials on this site Copyright © 2009 TechInsights, a Division of United Business Media LLC All rights reserved.
Privacy Statement | Terms of Service | About