Wednesday, June 4, 2014

Memory woes

I've been getting up to speed on the Lattice Diamond development environment and targeting ECP3 FPGAs and I keep running across a cryptic "Done: error code 9" code when I try to synthesize my design.

Figure 1. Diamond error code reported during synthesis.

I searched around a bit and couldn't find a definition of the error code. I finally realized that the problem was related to memory usage on the PC running Diamond. I have Diamond installed on a lab PC and on a t1.micro instance in Amazon's cloud. The lab PC has been fine but the cloud instance gave the code 9 error intermittently during synthesis or mapping. I finally ran top on the command line and noticed just how low the instance's free memory was getting (less than 8MB).

I guess that I'll have to chalk this one up to me being too aggressive. I'll know better than to run Diamond on a t1.micro instance with 0.615 GB of RAM when Diamond requires 4GB for small ECP3s on a 64bit Linux box:

Figure 2. Linux memory requirements for Diamond 3.1 (from the Diamond Linux installation guide).

No comments: