Well, I published chapter 6 of "FPGAs?! Now What?" back on Aug 30, 2011. And today I'm finally delivering chapter 7 with all the personal anticipation usually associated with the end to a bout of constipation.
This chapter covers how to use the internal RAMs of an FPGA, and also discusses how to read and write to an external SDRAM. I always have trouble writing about RAMs. I can remember procrastinating for months on the memory chapter for the "Pragmatic Logic Designer" book back in 2000. That one was 56 pages, while this current chapter is a paltry 39 pages. Of course, I'm still not done writing about memories so I might beat the record in a chapter or two.
It's not like I was sitting around over the past six months: I designed and released the StickIt! boards and built a prototype for a new version of the XuLA board. But I started getting that pressured feeling back in December that I'd better get back to work on the book. I wrote a few example designs and roughed in the major chapter sections, but I never achieved escape velocity.
I took up the chapter again about 2-1/2 weeks ago and gave it my highest priority so I could finally push this thing out. (Well, second-highest priority; afternoon naps really have to come first.) And I'll tell you that after a six month hiatus, it was like trying to finish a book someone else had started: "Where do I begin? What does the reader already know? Is cursing allowed? How do I format code listings? Oh God, is that a gerund or a present participle?!"
But I persevered and today I was greeted with a satisfying "plop" as this steaming turd was flushed out onto the web for everyone (anyone?) to read. It ain't Hemingway but, as Stephen King once said to his critics, "I'm trying as hard as I can!" If you don't like it, tell me how to make it better. Or, better yet, re-write it yourself. It's open source for a reason, ya know. And remember that all the source files for this book - including the FPGA projects - are available at Github.