h******g 发帖数: 36 | 1 向版上有经验的大神求助。某大公司面试时候问了我Blocking和Non Blocking的区别。
很常见的题,但是答得很烂,我就说 一个会堵塞下面语句执行,一个不会;一个用在
comb,一个用在seq。
回头想想,自己说的都是很浅的层面,或者是自己根本没理解,于是google了一些资料
,发现回答这个问题能将很深。
想问问各位前辈,这个问题要答多深才会让面试官满意?是否要从 逻辑综合,仿真器
的schedule simulation,等各个层面解释一遍,还需要举几个代码的例子么。。。把
哪几个点答到了才算good呢?
多谢多谢~~ |
h******g 发帖数: 36 | |
s*****r 发帖数: 152 | 3 If you can answer that question by explaining how simulator schedules the
event, that should be good enough.Of course, if you can give some examples,
that will be always good. |
f*****8 发帖数: 810 | 4 会有串行和并行执行的区别吧。综合出来的电路差异大
【在 h******g 的大作中提到】 : 向版上有经验的大神求助。某大公司面试时候问了我Blocking和Non Blocking的区别。 : 很常见的题,但是答得很烂,我就说 一个会堵塞下面语句执行,一个不会;一个用在 : comb,一个用在seq。 : 回头想想,自己说的都是很浅的层面,或者是自己根本没理解,于是google了一些资料 : ,发现回答这个问题能将很深。 : 想问问各位前辈,这个问题要答多深才会让面试官满意?是否要从 逻辑综合,仿真器 : 的schedule simulation,等各个层面解释一遍,还需要举几个代码的例子么。。。把 : 哪几个点答到了才算good呢? : 多谢多谢~~
|
t*****3 发帖数: 81 | 5 我觉得从使用语言的角度,LZ的解释足够了。没必要一定要把prepond/active/
reactive/postpond那几个zone都一一解释清楚。当然最好可以结合一个flip-flop赋值
的例子来显示blocking/non-blocking的区别。 |
c*********l 发帖数: 1065 | 6 差异可大了发了,你不用片上逻辑分析仪感觉不到,做高速同步逻辑这写法可敏感去了
【在 f*****8 的大作中提到】 : 会有串行和并行执行的区别吧。综合出来的电路差异大
|
h******g 发帖数: 36 | 7 very helpful 感谢
,
【在 s*****r 的大作中提到】 : If you can answer that question by explaining how simulator schedules the : event, that should be good enough.Of course, if you can give some examples, : that will be always good.
|
h******g 发帖数: 36 | 8 明白,谢谢!
【在 t*****3 的大作中提到】 : 我觉得从使用语言的角度,LZ的解释足够了。没必要一定要把prepond/active/ : reactive/postpond那几个zone都一一解释清楚。当然最好可以结合一个flip-flop赋值 : 的例子来显示blocking/non-blocking的区别。
|
f*****8 发帖数: 810 | 9 会有串行和并行执行的区别吧。综合出来的电路差异大
【在 h******g 的大作中提到】 : 向版上有经验的大神求助。某大公司面试时候问了我Blocking和Non Blocking的区别。 : 很常见的题,但是答得很烂,我就说 一个会堵塞下面语句执行,一个不会;一个用在 : comb,一个用在seq。 : 回头想想,自己说的都是很浅的层面,或者是自己根本没理解,于是google了一些资料 : ,发现回答这个问题能将很深。 : 想问问各位前辈,这个问题要答多深才会让面试官满意?是否要从 逻辑综合,仿真器 : 的schedule simulation,等各个层面解释一遍,还需要举几个代码的例子么。。。把 : 哪几个点答到了才算good呢? : 多谢多谢~~
|
a*********e 发帖数: 228 | 10 The difference is mainly on simulation. whether you use blocking or non-
blocking, the logic that got synthesized is the same. However, because of
the the simulator has to simulate concurrent, at the same time slot,
multiple events have to be scheduled in some pre-defined order. Per verilog
standard, the non-blocking RHS will be evaluated first, and then the LHS
assignment is done next. This behavior will simulate the pipeline behavior
in reality. While the blocking assignment will have RHS evaluated and LHS
assignment done at the same time, and different blocking assignment could be
evaluated in any order, there is no guarantee. Therefore, it could cause
mismatch between the behavior and gate simulation results.
【在 h******g 的大作中提到】 : 向版上有经验的大神求助。某大公司面试时候问了我Blocking和Non Blocking的区别。 : 很常见的题,但是答得很烂,我就说 一个会堵塞下面语句执行,一个不会;一个用在 : comb,一个用在seq。 : 回头想想,自己说的都是很浅的层面,或者是自己根本没理解,于是google了一些资料 : ,发现回答这个问题能将很深。 : 想问问各位前辈,这个问题要答多深才会让面试官满意?是否要从 逻辑综合,仿真器 : 的schedule simulation,等各个层面解释一遍,还需要举几个代码的例子么。。。把 : 哪几个点答到了才算good呢? : 多谢多谢~~
|