So you’re done.
You finally completed your FPGA Application - the end of development and validation.
It is time to generate revenue from it, I mean… you didn’t work for nothing, right?
Few things to consider to get rich...
You need to give your product a price.
It took weeks to be developed, it is based on cutting-edge technology, and it is truly amazing. You’re tempted to give it a premium price reflecting the value it delivers.
High-end IPs are usually sold starting from a few dozen $K1
But let’s be realistic…
Even if the application is awesome, even if it largely outperforms the concurrence, would you pay multiple thousands of dollars for it without being 100% sure to get your investment back?
Upfront cost is the biggest barrier to your application adoption.
In fact, giving your application a price based on its intrinsic value is often a dead-end.
You need to study the market and estimate the added-value of your solution based on it.
Estimating the size of the financial benefit your application will provide to a given customer is the key to defining a correct price.
However, the lack of knowledge about your customer will most of the time make you fail in estimating correctly your product’s value.
Let’s say you found a customer interested in your application.
It is a promising startup that claims to be able to use your application and generates about $10M business in the next 3-5 years.
Would you believe enough in their assertion to offer a volume discount day one?
What if, in the end, they became so successful that they’ll generate 25 times more revenue than expected?
You need to find a way to get revenue proportional to the benefit your application is providing.
The (not so) new kid on the block
When you think about the usual current business model for FPGA application, you think of a model that was created a few decades ago.
It is not very surprising to discover that it does not fit our actual needs.
Nowadays, every flourishing high-tech company understood that and pivoted their business model from stone-age upfront payment to an “on-demand” model.
“Pay-as-you-go”, “Everything-as-a-service” (XaaS), “on-demand” are the new buzz words.
Uber, Netflix, Ebay, Amazon, Microsoft, Slack, Mailchimp, Dropbox, Salesforce, etc..
They’re all sharing this new business model where no upfront payment is required, where customers pay only what they consume.
This “Pay-as-you-go” or “as-a-service” model removes entry barriers opening costly infrastructure to small businesses that could not afford the previous upfront cost.
Helping those businesses to grow makes their (proportional) revenue to grow as well: A win-win situation in brief!
By now you should be convinced to adopt a modern “pay-as-you-go” business model.
But How to achieve that with an FPGA Application?
One word, Licensing!
Licensing is certainly not a new concept but the way you will use it will be a determinant factor!
What you want is to grant a specific user to execute your FPGA App while restricting non-authorized usage.
You also need a way to monitor the execution duration to charge your customers for their real consumption.
The ugly way: Software-based Licensing
You could think that licensing is fairly simple, that you only need to prevent the execution of your software using proven sw-licensing technology.
But that would mean leaving unprotected the centerpiece of your application: Your FPGA design.
One can duplicate and use your FPGA bitstream without using your software.
And I’m not even mentioning how easily software-licensing technology can be hacked...
You definitely need a solution to safely deliver your bitstream to your customers, which leads us to hardware licensing.
bad not-so-good way: Nodelocked Licensing
Adding licensing protection in your bitstream instead of your software is a much more secure way of licensing your application. The obvious implementation is to statically license the bitstream against an expected hardware identifier of the device. Yet, the well-known licensing method called Nodelocked imposes many limitations.
The first and largest limitation comes from the entity that receives the license: with Nodelocked, it is a specific physical device that receives the right to execute a given application. That should immediately raise the portability alarm. Yep, the purchased application can only be executed on that one device. That already rules out cloud usage, where you get a random device every time you provision an instance. And it also forbids any kind of hardware migration - whether a defective board, or an update of the FPGA cards to a newer & better model, or a simple migration to an identical device in a different location. That really sounds ugly, and far from the software-defined promise of modern compute infrastructure.
The second limitation lies with the absence of time-based models. Unfortunately, Nodelocked licensing cannot safely offer time-limited licenses, as these would require a tamper-proof date & time measurement within the FPGA… Exotic solutions exist, but nothing on off-the-shelf cards from Intel, Xilinx, Bittware and other major FPGA cards manufacturers.
Being restrained to perpetual license rules out any kind of pay-as-you-go business model … that hurts.
How can you charge your customer to their real usage then?
Note: For offline appliances, the Nodelocked model is, however, the better you can achieve.
The good way(s): Dynamic licensing
Dynamic licensing requires an external server - ideally hosted in the cloud - to dynamically grant a time-based license to a user, regardless of the actual physical device on which the application is executed. Now, we have full portability - you can execute anywhere, on-prem or in the cloud or any hybrid mix! And you can migrate your workloads in real time! That’s flexibility and agility!
Even better, dynamic licensing allows for true pay-as-you-go models where you can execute as much as you need, anywhere, and you’re being charged for your actual usage at the end of a billing period (typically monthly). That doubles up on agility and scalability!
Dynamic licensing is in fact what you already enjoy in public clouds for traditional resources - compute, storage, networking, etc - which are billed per hour, data volume or API calls. Extending it to FPGA applications makes so much sense! Whether on-premise or in AWS, Azure, Alibaba, Huawei, Nimbix, Baidu, or Tencent, you’re covered! No more vendor lock-in, you’re free again!
Accelize pioneered hardware licensing and invented the dynamic licensing model for devices and applications executing on them. The Accelize solution goes even further by using time-limited license generation with mandatory activity reporting, everything being securely encapsulated (encrypted) within the FPGA. In a nutshell, a customer can’t generate a new time-limited license without providing its current activity metrics, simply clever!
FPGA computing market is growing fast these days, especially in the cloud, and FPGA application vendors will be harvesting the fruits in the near future. However, they need to consider modernizing their business model to follow customer actual ways of consuming applications.
Solutions exist, so join the movement!