No, they definitely aren't funny. I've worked with FPGAs and DDR controllers at college and their can be a big PITA. Even with DDR controller libraries you can still run into all sorts of timing issues.
No, they definitely aren't funny. I've worked with FPGAs and DDR controllers at college and their can be a big PITA. Even with DDR controller libraries you can still run into all sorts of timing issues.
1. You start to wonder how very, very far your code runs from the theoretical capabilities of the hardware and you start experiencing existential doubts.
2. You are overcome by a deep and immense feeling of gratitude towards whomever managed to force all that complexity to remain hidden underneath the simple memory abstraction your rely on to write day to day code.
Found this PDF from Samsung regarding the DDR4 interface itself:
https://www.samsung.com/semiconductor/global.semi/file/resou...
(The JEDEC DDR4 spec is $284 to download...)
Also, is it anything like http://www.visual6502.org/JSSim/?
The impression I got, esp by 28nm, is the hardware is inherently broken in quite a few ways. They have to correct the masks with algorithms, they do image recognition on circuits to spot patterns that act up, extra latches, variance across the chip/wafer, aging effects... list goes on. Miracle they even work at all.
These things are also why I only trust old nodes for security. Sort of.
(but this observation is generic for all FPGA-stuff really, it seems easy first, it's just another language etc.. but you need to learn timing analysis and constraints and optimization to use it for real)
Spartan-6 does not.
But Xilinx has a MIG (memory interface generator) that automatically creates the RTL for a memory controller that synthesizes to regular core logic.
In addition, it also has IO cells with posedge and negedge FFs and calibrated delay lines.
Getting the DDR DRAM to work on the Pano G2 shouldn’t be too hard. (Less hard than the G1, which has DRAM that isn’t supported by the MIG.)
I really should get the DRAM working on the G2. How hard could it be?
Just got it up and running with a 125MHz clock and the Xilinx MIG (memory interface generator.)
I used a similar DDR2 memory (MT47H64M16 I think) on a Cyclone III a few year ago. Using the ALTMEMPHY from Altera it was not to difficult to make it work. Then later we got a new batch of cards witch would randomly fail. The problem was that DDR had been switched from Micron to an equivalent from Samsung. But the timing must have been just different enough to cause random fails. So yes DDR2 memories can be tricky.
Many years ago at University I used Leon and grlib for a project. It was a nice processor and IP library. I would like to use it again.
[1] https://www.xilinx.com/support/documentation/data_sheets/ds1...