k2w2yut
Newbie level 4

Hello,I am a newbie of FPGA and Verilog
My project is build simple 16-bit Pipeline CPU base on MIPS Architecture
I use separated Instruction Memory and Data Memory each have a 8-bit address and 16-bit data width
So because of 2 big memory array I use the block ram by make my module to read and write in synchronous mode driven by clock.
After I implement some stuff like data forwarding,branch predictor and test in simulation and use the clock that generate from built-in clock generator in spartan3 board I got
50 MHz for memory(Instruction and Data)
25 MHz for CPU(by using clock counter)
after that I want to test my design to get the highest clock that it can work on and use DCM
so I got the 40 MHz, then I improve my design and by the synthesize report I already acquire less timing constraint than before, But I cannot add more frequency to both CPU and Memory
and It stuck at 40MHz for CPU and 50MHz for Memory
My project is build simple 16-bit Pipeline CPU base on MIPS Architecture
I use separated Instruction Memory and Data Memory each have a 8-bit address and 16-bit data width
So because of 2 big memory array I use the block ram by make my module to read and write in synchronous mode driven by clock.
After I implement some stuff like data forwarding,branch predictor and test in simulation and use the clock that generate from built-in clock generator in spartan3 board I got
50 MHz for memory(Instruction and Data)
25 MHz for CPU(by using clock counter)
after that I want to test my design to get the highest clock that it can work on and use DCM
Code:
wire clkFXa, clka, locked1;
DCM dcm1 (.CLKIN(clock), .RST(1'b0), .CLKFB(), .CLK0(), .CLKDV(), .CLKFX(clkFXa), .LOCKED(locked1));
defparam dcm1.CLK_FEEDBACK = "NONE";
defparam dcm1.CLKFX_MULTIPLY = 4;
defparam dcm1.CLKFX_DIVIDE = 5;
defparam dcm1.CLKIN_PERIOD = 20;
BUFG buf1 (.I(clkFXa), .O(clka));
so I got the 40 MHz, then I improve my design and by the synthesize report I already acquire less timing constraint than before, But I cannot add more frequency to both CPU and Memory
and It stuck at 40MHz for CPU and 50MHz for Memory