Showing posts with label hardware. Show all posts
Showing posts with label hardware. Show all posts

Saturday, February 12, 2011

Idea 50: On Demand Boolean Satisfiability Cloud Solver

The Boolean satisfiability problem, though barely encountered in every lives, has wide applications in software engineering and mathematical optimizations, in particular the problem of formally verifying the correctness of software and hardware. See the wikipedia page for an introduction, and paper written by Joao Marques-Silva on "Practical applications of boolean satisfiability".

The idea is to provide a web service, such that anyone can input a Boolean expression in terms of conjunctive normal form (CNF), and instantaneousness obtain the result of whether the expression is satisfiable. For example, input the following expression:
(x1 + x5 + ~x3) (~x6 + ~x2) (x2 + x3 + x4) 
where '+' represents Boolean OR, and '~' represents Boolean complement; the result will be a satisfying assignment (one of many) to the 6 variables involved.

In addition to HTML web interface with manual input, a developer's API service will be provided, where software programs can make remote requests to the server and supply an encrypted string of Boolean expressions, while the server respond by solving the problem instance, a satisfying assignment in the satisfiable case and a simple "no" in the unsatisfiable case. In some cases, delay may be encountered if the problem instance is large and requires large computation time.

The business model is to charge based on the bandwidth of API usage, or the amount of CPU cycles involved.

Update: the SAT solver itself could be implemented using current programming language Erlang and deployed on a large set of computer nodes.

Saturday, August 15, 2009

Idea 39: Auto Page-Flip Music Reader - Kindle For Music?


A keyboard player would tell you that she has to get used to flipping the music sheet while playing. That can be annoying at times when the melody enters fast pace. How to flip the page automatically?

Here's an idea. Use a large screen electronic reader just like the Kindle DX.

A Bluetooth enabled foot paddle is wirelessly connected to the reader. Merely stepping on it would signal the reader to turn to the next page.

What would make it really interesting, is to have a music recognition software, which listens to the piano, or whatever instrument, as you play it. The reader would highlight the music note that is currently being played, and when it reaches the bottom of the page, guess what, it turns to the next page. :)

That would make music playing much more fun, wouldn't it? Further more, it would have tremendous value for educating young players.

Music cultivates soul and inspires ideas. Let's make music playing more enjoyable.

photo credit linh.ngan

Monday, August 03, 2009

Idea #31 Web-based Hardware Design From C To Silicon


Hardware design should not be a black art any more, no need to master Verilog or VHDL. Design flow and tools have matured enough that, unless you are doing cutting-edge micro-processors or wireless chips inside the iPhone, you can get your chip design done fairly easily.

To enable open source silicon and wide adoption of hardware design, we need an online design tools, starting from the mostly widely used programming language, C.

Quite a few software vendors have started offering C-synthesis tools, from industry observer John Cooley.

Here's an idea for a business model to make the online tool work.

You may enter a piece of C code from the web interface. Push a button will get you the equivalent gate-level netlist that implements the same functionality. In addition, performance analysis reports, such as, how much speed up will be gained by implementing in silicon versus software, methods to interface with other modules of the system, etc.

All these are free, except when you want to use the netlist in hardware, whether in terms of FPGA (field programmable logic arrays) or ASIC (application specific integrated circuit), a license fee needs to be paid, based on the size and scale of the system.

With an easy-to-use interface, it enables more system designers to explore the option of instantiating customized hardware.

The long tail of hardware design.

photo credit BotheredByBees

Monday, July 20, 2009

Idea #21 Open Source Silicon


What if one can download a hardware design, plug it into a magical device, and a customized piece of silicon is born, which can be used for mowing the lawn, vacuum the floor, cooking dishes, or ordering milk ?

The idea is not new. There have been multiple releases of open-source hardware designs, be it micro-processors by SUN, PCB board designs, embedded systems. There is a detailed description on Wikipedia.

I think there are three important ingredients that enabled open source software, but are not yet available for hardware.
  1. Universal infrastructure, i.e. personal computer and the operating system with open standards, to enable software plug and play.
  2. Widely available tools, i.e. compilers, debuggers, simulators, and assemblers, for software development.
  3. Zero cost production and instant satisfaction.


However, these are coming together gradually for silicon design and production as well. As the competition in the Electronic Design Automation market intensifies, prices of design tools come down, and more and more open source design tools are becoming available, example here from EE times.

Open hardware platforms emerge as well, from semiconductor vendors such as nVidia and Xilinx. The Xilinx FPGA evaluation board, starter kit, can be bought for as cheap as $100, and be programmed to many interesting tasks.

We already have innovative 3D printing company MakerBot, and open source repository of "things" that people design in the Thingiverse, which anyone can download and create their own physical copies.

I look forward to see one day that I can down load my own robot with customized "brain".

Update: The Arduino platform is a very interesting low cost configurable hardware prototyping system. People are using it to design wearable electronic fabric, i.e. the Softwear Project, which may become the fashion of the next decade. Cool.

image credit Daily Galaxy

Thursday, January 08, 2009

Idea #15 - NetBook, machine with a web browser, that's it

Increasingly, applications are ported to the web, email, office tools, games, music players, photo album and calenders. With a web browser and access to VPN (virtual private network), I don't need much fancy application software, and in fact, I'm more and more annoyed by the elongated boot-up time and shut-down time, and the pop-up message that reminds me to upgrade my software.

What I want is a machine with a web browser and nothing else.

It should be even simpler than the Microsoft-free PC proposed by IBM. It should not have an OS, or at least a very simple one that is not vulnerable to malicious attacks. It should boot up and shut down in an instant, just like cellphones. If needed, I can hook it up to my LCD monitor for better viewing pleasure.