Discrete FPGA DAC project

Markw4,
Tnx, I know the theory.
In my case, the dominating noise is ground noise of the 16-tap FIRDAC.
The reference noise is only a quoter of micro volt RMS in 20-20k.
I tried much noisier reference, filtered with RC 20k&22uF, the result was only a little worse, almost unnoticeable.
Sorry, сan’t answer with more details, being busy at work.
 
The entire DAC has been fitted into tiny 48-QFN Gowin Semiconductors GW1N-LV9QN48C6/15.
Maximal clock rate is 50MHz, no timing errors, it was lab-tested with Tang-nano 9k evaluation board.
It’s nice to have inexpensive second source for obsolete Spartan-6 FPGA.
 
  • Like
Reactions: pinnocchio
The problem is that ISE14.7 development tool for S6 is not properly supported.
I spent days tuning the software and hacking Windows 11 registry to make it somehow working.
Extended support means nothing, you have to use old Linux or WMware+Win7 or XP to run full featured ISE.
And it runs 10 times slower than Gowin development tools and no chance of supporting System Verilog and other things. Think twice before using S6 for the new development.
 
Last edited:
The Vivado Tools, supporting S7 are monstrous - about 120GB to download. You have to redo Time Closure in completely different style, it is a big chunk of the development. And all decent S7 FPGA are only BGAs. Other than listed it is a good choice.
 
  • Like
Reactions: Brijac
When using an FPGA as a discrete DAC, some hacking is required to use the cells efficiently. Such methods are not allowed in high-level systems like Vivado. It's similar to writing code in assembly rather than C. ISE 14.7 is an older system, so it will enable you to specify cell locations. ISE 14.7 is compatible only with Spartan-6 and some Artix-7 devices (e.g., xc7a100). It's a good idea to buy a used PC with Windows 7. For something like the xc6slx9, you can create the necessary files (mcs) in about 10 minutes. The xc7a100 is a much larger FPGA than the xc6slx9, so it takes a bit more time but less than an hour. I think ISE 14.7 is a DIY-friendly system.
 
The modulation of the noise floor is essential characteristic for 1-bit output, because power of signap+noise=const.
So if signal is changing the noise has to be correlated. I know the only remedy - really huge loop gain. Otherwise come along with multi-bits, having horrible issues with differential nonlinearities, DEM, DWA handicaps.
hi,ska: how to make a transformer loop filter with a really huge loop gain