Things are quickly (but not quickly enough) coming to a close. I spent 5 hours today demonstrating my senior design project with my partner at the ECE design day at state. The project was sponsored by AT, and was something that we will hopefully see live here on AT in the coming months. The project was simple: an upgrade engine that allows you to input your current computer config and an desired upgrade, after which it will output the expected performance gain of your new configuration. The demo went over very well and I'm pretty happy with the project. It will most likely be live after the site moves over to .NET in June.
As I mentioned in my last blog, my chip for my ASIC class works. A couple of you were asking what the chip does, so I'll entertain with a brief description. Basically the chip reads from a 10MB text file into a memory and scans through the text file stored in memory for words. Whenever it finds a word, it searches through a 1MB text file pulled into another memory to see if it can find a match. If a match is found, the word is then written to a third memory (1MB in size) and the process continues.
I employed a pipelined design for my project, with 12 major stages. Out of time constraints, I only kept one operation in flight at a time, but I made it flexible enough so that if I had more time keeping more than one operation in flight would not be a difficult thing to add. I was mainly focused on getting the thing to work by its deadline :)
The project seems relatively simple, but what complicates things is the fact that the memory interfaces are all of different widths. The text memory (10MB) bus is 256-bits wide, the dictionary memory (1MB) bus is 64-bits wide and the output memory (1MB) is 16-bits wide.
My total design was about 25,000 gates (assuming a 4:1 transistor to gate ratio, the design was probably under 100K transistors), and unfortunately I don't know the net size for the Verilog libraries I was using otherwise I would be able to report die area. I didn't do much space optimization in my design, again as I was mostly interested in functionality, but the project did give me the opportunity of dealing with the balancing act that designers must face when they are bridging multiple buses. The graphics guys have this pretty bad as they have a very wide and fast memory bus (tens of gigabytes per second) yet a relatively narrow and slow connection to the outside world (until PCI Express comes around). It was fun, especially once I got it working, but I'm glad that it's over. It'll be completely over tomorrow night when I finish my demonstration of the chip and its functionality to the TA and turn in my report.
My ASIC professor is considering dropping the final because of the difficulty of the project, which would definitely be appreciated. I'm pretty much ready to be done with everything at this point, too bad I still have at least 3 finals to worry about and one last compiler project before May 11th.
I'm pretty beat from this week already, but before I go (not to bed, but to compiler homework) I will provide closure in the form of an explanation of the title of tonight's blog:
I would like to petition for high g-force cup holders in cars that are driven "spiritedly." My reasoning being an experience I had earlier tonight. I was driving with a drink securely in the cupholder, I took a hard right turn thinking that the drink would stay put (my left hand was at 12 o'clock), the drink proceeded to fly up and out of the cupholder, perform a 180 at which point I saved what was left of it with my left hand (conveniently still at 12 o'clock from the turn). Needless to say, I coked everywhere. I think I got most of it up...I hope, dried coke is so painful to get rid of, especially in random crevices in a car. I didn't keep drinks in my cars for a while (ok mostly because I didn't have cupholders during those years), but I think if I just make an honest effort to drive less spiritedly with a drink in the car I'll be fine...or if high g-force cup holders became an option on most cars :)
Tis all for now folks, I'm going to step away from the computer for a few and then get back to work.
As I mentioned in my last blog, my chip for my ASIC class works. A couple of you were asking what the chip does, so I'll entertain with a brief description. Basically the chip reads from a 10MB text file into a memory and scans through the text file stored in memory for words. Whenever it finds a word, it searches through a 1MB text file pulled into another memory to see if it can find a match. If a match is found, the word is then written to a third memory (1MB in size) and the process continues.
I employed a pipelined design for my project, with 12 major stages. Out of time constraints, I only kept one operation in flight at a time, but I made it flexible enough so that if I had more time keeping more than one operation in flight would not be a difficult thing to add. I was mainly focused on getting the thing to work by its deadline :)
The project seems relatively simple, but what complicates things is the fact that the memory interfaces are all of different widths. The text memory (10MB) bus is 256-bits wide, the dictionary memory (1MB) bus is 64-bits wide and the output memory (1MB) is 16-bits wide.
My total design was about 25,000 gates (assuming a 4:1 transistor to gate ratio, the design was probably under 100K transistors), and unfortunately I don't know the net size for the Verilog libraries I was using otherwise I would be able to report die area. I didn't do much space optimization in my design, again as I was mostly interested in functionality, but the project did give me the opportunity of dealing with the balancing act that designers must face when they are bridging multiple buses. The graphics guys have this pretty bad as they have a very wide and fast memory bus (tens of gigabytes per second) yet a relatively narrow and slow connection to the outside world (until PCI Express comes around). It was fun, especially once I got it working, but I'm glad that it's over. It'll be completely over tomorrow night when I finish my demonstration of the chip and its functionality to the TA and turn in my report.
My ASIC professor is considering dropping the final because of the difficulty of the project, which would definitely be appreciated. I'm pretty much ready to be done with everything at this point, too bad I still have at least 3 finals to worry about and one last compiler project before May 11th.
I'm pretty beat from this week already, but before I go (not to bed, but to compiler homework) I will provide closure in the form of an explanation of the title of tonight's blog:
I would like to petition for high g-force cup holders in cars that are driven "spiritedly." My reasoning being an experience I had earlier tonight. I was driving with a drink securely in the cupholder, I took a hard right turn thinking that the drink would stay put (my left hand was at 12 o'clock), the drink proceeded to fly up and out of the cupholder, perform a 180 at which point I saved what was left of it with my left hand (conveniently still at 12 o'clock from the turn). Needless to say, I coked everywhere. I think I got most of it up...I hope, dried coke is so painful to get rid of, especially in random crevices in a car. I didn't keep drinks in my cars for a while (ok mostly because I didn't have cupholders during those years), but I think if I just make an honest effort to drive less spiritedly with a drink in the car I'll be fine...or if high g-force cup holders became an option on most cars :)
Tis all for now folks, I'm going to step away from the computer for a few and then get back to work.
26 Comments
View All Comments
Bobby - Tuesday, May 11, 2004 - link
Anand come back, you haven't blogged in quite a few days! Or at least promise that when school is over you will tend to this blog often, I for one enjoy it very much.Justin - Friday, May 7, 2004 - link
yea i'm looking at long-term benefits here with reduced hardware costs. I know I sure do love patching IIS every 3 days..."thousands upon thousands"? come on now. i've written a good number of content management systems and, while I'm not downplaying anything that has gone on here, quite honestly they aren't *that* complicated.
At least with PHP (or even perl if you wanted), you aren't locked into one platform.
not trying to start a war here, just offering my opinions.
UlricT - Wednesday, May 5, 2004 - link
Heyy anand,Wa wondering how your exams are gfoing... I just finished my junior year exams, and it feels great to have 3 months off the grind :D
Anonymous - Friday, April 30, 2004 - link
Oh, I forgot to mention, the processor design lab is separate from the 4th year design project that we do.Anonymous - Friday, April 30, 2004 - link
I'm at Queen's University in Kingston, Ontario in computer engineering. Our program included an in-depth hardware design course.The lab component that course involved building an 8-bit processor using Quartus and VHDL. The lab section of the course used to be done in 4th year, but due to schedualing it has been moved to 3rd year without much change.
Anonymous - Friday, April 30, 2004 - link
#7: AnandTech already runs on Windows servers if you couldn't tell. If would take lots of man power to convert thousands upon thousands of ASP technologies and pages to php. I don't think its possible now.Anonymous - Thursday, April 29, 2004 - link
Anonymous #1 has Anand envy. Similar to penis envy.Oh, and keep up the good work Anand, this site is absolutely invaluable.
Anonymous - Thursday, April 29, 2004 - link
As far as the high G cup holder is concerned, they should make one based on a microphone shockmount: http://www.sweetwater.com/images/items/EA1MT-large...hmm_not_sure - Thursday, April 29, 2004 - link
To #3:Take a look again at some of the programs across Canada. From what I've seen, almost all of the major universities in Canada offer a major design project in your final year. I just completed mine, and we had to designed a full fledged 5 stage CPU.
Justin - Thursday, April 29, 2004 - link
why are you guys switching .NET? have you looked at possibly using PHP/Apache/creative-caching to serve up pages? probably would reduce your server requirements quite a bit from the resource hungry IIS/CF/.NET setup you are currently running. (see shacknews.com, they serve up tons of PHP/cached-html pages with only two servers)