Using a FPGA as a CAD engine


Recommended Posts

Hi Jack and Forum,


I have been experimenting with the Papilio Duo with ZPUino and VGA, as a means of producing CAD gerber files.


It's very early days - but shown is a screen shot of a LQFP-64 package, created on the ZPUino and displayed in VGA. I've added a few vias and a 4 thou track for scale.


If Chuck Moore could change the way VLSI CAD tools were used in the early 1990s - then I'm sure the Papilio Duo and ZPUino can be applied in this area.


Imagine a complete CAD workstation embedded in a mouse - it's been done before.  Here's a posting from 3/8/2000 by the late Jeff Fox - who worked with Chuck Moore on the early Forth chips


Nothing new under the sun - we just forget 99% of what's gone before us








  • Like 1
Link to comment
Share on other sites

Tech details are:


a ) RGB format 565 (16-bit)

b ) Internal, software-configurable PLL with 48MHz base clock.

c ) Up to 2048x2048 (including porches and sync). Can be extended to 4096x4096.


Your problem will be bandwidth and memory size. Full-HD resolution, for example, uses 1080p @ 60 Hz (1920x1080), with a pixel clock of  148.5MHz. This will be hard to generate with FPGA, but even harder to get the data from memory (memory is shared with CPU, so you cannot go past 60%). With 16-bit memory width, and assuming this 148.5MHz clock and 60% bw usage, you'd need to clock memory at ~300MHz (this includes latencies, so not 250MHz as expected). Too high for most memories. And you'd need at least 4MB for each framebuffer.


If you can get your color depth lower (like RGB332 or even lower), it may be possible... But will be sloooow (ZPUIno is not the fastest thing around)



Link to comment
Share on other sites





I have a Papilio Duo with a 2MB SRAM and a Logicstart shield for the VGA.


A video resolution of 1024 x 768 in RGB332 would be more than adequate for the type of applications I am thinking.   Even 4 bit colour would be acceptable for viewing pcb layouts and gerbers. This resolution would allow 100mm x 75mm pcbs to be displayed down to 0.1mm resolution - ideal for most hobbyists.


I take your point about the video clock from your other post - and how the SRAM can be the video bottleneck. 


1024x768 at 60Hz is 65MHz for RAM access  - might this be achievable?


I was thinking of ways in which tiles and sprites - stored in a character ROM, could represent the pads and tracks in a typical pcb. It's back to the old tricks of the 1980s video games - to achieve more with less.








Link to comment
Share on other sites

Ok.... RGB332 seems to be working out of the box:


Lack of color resolution is pretty much noticeable. This is a DUO board, with 2MB SRAM, and outputting a JPEG file.


But works :) note - you will need to wait for next designlab release. I made some changes to the software part to handle 16 and 8 bit.




Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.