if just want to learn FPGAs then
If you want to hang up the soldering iron for a while then
get a Digilent Basys3
else
get a Terasic DE0 Nano or Digilent Arty
end if
else if you want three times the scope for learning or you need high performance CPU for your design then
If you want to hang up the soldering iron for a while then
get a Digilent Zybo
else
get a Terasic DE0 Nano SoC
end if
end if
Or if you are feeling edgy, just get at $10 prototyping board:
http://www.cypress.com/documentation/development-kitsboards/cy8ckit-059-psoc-5lp-prototyping-kit-onboard-programmer-andIt can drive a monitor at 800x600@75Hz (probably higher) with the internal clock to run the pixel clock at 50MHz thanks to the built in PLL with no visible jitter (unless you are using a scope, then there is plenty of jitter even after 100ms, unless you use a XTAL or an external clock source)
(Clocked with internal IMO) no XTAL or external clock.
Sure you could do TMDS with 10 bits per pixel requiring a 500MHz pixel clock but Analog is not dead, just yet, Mike
I'm in the midst of writing a tutorial to make a display with that prototyping board (it even has an USB device to hook it anywhere.
With the limitation of a 64K frame buffer.
True, not really doing HDMI but even at 25.175MHz pixel clock 640x480 @60Hz it will require a 251.75MHz clock using DVI-D or HDMI. Might be able to get the 25MHz LVDS data out of this thing (80MHz rated) but not sure I could do the 10 bit per pixel.
BTW the Arm Cortex M3 is just doing this:
#include <project.h>
int main()
{
H_CTRL_Start();
V_CTRL_Start();
H_SYNC_Start();
V_SYNC_Start();
CyGlobalIntEnable; /* Enable global interrupts. */
/* Place your initialization/startup code here (e.g. MyInst_Start()) */
for(;;)
{
/* Place your application code here. */
}
}
Don't need the interrupts for this code yet, but I will so I left the interrupt enable in.
Anyways, the ARM is just doing nothing at all (yet).
The display part is all implemented by programmable hardware so I just need to initialize the corresponding modules.
Of course I'm not done yet. 800x600 is 480,000 pixels so it's going to be character based (until I put some external memory which I did ordered)
At the moment and not close to be done with the tutorial write-up. I'm generating the pixel pattern by hardware as well. Eventually it would be a DMA transfer and maybe even an ADC for a simple scope (200KHz using the 1MSPS ADC)
Edit: capture of the existing schematic that drive the video (with no software overhead "YET", because that will come later on):
You can write Verilog modules (no VHDL I'm afraid) to make custom component modules without using the Arm processor resources. Has both programmable analog and digital sections.
I did get the DE0-Nano-SOC but to tell you the truth, I find this cheaper little board more exciting.
Btw, it can take several rails and do level translations as well. Did not play with that so no idea on the bus speeds doing so.
Can handle full speed USB device as well 12Mbps, etc...
Edit: I forgot, power consumption on this thing is at least 2 orders of magnitude less than an FPGA, maybe 3 but didn't look at the datasheets.
According to the polar bears (someone gave me this device in this forum, thank you) it's only consuming half a watt (4.92V at 0.1 Amps) Edit, those are the readings on that device so it's probably a bit more than 0.1 Amps (0.10366 according my calculator)
excuse the other dev kits in the way, gotta find a place to put them away without forgetting I have them
Edit: Forgot to ad, I'm using this R2R VGA PS2 module with 3 bits per color:
http://www.ebay.com/itm/VGA-PS2-Board-Accessory-Test-Module-for-VGA-PS2-Control-Connector-Interfaces-/251031101624http://www.wayengineer.com/wx-vga-ps2-board-testing-vga-ps2-interfaces-p-2292.htmlhttp://www.waveshare.com/product/VGA-PS2-Board.htmNot current pin configuration: