The following code in the system clock sys_CLK rising along the trigger always block, using non-blocking assignment pay the value of B to A:
Always @ (posedge sys_CLK) A<=B; If the system clock sys_CLK, between the adjacent two rising along the B value from 0 to 1, that is the last rose along the moment B or 0, and before the next rising edge, has become a 1 B,
Then, in "the next rising along the" time is A value of 0 or 1? Please explain why, don't reply simple 0 or 1, thank you.
CodePudding user response:
Non-blocking assignment will join D flip-flop, so the output the result of lag one clock cycle
CodePudding user response:
reference 1st floor zgl7903 response: non-blocking assignment will join D flip-flop, so the output will be the result of the lag one clock cycle Thank you for your reply! Will be the "last" or "next" rising along the time corresponding to the value of B to join D flip-flop? CodePudding user response:
https://www.cnblogs.com/chengqi521/p/7920326.html CodePudding user response:
A rise in value will be sys_CLK along the moments before the value of B, Non-blocking refers to the A<=B; Behind this statement and the statement is executed at the same time For example, Always @ (posedge sys_CLK) A<=B C<=A Non-blocking: C values are not equal to the value of B, but A moment before the clock rising value (because nonblocking was conducted at the same time) Block: C value is equal to B value CodePudding user response:
reference 4 floor worldy response: A value will be sys_CLK rise along the moments before the value of B, Non-blocking refers to the A<=B; Behind this statement and the statement is executed at the same time For example, Always @ (posedge sys_CLK) A<=B C<=A Non-blocking: C values are not equal to the value of B, but A moment before the clock rising value (because nonblocking was conducted at the same time) Block: C value is equal to B value Thank you for reply! "Is the value of A moment before rising clock", so to speak, relative to the system clock signal B sys_CLK if is asynchronous, so my question in the topic, unless B early enough before the clock up along the time into A high level, otherwise, A value is uncertain, because the theoretical: this kind of circumstance has took the value of B, B to become A high level, and then the clock up along the arrived, I understand, right? CodePudding user response:
The reference 3 floor zgl7903 response: https://www.cnblogs.com/chengqi521/p/7920326.html Although this post is not directly answer the question, but it to explain clearly the concept of blocking the non-blocking, help me to deepen the understanding, thank you moderator! CodePudding user response:
Say A bit of professional, if B satisfy the setup time and hold time requirements, then A value is the value of B, which is 1 CodePudding user response:
reference 5 floor JSHZP reply: Quote: refer to 4th floor worldy response: A value will be sys_CLK rise along the moments before the value of B, Non-blocking refers to the A<=B; Behind this statement and the statement is executed at the same time For example, Always @ (posedge sys_CLK) A<=B C<=A Non-blocking: C values are not equal to the value of B, but A moment before the clock rising value (because nonblocking was conducted at the same time) Block: C value is equal to B value Thank you for reply! "Is the value of A moment before rising clock", so to speak, relative to the system clock signal B sys_CLK if is asynchronous, so my question in the topic, unless B early enough before the clock up along the time into A high level, otherwise, A value is uncertain, because the theoretical: this kind of circumstance has took the value of B, B to become A high level, and then the clock up along the arrived, I understand, right? Yes, you can see all the time sequence of digital circuit, are required to clock ahead, cable data stability