Hi all,
Further to the CPU I have been working on, I've moved from SRAM to SDRAM (cost being the controlling factor), If I build the CPU on it's own, all is fine, it can run at a max of 50Mhz no isses. If I build the SDRAM controller on it's own it can work at the required 133Mhz.
The primary incomming clock is 133Mhz and this is dropped down to 44.333333333Mhz using a PLL for the CPU.
The CPU is halted (internal clock cycles) if the SDRAM is either pending a read, pending a write or pending initialisation.
I've selected all the clocks as primary clocks and defined their appropriate frequencies. Of course, the router makes it own choices based on what I suggest and comes up with:
The following 3 signals are selected as primary clocks :
CP1/clk0 (driver: SLICE_749, clk load #: 344; quadrants: TL/TR/BL/BR)
CP1/decodeClk (driver: CP1/SLICE_963, clk load #: 51; quadrants: TL/TR/BL/BR)
clock_c (driver: clock, clk load #: 64; quadrants: TL/TR/BL/BR)
WARNING - The following 1 data signal has to use primary clock resource:
cpuClock (driver: dc; quadrants: TL/TR/BL/BR)
The following 1 signal is selected as DCS clock :
cpuClock (driver: dc, clk load #: 0; quadrants: TL/TR/BL/BR)
The following 3 signals are selected to use the secondary clock resources :
CP1/flagsDirectRead_15__N_188 (driver: CP1/SLICE_158, clk load #: 0, sr load #: 27, ce load #: 0)
CP1/ir_direct_out_0 (driver: CP1/SLICE_402, clk load #: 0, sr load #: 16, ce load #: 0)
CP1/loadOperandB (driver: CP1/LCTRL/SLICE_415, clk load #: 0, sr load #: 0, ce load #: 24)
Signal reset_c is selected as Global Set/Reset.
I would have put cpuClock in the mainlist of clocks but it never appears as a valid clockNet to select for setup.
I'm using Lattice Diamond by the way.
My problem is that when routing it all out I find I have a -30us setup slack and I'm trying to figure out a way to resolve this. Do any of you have any ideas or suggestions on how to resolve this issue??
Start NBR section for re-routing at 14:34:13 08/20/19
Level 4, iteration 1
0(0.00%) conflict; 0(0.00%) untouched conn; 29721127 (nbr) score;
Estimated worst slack/total negative slack<setup>: -22.216ns/-29721.128ns; real time: 1 mins 25 secs
Thanks for any help.