Or if you don't have static routable v4 address but have at least dynamically allocated v4 routable address you can use 6to4.
I use this to configure my Debian-based router to change used v6 addresses to match DHCP-allocated v4: https://gist.github.com/806333 (bit of an ugly hack)
I strongly recommend this or 6RD. It's a very straightforward and easy way of getting into IPv6 before ISPs start offering IPv6, as comcast did recently ( http://www.comcast6.net/ ).
Each user has been delegated a /64 block of approximately 18,446,744,073,709,551,616 (18 quintillion) unique IPv6 addresses.
This seems like a ridiculous number of addresses, until you realize that this basically allows for 18 quintillion users, each with 18 quintillion addresses, before we exhaust the IPv6 space.
I think /64 was the guideline for the smallest divisible network an ISP should hand out. It basically allows for a household or organization to grow indefinitely while assigning anything that can hook up to the network a real IP address, with little restrictions on topology and/or address allocation layout. No need to reuse the addresses either, just give the new device a new one.
EDIT: I forgot to add that it also allows network devices to use their 64-bit link layer (ethernet/MAC) address as a host identifier.
Actually, /64 is the smallest indivisible network. You can divide that further, but then you lose this network/host identifier split and IPv6 features that require that (stateless autoconfiguration, privacy extensions...). So in case of normal network, ISP handing out /64 restricts topology of you network in that you can have only one network (with normal end-user devices).
Using smaller networks than /64 is certainly possible, but it's not something you want to do on end-user network and it's best left only for things like point-to-point connections and intra-datacenter networks.
18 quintillion is much much bigger than you think.
The peak estimated birth rate on Earth was 173 million in the 1990s.
If 200 million people were born every year and we gave every person a /64 block, we could allocate addresses for the next 92 billion years. The sun will be long dead by the time we use up that address space.
92 billion years is a long time to imagine. Let's say we won't have a use for these addresses after the sun dies in approximately 5 billion years, so we're going to try to use them all up by giving every person 1,000 /64 blocks.
Wolfram Alpha gives the surface area of earth as 5e18 square centimeters. 2^64 is approximately 1.8e19. With a single /64 block you could put two nanobots in every square centimeter on earth. That's not really practical over the oceans, but whatever.
With 1000 /64 blocks, you could cover the earth with nanobots that take up only 0.05mm^2 of space each.
Pixels on the average computer display take up 0.055mm^2.
You could address a display that covered the surface of the entire earth with just 1000 /64 blocks, and you could make one of these display for every person born until our sun dies.
I use this to configure my Debian-based router to change used v6 addresses to match DHCP-allocated v4: https://gist.github.com/806333 (bit of an ugly hack)