Completed the Block RAM study. Varied the RAM required from 256 bytes to 16kB in powers of 2. All other parameters were kept the same. The new M65C02 core with the Block RAM interface that I am currently changing and testing the microprogram targeting a 10ns period in a XC3S200AN-6 did not demonstrate any significant variations in performance (synthesis or MAP/PAR). Ive attached a summary of the data I gathered using ISE 10.1i SP3
Similarly, all implementation attempts satisfied the single period constraint for
all configurations:
256 x 8 9.946ns 0.054ns(Setup) 0.736ns(Hold)
512 x 8 9.958ns 0.042ns(Setup) 0.783ns(Hold)
1024 x 8 9.980ns 0.020ns(Setup) 0.730ns(Hold)
2048 x 8 9.955ns 0.045ns(Setup) 0.768ns(Hold)
4096 x 8 9.959ns 0.041ns(Setup) 0.699ns(Hold)
8192 x 8 9.976ns 0.024ns(Setup) 0.785ns(Hold)
16384 x 8 9.951ns 0.049ns(Setup) 0.831ns(Hold)
Attachment:
BRAM_Study_Summary.zip [1.23 KiB]
Downloaded 103 times
Well so much for the theory advanced earlier.
Since the registers in your core are now synthesizing into a LUT, which significantly reduces the number of slices used, you can try this experiment on your design and get a result which matches mine. In its current state, my new core is only about 580 LUTs in size, and occupies less than 20% of the XC3S200AN-5 FPGA. Thus, there is great leeway for the placer in placing the design subject to one PERIOD constraint, LOCed pins, and Block RAMs.