Hello, I see sample codes like this. It got a little weird. Each mipi_clk will have rst_cnt <= 0, but rst_cnt <=1 if the necessary conditions are met. Aren't these processes parallel?
The way that Verilog scheduling works for these non-blocking statements (<=). The RHS of the assignments are computed from top to bottom, and the assignment of these RHS results to the LHS is assigned at the end of the always block.
If a value is updated multiple times the last assignment "wins" and is assigned to the LHS.
Hello, I see sample codes like this. It got a little weird. Each mipi_clk will have rst_cnt <= 0, but rst_cnt <=1 if the necessary conditions are met. Aren't these processes parallel?
but in opposite to software code it is not written to "0" and some time later to "1" resulting in a short pulse or glitch.
It is processed at the same time, thus no glitch. Either clean "0" or clean "1" synchronized to posedge of mipi_clk.
The way that Verilog scheduling works for these non-blocking statements (<=). The RHS of the assignments are computed from top to bottom, and the assignment of these RHS results to the LHS is assigned at the end of the always block.
If a value is updated multiple times the last assignment "wins" and is assigned to the LHS.