• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Blogs
  2. Verification
  3. Video Easter Egg: Incisive Formal Verifier and SVA driving…
TeamVerify
TeamVerify

Community Member

Blog Activity
Options
  • Subscribe by email
  • More
  • Cancel
Suman Ray
ABV
Apurva Kalia
Formal Analysis
Easter
formal
Manu Chopra
SVA
Verilog
Lego
assertions
egg
robot
ARM
IEV
Rubik's Cube
Formal verification
IFV
Assertion-based verification

Video Easter Egg: Incisive Formal Verifier and SVA driving a Rubik's Cube robot

21 Apr 2011 • 1 minute read

Just in time for Easter, Team Verify's Apurva Kalia, Manu Chopra, and Suman Ray of the Incisive R&D team created a Rubik's Cube solving Lego robot.  However, unlike other such 'bots (recall the now famous ARM-driven Rubik's Cube ‘bot at ARM's TechCon), the brain of this one is actually a single SVA assertion that is solved in an instant by Incisive Formal Verifier (IFV).  Check it out:

 


 

If video fails to open, click here.

More details about this project:

* The core program is a single SVA assertion (in a nutshell, "never (solved cube)"), which IFV solves and then produces a counter example which turns out to be the optimal solution to the cube.  A script translates the counter-example signals into a set of actuator commands for the robot to execute.

* Taking a step back: first, the scrambled state of the cube is read - 6 faces, and 54 cubelets in all - and translated into an array on the ‘bot end, which is transferred to a Linux machine via a VNC session.

* On the Linux machine a script takes the sensor data array and models the cube as a Verilog array of 54 consecutive numbers, each of which can have a value of 1-6 (signifying the 6 colors).

* An "always" block models the quarter turn of one face at each posedge clock.  The array is modified appropriately when the face is turned one quarter turn.

* There is practically no limit to the size cubes this algorithm can handle - as long as you have enough Lego Mindstorms, you could solve arbitrarily large cubes.

* The robot design itself was taken from http://www.tiltedtwister.com  Hans Andersson - the owner of that site - is truly an inspiration to Lego-maniacs everywhere!

Happy solving!

Team Verify

On Twitter: http://twitter.com/teamverify, @teamverify

 

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information