Archives: 'Tech'

VHDL 2!

Monday, July 16th, 2007

Here’s one of the coolest parts of VHDL: Simulation! You can actually see all the little bits of your code run, visually!

Here’s an example of a basic simulation window (click to make much bigger!)

Each green line represents the state of any given signal.

**WILL FINISH LATER**

Powered by ScribeFire.

What is VHDL?

Friday, July 13th, 2007

I mentioned in my previous blog that I was writing VHDL code for a Xilinx FPGA! And by saying that, I assume you lost me completely =(.

So, let’s define the acronyms!


[[FPGA]]:
Field Programmable Gate Array

An FPGA is a customizeable piece computer chip. Usually when a chip performs a function, it is because it has little tiny circuits drawn out on its silicon. On a basic level, chips contain transistors which are combined in various ways to create gates, flip-flops, muxes, multipliers, counters, adders, and higher and higher level stuff until you get to things like memory and finally processors. In an FPGA, none of the connections between gates is set in stone. By writing code (see below) you can instruct the FPGA how to form the connections between various gates. An large enough FPGA can be made into virtually any other component (of course, with the complexities of processors these days, it would take years to program an FPGA). FPGAs can be commonly found in computers. Vendors often use them to perform special tasks. some leading manufactureres of FPGAs include Xilinx, Altera, and Lattice. Look in your computer for one of these chips! You can often find one on PCI cards, espcially ATI graphics cards, and sometimes on motherboards (look near the southbridge. It may even be the southbridge). they’re usually large, square chips without any evident pins. The chip on the right is a Xilinx FPGA.

[[VHDL]]: VHSIC Hardware Description Language (and VHSIC stands for Very High Speed Integrated Circuit, which is fancy for computer chip).

VHDL is a programming language often used to program FPGAs. It is unique in that the code itself is never run or compiled. The code is “synthesized,” or translated, into a description of how the FPGA should program itself. After the code is written, it is synthesized into a netlist of connections, which is then routed onto the FPGA, creating connections between various components to create larger units and eventually a fully functional chip. The code is quite weird, as instead of writing instructions on what you want a processor to do, you are establishing connections. Another thing, all the lines of code execute at the same time. There is no top-to-bottom order. A lot of activity occurs on “clocks”. Clocks are what control the speed. In my case, our Xilinx is running at 40 mhz (but theoretically can run over 2 ghz given the right oscillator). A 40 mhz clock “ticks” 40,000,000 times a second. That’s a lot of stuff that can happen all at once! In addition to running all at once, things often never stop!

Let’s do some example VHDL: (–is a comment)

entity sample is			--An Entity is a building block of VHDL
    port( --This will list the ports described
in signal A : std_logic; --This creates "A" as a logical (1 or 0) input.
in signal B : std_logic; --This creates "B" as a logical (1 or 0) input.
out signal E : std_logic --This creates "E" as a logical (1 or 0) output.
   );
end sample; --End description of the entity
--Now, to describe what this entity actually does!
architecture synthesis of sample is --Architecutres describes the function of an entity.
--These two signals are "interior" signals that are not connected outside the FPGA
signal C : std_logic;
signal D : std_logic;

begin
C <= A AND B; --Perform a logical AND operation (if both are 1, C becomes 1)
"<=" is the assignment operator.
D <= A OR B; --Perform a logical OR operation (if either are 1, D becomes 1)
E <= C AND D; --Perform a logical AND operation (if both are 1, E becomes 1)
end synthesis

So what is the result? If I synthesize this (I just did), it first shows me something like this:

The inputs A and B are on the left, and the sole output E is on the right. But how does it do what it does? Double clicking gives a further look!

Here you can see the gates that it made. The AND gates have straight left lines, and the OR gate has curved lines.

You can pretend to trace a signal to see what will work and what won’t. I realize now this was pretty pointless, as it only operates as an AND gate =p

Here’s the truth table anyway

Signal A 0 1 0 1
Signal B 0 0 1 1
Signal E 0 0 0 1

So, VHDL is pretty practical, but its really a pain to program in, because I’m so used to C and other PC based programming languages and its hard to deal with clocks and the idea that everything happens at once. Oh, did I mention the only allowable type of number is binary? No integers =(.

Windows bit the dust =(

Thursday, July 5th, 2007

Windows XP on my desktop decided to crap out instead of install new ATI drivers. Now, I should and could blame it on ATI/AMD, but I’m a fanboy, so I’ll blame Microsoft.

I was able to reinstall Windows on the same hard drive without wiping it, so I copied all my super-important files off before wiping the drive.

Now I’m in the recovery process, installing a huge variety of drivers, applications, and games! 191 mb of Windows Updates!

New ReRemix is out!

Wednesday, July 4th, 2007

This time, it’s of Coburn’s “We Interrupt This Program” — which is my current favorite song!

This version combines three different versions of the song, the Interrupted Vocal Mix, the Radio Edit, and the Jean Claude Ades (JCA) mix.

Here’s the link to the extended remix:
http://uploads.cuttlefishtech.com/WeInterruptThisProgram(CuttlefishTechExtendedMix).mp3

And here’s a link to the looping mix (slightly modified ending for looping madness!) for when you want to listen to the same thing for 5 hours:
http://uploads.cuttlefishtech.com/WeInterruptThisProgram(CuttlefishTechLoopingMix).mp3

Ancient CuttlefishTech Intro

Friday, June 29th, 2007

I made this when I was in the 5th grade. That makes it 6+ years old.

This was the beginning of CuttlefishTech. Enjoy the soothing sounds!



Editor’s Note: Video was deleted by YouTube when my account was banned. I’ll re-upload eventually.

Safari!

Monday, June 11th, 2007

Well! I’ve finally switched browsers! After getting fed up of Firefox and its memory leaks, slow load times, and seemingly random crashes, I’ve moved on. For a while, I thought about going to Opera, but I think Opera is bloated. If only there were another nice, non-IE browser. Well now there is!

Apple has just recently released Safari for Windows! You can download it at http://www.apple.com/safari/.

It’s really slick. It’s got the typical Mac brushed metal UI, and the nice rounded buttons. Most webpages load much faster than in Firefox, especially AJAX heavy sites like Gmail or Google Reader. It’s an altogether much more pleasant browsing experience, and for the moment, I’m glad I’ve switched! The only thing I miss about Firefox is the amount of plugins it supports, but for now the faster speeds and cleaner look outweigh this negative.

(Posted from Safari!)

More new proxies…

Tuesday, May 29th, 2007

Here’s the newest wave:

http://portal4.cuttlefishtech.com/
http://portal5.cuttlefishtech.com/
http://lol.cuttlefishtech.com/
http://www.shuddletech.com/lol/
http://www.wowgoldinfo.com/secret/

These are all domains that are attached to the site, and they’re all actually pointing to the same page. Enjoy!

Love Don’t Let Me Go

Wednesday, May 9th, 2007

I’ve created my first remix! It’s a mash-up of three songs:

  • Love Don’t Let Me Go – David Guetta
  • Walking Away – The Egg
  • Love Don’t Let Me Go (Walking Away) – David Guetta vs. The Egg

It’s kinda funny, but I made a mashup of a mashup! It’s not the best, there’s a couple rough transitions, and I’ll release a 2nd version this weekend.

Download here! (6 megs, 5:12)

Proxies Round 2!

Monday, May 7th, 2007

The school district may have won the first round, but I will strike back!

I’ve created the following:

  • http://portal.cuttlefishtech.com/
  • http://portal2.cuttlefishtech.com/
  • http://portal3.cuttlefishtech.com/

Yes, I know that they’re all the same. They’re so that when one gets blocked, it’ll be easy to move on to the next one!

It’s the new craze!

Wednesday, May 2nd, 2007

Apparently, the new cool thing to do on the internet is to post the HD-DVD encryption key. So here goes:

09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0

Haha! Take that AACS MPAA people! Here’s hoping I get a DMCA takedown notice!

For more, visit this suspiciously named website:
http://09-f9-11-02-9d-74-e3-5b-d8-41-56-c5-63.com/

Oh, and here’s a catchy song about 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0!