Published 29 Jun 2013
Week Three Accomplishments:
- Consolidated and cleaned up the find-chains scripts into one final script
- Started digging through the fault analysis scripts, figured out the order
filled in the missing directories
Week Four TODO:
- Fill in more of the manual steps of fault-sim and atpg-sim in the code
- Add a line to make and 'make all' that covers the missing steps in the
fault simulations
- Figure out what all the logic files are named for, what the "special"
implication and circuit files mean, and name them and organize them
within the scripts more clearly
- Find other areas of automation in the scripts for
later improvements
Day 5 (6/28):
- My mouse came yesterday! So I am officially back to working on my computer.
Although today I decided I may have been more productive on the Linux
workstation after all.
- I'm having some problems with the implication validation scripts, which is an
early step in the process that should be working perfectly, so I am thinking
it is either a missing file or an error in the parameters I'm feeding the
circuit. Marco said all of it should be working fine, so I'll show him the
output on Monday and hopefully it's a quick fix.
- After I tabled the validation scripts, I returned to fault simulations where
things are still tricky going. There's a lot of repetitive code and I'm
still trying to pare out which parts are just leftover copy+paste oversights
and which parts are really critical for each script. There's a lot of
overlap and I'm not even sure whether all the scripts I'm looking at were used
in the first place...
Day 4 (6/27):
- Today I debugged the holes in the fault analysis code by executing each line
one by one in the Python interpreter and paying attention to where things
break. There were some missing folders that weren't explicitly constructed
anywhere, but were needed for the simulations scripted in fault-sims, so I
(very apprehensivley) made the missing directories and checked to see if that
fixed everything (spoiler: it did).
- My biggest struggle right now is that while the code is documented, to an
extent, the order in which you're supposed to run the code and the
intermediate steps haven't been documented. So I have a bunch of scripts,
and a flow chart, and some README files that are all the same (it took me
a few hours to realize the README file was the same one in all the different
folders, which was not helpful), and some generated verilog and implication
files that I need to sort through. I spent most of the day just understanding
how a lot of the pieces fit together, and I still don't think I'm getting the
proper output from the scripts
Day 3 (6/26):
- Today was a fairly unproductive day. I figured I'd spend the morning looking through
fault analysis code, but got a little bogged down in figuring out where this one
hard-coded directory was created from. It's referenced in a few places, but I can't
find the place where it was made. Marco dropped by for a little bit and I asked him,
and he seemed to think there may have been some manual steps in between that left
some holes in the scripting process. This whole fault-based implication system is
a little ambiguous to me, and I need to devote more time to figuring it out.
- I cleaned up a few weird bugs in the spice generation code that I'd thought
were previously resolved, but I chalked the confusion to me not understanding
svn yet. I have now decided to test every script before commiting svn changes,
just to ensure I haven't mucked anything up anywhere.
Day 2 (6/25)
- More sad news: my logic board needs replacing. The Apple store technician said the water
damage indicator right next to the logic board and the trackpad connectors was tripped,
meaning it is most likely a problem with the logic board as well. I noticed, though,
that when my computer just starts up it works for a little while, and that the problem
especially manifests when you shut the computer and walk around with it. So I may end up
just using it as an at-home computing device for now. Replacing the logic board costs
almost as much as getting a new one, so I will investigate less costly solutions.
- After that little excursion to the Providence mall for some sad news, I returned to work
to investigate the code base. I looked through the fault-sim code, but it was confusing,
and some of it was in Perl, and I couldn't tell which parts we were using and which we
weren't, and the README files were just copied and pasted from other folders and I felt
very confused.
- Instead, I decided to investigate whether I could optimize the find-chains processes
by inserting a sort somewhere. I haven't proposed the idea to anyone, but it would be
teachable for me to at least explore whether it would help at all or not.
Day 1 (6/24)
- Some sad news: my personal computer broke ): I had gotten it wet during a rainstorm
a few weeks ago, and the trackpad began acting up (it started moving windows,
deleting files off my Desktop, right-clicking all over the place, etc). I took it
to get replaced, and
the problem seemed to go away, but returned again yesterday, so there must be more
wrong than just the trackpad. I have an appointment scheduled with the Apple store
again tomorrow, but my hopes are not super high.
- In the meantime, I'm working at a desktop terminal of the linux machine I was ssh'd
into, which isn't unpleasant, but the working conditions are a little different.
I spent about a half hour just getting the vimcolors to be tolerable and turning off
the linux hardware beep, but once that was sorted, I felt more comfortable. I may, in
fact, be more focused, because I don't have all my personal things logged in to distract
me.
- Aside from that blip in productivity, I got a lot done today! Thanks to the magic that
is vimdiff, it only took me today to compare and consolidate all the find-chains scripts,
and I now have a nicely commented find-chains with all the useful functionality that the
different versions provided. I also was very easily able to merge in the comments that I'd
mistakenly put in a different file thanks to vimdiff, so that was great.
- In my experimenting and checking the code for errors (at one point, I left an extra indent
somewhere, and the Python interpreter yelled at me for about 20 minutes. Test your code.),
I noticed that there might be places to make the find-chains code more efficient if we sorted
the implications based on score at some point during the chain-making process. Or maybe sorting
the chains themselves. These are some ideas I can investigate in the future.
- Some exciting news: Abbie and I finally recieved Brown IDs! We went down to the engineering
administrator's office, and, suprisingly, he not only remembered our names on the spot, but
had news for us! It turns out there is a lot of remodelling being done in the Brown admin servers,
so a lot of requests are backlogged, including, unfortunately, our email addresses. This is particularly
frustrating because I can't do simulations without this email access, but there's nothing to be
done. At least now that we have ID cards, I can use the gym.