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:
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:
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:
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' 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' 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:

