In this series of posts, I will provide some of the information that are needed to use Cadence Virtuoso so that people like you could get most of it.
After a simple yet advanced search on google and restrict domain to *.edu, you could find some tutorials on virtuoso, like Berkeley, CMU, USC, VT, NCSU, etc, I will refer to many of the materials there and combine them together with hyperlinks so as to be a summary for all those tutorials, in addition to that, I may find some pdf files that are available or resources outside of the US to expand the view.
First thing to know is that one needs a Linux environment to use the software, you need to setup the correct environment variables in order for different versions of app to run seamlessly. If you want to Virtuoso to show up on you Mac or Linux machine, make sure to use ssh with “-X” for X Window to load, check this document for more information, especially the troubleshooting section. You can also run Cadence on the server with gui capabilities, so you don’t need to invoke the ssh command to redirect the gui interface back to you own PC.
So how to invoke the Cadence environment, a script may run to set things up defining variables and change user, it could be Cadence61x or something like that, it is just a simple script that takes the name of the command and setup the correct environment for you. It may opens up a new login shell for you to invoke the virtuoso command, and then by sending the command to background, you are ready to use the app suite.
There are more advanced configurations like keyboard shortcuts that can be configured via files can be explored further, but I will stick to the current main topic.
Since we are able to fire up virtuoso, I will write something more on the different modules of the platform: according to Virtuoso System Design Platform, two workflows are mainly offered:
implementation flow: schematic design using Virtuoso Schematic Editor->SiP(System in Package) Layout->physical design.
analysis flow: extract and simulate any portion of the system, generate schematics, simulate the system.
When Virtuoso starts up, two windows pops up, one with logs is actually named CIW which is called Command Interpreter Window, another window is called the Library Manager on the window title bar. You can summon the manager from CIW->Tools->Library Manager.
Extensions with lib files are needed to be placed at the working directory where virtuoso is invoked, those files are actually used to define various libraries for virtuoso to know where the actually library paths are. You can check out the actually text inside the lib file or check out the actual source lib files. By setting the correct path text, you can check if the cells are correctly loaded. Also you can check out the path from CIW->Tools->Library Path->Editor. As a matter of fact, based on the previous description, this platform is UNIX centric, which means a lot of items can be configured via text based files, thus requires people know something on Linux. VT’s environment setup guide tutorial specifies the general steps for environment setup with some explanations.
After several search queries on the web, I decided to adopt the NCSU’s library since many other universities’ tutorials rely on that, this indicates that I have to set it up correctly so that further hands on experiences would rely on their offer.
On nscu-cdk website, you can download libraries and check out their documentations, they will send you a like and you can download the tar files one by one, one thing to notice is that it is better to be place the tar files on the server and extract them rather than do that on your own machine since the transmitting speed would be greatly reduced for the extracted folders. You can use tar command to extract tar files and then further extract tar.gz to your sever for further actions. So after serious amount of working on extracting the files: there are 6 folders: FreePDK15 FreePDK3D45 FreePDK45 FreePDK45_lithosim ncsu-cdk-1.5.1 ncsu-cdk-1.6.0. Even through they sit nicely on your server, you still need to further configure them so that Cadence can utilize them. This link also includes information about the ncsu-cdk(Cadence Design Kit) and FreePDK(Process Design Kit).
Well, trying all those different tutorials seems a way to get started, but I decide to pivot to read the documentations and manuals directly from the Cadence Virtuoso, it actually lists lots of useful information but it is going to be time consuming. I hope to figure that out within 2 weeks, in the mean time, I will update the posts just for my own learning process.
Leave a Reply