sujithchakra
Junior Member level 1
Synthesis Problems
Hi,
I am using Xilinx XST to synthesize my design. Post-synthesis simulation is not matching pre-synthesis simulation. I figured out where the problem is. But I do not understand how to trouble shoot this.
Below is one of the always block in my design. In pre-synthesis simulation, if wb_we_i is not equal to 0, then the simulator executes the "else block" and assigns wb_dat_o with "8'bx" value. If it is 1 then simulator executes "if block". In post synthesis simulation, irrespective of the value of wb_we_i(0 or 1), the simulator executes only "if block". I do not understand why it is happening. Please help.
always @(posedge wb_clk_i)
begin
if (wb_we_i==0)
case (wb_adr_i) // synopsis parallel_case
3'b000: wb_dat_o <= prer[ 7:0];
3'b001: wb_dat_o <= prer[15:8];
3'b010: wb_dat_o <= ctr;
3'b011: wb_dat_o <= rxr; // write is transmit register (txr)
3'b100: wb_dat_o <= sr; // write is command register (cr)
3'b101: wb_dat_o <= txr;
3'b110: wb_dat_o <= cr;
3'b111: wb_dat_o <= 0; // reserved
endcase
else
case (wb_adr_i)
3'b000: wb_dat_o <= 8'bx;
3'b001: wb_dat_o <= 8'bx;
3'b010: wb_dat_o <= 8'bx;
3'b011: wb_dat_o <= 8'bx;
3'b100: wb_dat_o <= 8'bx;
3'b101: wb_dat_o <= 8'bx;
3'b110: wb_dat_o <= 8'bx;
3'b111: wb_dat_o <= 8'bx;
endcase
end
I am using ModelSim PE Verilog student edition to simulate the netlist and it is throwing an error "# ** Warning: Design size of 47649 statements or 3176 leaf instances exceeds ModelSim PE Student Edition recommended capacity.
# Expect performance to be quite adversely affected.". Is this a possible reason? Please help.
Thanks
Hi,
I am using Xilinx XST to synthesize my design. Post-synthesis simulation is not matching pre-synthesis simulation. I figured out where the problem is. But I do not understand how to trouble shoot this.
Below is one of the always block in my design. In pre-synthesis simulation, if wb_we_i is not equal to 0, then the simulator executes the "else block" and assigns wb_dat_o with "8'bx" value. If it is 1 then simulator executes "if block". In post synthesis simulation, irrespective of the value of wb_we_i(0 or 1), the simulator executes only "if block". I do not understand why it is happening. Please help.
always @(posedge wb_clk_i)
begin
if (wb_we_i==0)
case (wb_adr_i) // synopsis parallel_case
3'b000: wb_dat_o <= prer[ 7:0];
3'b001: wb_dat_o <= prer[15:8];
3'b010: wb_dat_o <= ctr;
3'b011: wb_dat_o <= rxr; // write is transmit register (txr)
3'b100: wb_dat_o <= sr; // write is command register (cr)
3'b101: wb_dat_o <= txr;
3'b110: wb_dat_o <= cr;
3'b111: wb_dat_o <= 0; // reserved
endcase
else
case (wb_adr_i)
3'b000: wb_dat_o <= 8'bx;
3'b001: wb_dat_o <= 8'bx;
3'b010: wb_dat_o <= 8'bx;
3'b011: wb_dat_o <= 8'bx;
3'b100: wb_dat_o <= 8'bx;
3'b101: wb_dat_o <= 8'bx;
3'b110: wb_dat_o <= 8'bx;
3'b111: wb_dat_o <= 8'bx;
endcase
end
I am using ModelSim PE Verilog student edition to simulate the netlist and it is throwing an error "# ** Warning: Design size of 47649 statements or 3176 leaf instances exceeds ModelSim PE Student Edition recommended capacity.
# Expect performance to be quite adversely affected.". Is this a possible reason? Please help.
Thanks