Although there are a few exceptions, FPGAs are predominantly digital devices. However, many FPGA applications process analog data, so you often see an FPGA surrounded by analog and digital converters. This is so common that Opal Kelly — a producer of FPGA tools — launched the SYZYGY open standard for interconnecting devices like that. [Armeen] — a summer intern at Opal Kelly — did a very interesting open source FPGA-based signal generator using a Xilinx FPGA, and a SYZYGY-compliant digital to analog converter.
As you might expect, [Armeen] used a lot of Opal Kelly hardware and software in the project. But the Verilog code (available on GitHub) shows a lot of interesting things including some very practical example code for using Xilinx CORDIC IP, which is a great way to do high-order math using digital logic.
Following how the AM and FM generation works is a great introduction to signal synthesis in an FPGA. If you don’t want to use the Xilinx IP, you can find several CORDIC cores on OpenCores. Overall, this is a pretty good intermediate project if you are trying to get your head around FPGAs. It is complex enough to show you something practical but not so complex that you’ll get frustrated. Of course, a lot of the functions are wrapped up in the Xilinx IP which you can think of as being akin to using a C or Java library.
SYZYGY is a specification that is free to license, by the way. It is supposed to bridge the gap between simple PMODs and high-speed FMC boards. There’s even an open source platform board to support it. However, as far as we know, only Opal Kelly currently ships any plugins for it, so it remains to be seen how popular or unpopular it may prove.