Homework 1 and 2

125 views
Skip to first unread message

Brendon

unread,
Jan 25, 2010, 5:49:39 PM1/25/10
to ECE 156B W10
Homework 2 has been posted. Since the order of the lectures has been
moved around and BDDs were covered before SAT, the due date on the
first homework has been postponed. It is now due on February 25th.
Homework #2 is due on February 18th.

The second homework is similar to the first in the fact that you have
to use a open source software package to analyze some benchmark
circuits.

The podem software provided is an ATPG (automatic test pattern
generation) tool. For these assignments, you are only using podem to
read in and parse the .sim files. If you look through the code and
some of the header files, you should be able to see how the circuit is
internally stored after it has been read in. At this point you can add
your own code and traverse through the circuit as needed using the
data structures that podem creates to represent the circuit.

global.h and atpg.h are good places to start looking at the code.

Greg

unread,
Feb 10, 2010, 4:53:37 AM2/10/10
to ECE 156B W10
Hi Brendon,

I've started to work on the homework assignments, and to be honest, I
don't have a very clear overall picture of what we're attempting to do
here - and I'd be surprised if I'm the only one who feels this way. A
few questions:

1. What exactly is CUDD doing? Is there a specific command that
compiles it, or are we writing or own C program and just linking to
CUDD using headers?
2. How is the parser used in relation to CUDD? The parser reads in a
circuit and somehow hands off that information to CUDD?
3. Is there anything we need done on HW1 in order to do HW2?

Any advice you have on this homework would be much appreciated.

Cheers,
Greg

Brendon Bolin

unread,
Feb 10, 2010, 8:02:36 PM2/10/10
to ece-15...@googlegroups.com
1. CUDD is for constructing the BDD. You can build all the object files you need using the makefile that is provided with it. If you look on the CUDD website, there is an example of how you need to modify you own makefile (probably the one for building PODEM), to be able to properly link in the CUDD libraries. You will be wring your own C code that references and uses CUDD.

2. The parser is used to take the SIM file and put it in a data structure representing the circuit that you can easily traverse. It's your job to go through the circuit and construct the BDD.

3. Understanding where to insert your code into PODEM (after the SIM file has been parsed and read in) is the same between both assignments. For the one involving CUDD, you need to link in and write code that references the CUDD libraries. For the SAT assignment that uses ZCHAFF, you simply need to create an output file which can than be used with ZCHAFF.

The first thing you should do is get podem built and running. After that you should look through how it runs and figure out where you can insert your own code. At this point you should make sure you can traverse through the circuit as you expect. From here you should be able to start the coding for constructing the BDD. You will have to look at tutorials on how CUDD is used to see how you start and merge BDDs.

If you are familiar with makefiles, libraries and larger C based projects, nothing here should be that difficult. If you are not, it will take you longer looking through the code, getting everything to build together and properly using CUDD. Also if you are in the later category, you should have looked over and started this assignment earlier than a week before it was due. All of the assignments for 156B are more difficult than the assignments in 156A. That is why there is only three of them. HW2 should be fairly straightforward after you have completed HW1 due to the similarity in using PODEM to help traverse the sample circuits.
--
______________________
Brendon Bolin
bbo...@gmail.com

Reply all
Reply to author
Forward
0 new messages