Skip to main content
added 17 characters in body
Source Link

While designing PISO (parallel in serial out) in Xilinx Vivado using Verilog, the output waveform of the behavioral simulation (RTL-level, pre-synthesis) shows correct (desired output) value but post-synthesis or post-implementation functional or timing simulation is showing some unexpected results (0 as output). There is a high frequency noise present at the new clock(slow)at near both edges in the simulation which is the main problem. How to eliminate this noise now? Is there any way to debug post synthesis level netlist? I have included my source code as:

The noise present at my new clock(slow) is shown: This is post synthesis simulation resultThis is post synthesis simulation result

While designing PISO (parallel in serial out) in Xilinx Vivado using Verilog, the output waveform of the behavioral simulation (RTL-level, pre-synthesis) shows correct (desired output) value but post-synthesis or post-implementation functional or timing simulation is showing some unexpected results (0 as output). There is a high frequency noise present at the new clock(slow)at both edges in the simulation. How to eliminate this noise now? Is there any way to debug post synthesis level netlist? I have included my source code as:

The noise present at my new clock(slow) is shown: This is post synthesis simulation result

While designing PISO (parallel in serial out) in Xilinx Vivado using Verilog, the output waveform of the behavioral simulation (RTL-level, pre-synthesis) shows correct (desired output) value but post-synthesis or post-implementation functional or timing simulation is showing some unexpected results. There is a high frequency noise present at the new clock(slow)at near both edges in the simulation which is the main problem. How to eliminate this noise now? Is there any way to debug post synthesis level netlist? I have included my source code as:

The noise present at my new clock(slow) is shown: This is post synthesis simulation result

added 618 characters in body
Source Link

While designing PISO (parallel in serial out) in Xilinx Vivado using Verilog, the output waveform of the behavioral simulation (RTL-level, pre-synthesis) shows correct (desired output) value but post-synthesis or post-implementation functional or timing simulation is showing some unexpected results (0 as output). I don't know what went wrong as there were no warnings duringThere is a high frequency noise present at the new clock(slow)at both edges in the simulation. What should I doHow to eliminate this noise now? Is there any way to debug post synthesis level netlist? I have included my source code as:

module PISOleft( input clk,  input rst, input [3:0]din, output reg dout, (    ); reg [3:0]temp; reg input[25:0]temp1; reg clk,slow1; reg slow;     input rst,     input [ 3: 0 ] din, initial output reg dout, begin output reg nc  );  temp1=26'd0; reg [ 3: 0 ] temp; reg [ 25: 0 ] temp1; reg slow; initial begin  temp1 = 26'd0;  slow = 1'b0;slow1=1'b0;  end    always@( posedge clk ) temp1 <= temp1 + 1; temp1<=temp1+1;  always @( temp1 )  begin if ( temp1 == 26'b10111110101111000010000000 )  if(temp1==26'b10111110101111000010000000)//clock divided by 50Mhz   begin   slow <= slow + 1; slow1<=slow1+1;   end end else  begin always@( slow ) slow1<=slow1; begin end nc = slow; slow<=slow1;  end      always @( posedge slow )  // speed  begin if ( rst == 1'b1  if(rst==1'b1)  // condition   begin dout <= 0; dout<=0; temp <= din; temp<=din;   end   else   begin dout <= temp[ 3 ]; dout<= temp[3]; temp <= { temp[ 2: 0 ], 1'b0  temp<={temp[2:0],1'b0};   end  end  endmodule 
 [Synth 8-327] inferring latch for variable 'slow_reg'  

The noise present at my new clock(slow) is shown: This is post synthesis simulation result

While designing PISO (parallel in serial out) in Xilinx Vivado using Verilog, the output waveform of the behavioral simulation (RTL-level, pre-synthesis) shows correct (desired output) value but post-synthesis or post-implementation functional or timing simulation is showing some unexpected results (0 as output). I don't know what went wrong as there were no warnings during simulation. What should I do now? Is there any way to debug post synthesis level netlist? I have included my source code as:

module PISOleft (   input clk, input rst,  input [ 3: 0 ] din,  output reg dout, output reg nc  );  reg [ 3: 0 ] temp; reg [ 25: 0 ] temp1; reg slow; initial begin  temp1 = 26'd0;  slow = 1'b0; end   always@( posedge clk ) temp1 <= temp1 + 1; always @( temp1 ) begin if ( temp1 == 26'b10111110101111000010000000 ) //clock divided by 50Mhz begin slow <= slow + 1; end end always@( slow ) begin nc = slow; end always @( posedge slow ) // speed begin if ( rst == 1'b1 ) // condition begin dout <= 0; temp <= din; end else begin dout <= temp[ 3 ]; temp <= { temp[ 2: 0 ], 1'b0 }; end end endmodule 
 [Synth 8-327] inferring latch for variable 'slow_reg'  

While designing PISO (parallel in serial out) in Xilinx Vivado using Verilog, the output waveform of the behavioral simulation (RTL-level, pre-synthesis) shows correct (desired output) value but post-synthesis or post-implementation functional or timing simulation is showing some unexpected results (0 as output). There is a high frequency noise present at the new clock(slow)at both edges in the simulation. How to eliminate this noise now? Is there any way to debug post synthesis level netlist? I have included my source code as:

module PISOleft( input clk,  input rst, input [3:0]din, output reg dout,  ); reg [3:0]temp; reg [25:0]temp1; reg slow1; reg slow;        initial  begin  temp1=26'd0; slow1=1'b0;  end  always@(posedge clk)  temp1<=temp1+1;  always @(temp1)  begin   if(temp1==26'b10111110101111000010000000)//clock divided by 50Mhz   begin    slow1<=slow1+1;   end  else  begin  slow1<=slow1;  end  slow<=slow1;  end      always @(posedge slow)  // speed  begin   if(rst==1'b1)  // condition   begin  dout<=0;  temp<=din;   end   else   begin  dout<= temp[3];   temp<={temp[2:0],1'b0};   end  end  endmodule 
 [Synth 8-327] inferring latch for variable 'slow_reg' 

The noise present at my new clock(slow) is shown: This is post synthesis simulation result

Improve title, completely reformat code with automated formatter, improve question text formatting
Source Link

In VIVADOXilinx Vivado, Behavioral simulation showing correct output but post synthesismismatch between behavioral and implementation not. (0 as output)post-synthesis implementations

While designing PISO  (parallel in serial out) in Xilinx Vivado(XILINX) using verilogVerilog, the output waveform of the behavioral simulation (RTL-level, pre-synthesis) shows correct  (desired output) value but post-synthesis or post-implementation functional or timing simulation is showing some unexpected results  (0 as output). I don't know what went wrong as there were no warnings during simulation. What should I do now? Is there any way to debug post synthesis level netlist? I have included my source code as:

module PISOleft( input clk,  input rst, input [3:0]din, output reg dout, ( output reg nc  ); reg [3:0]temp; reginput [25:0]temp1;clk, reg slow;  input rst, input initial [ 3: 0 ] din,  output reg begindout,   output reg temp1=26'd0;nc   ); reg [ 3: 0 ] slow=1'b0;temp;  reg [ 25: 0 ] temp1; reg slow; initial begin  temp1 = 26'd0;  slow = 1'b0; end    always@( posedge clk )   temp1 <= temp1 + temp1<=temp1+1;1;  always @( temp1 )  begin if ( temp1 == 26'b10111110101111000010000000 if(temp1==26'b10111110101111000010000000) //clock divided by 50Mhz   begin slow <= slow + slow<=slow+1;1;   end  end    always@( slow )  begin   nc nc== slow;   end         always @( posedge slow )  // speed  begin if ( rst == 1'b1 ) if(rst==1'b1) // condition   begin   dout <= dout<=0;0;   temp <= temp<=din;din;   end   else   begin   dout <= temp[ dout<=3 temp[3];];   temp <= { temp[ 2: 0 temp<={temp[2:0]], 1'b0 };   end  end   endmodule 

The warning iI am getting at synthesis is:

In VIVADO, Behavioral simulation showing correct output but post synthesis and implementation not. (0 as output)

While designing PISO(parallel in serial out) in Vivado(XILINX) using verilog, the output waveform of the behavioral simulation (RTL-level, pre-synthesis) shows correct(desired output) value but post-synthesis or post-implementation functional or timing simulation is showing some unexpected results(0 as output). I don't know what went wrong as there were no warnings during simulation. What should I do now? Is there any way to debug post synthesis level netlist? I have included my source code as:

module PISOleft( input clk,  input rst, input [3:0]din, output reg dout, output reg nc  ); reg [3:0]temp; reg [25:0]temp1; reg slow;  initial  begin   temp1=26'd0;   slow=1'b0;   end    always@(posedge clk)   temp1<=temp1+1;  always @(temp1)  begin if(temp1==26'b10111110101111000010000000)//clock divided by 50Mhz   slow<=slow+1;   end    always@( slow)  begin   nc= slow;   end         always @(posedge slow) // speed  begin if(rst==1'b1) // condition   begin   dout<=0;   temp<=din;   end   else   begin   dout<= temp[3];   temp<={temp[2:0],1'b0};   end  end   endmodule 

The warning i am getting at synthesis is:

In Xilinx Vivado, simulation mismatch between behavioral and post-synthesis implementations

While designing PISO  (parallel in serial out) in Xilinx Vivado using Verilog, the output waveform of the behavioral simulation (RTL-level, pre-synthesis) shows correct  (desired output) value but post-synthesis or post-implementation functional or timing simulation is showing some unexpected results  (0 as output). I don't know what went wrong as there were no warnings during simulation. What should I do now? Is there any way to debug post synthesis level netlist? I have included my source code as:

module PISOleft ( input clk, input rst, input [ 3: 0 ] din,  output reg dout, output reg nc ); reg [ 3: 0 ] temp; reg [ 25: 0 ] temp1; reg slow; initial begin  temp1 = 26'd0;  slow = 1'b0; end always@( posedge clk ) temp1 <= temp1 + 1; always @( temp1 ) begin if ( temp1 == 26'b10111110101111000010000000 ) //clock divided by 50Mhz begin slow <= slow + 1; end end   always@( slow ) begin nc = slow; end always @( posedge slow )  // speed begin if ( rst == 1'b1 ) // condition begin dout <= 0; temp <= din; end else begin dout <= temp[ 3 ]; temp <= { temp[ 2: 0 ], 1'b0 }; end end endmodule 

The warning I am getting at synthesis is:

deleted 533 characters in body; edited tags
Source Link
Loading
Fix code tags and clean up title.
Source Link
Tom Carpenter
  • 73.9k
  • 3
  • 163
  • 225
Loading
added 541 characters in body
Source Link
Loading
Source Link
Loading