这两种写法都不会出现问题。
但是如果改成
就会报出如下错误
主要看10200这个错误提示:
cannot match operand(s) in the condition to the corresponding edges in the enclosing event control of the always construct
不能做到条件操作边缘模块和always中的边缘控制模块匹配,主要原因有人讲了,可以去找一下。大意就是always模块中,有一个必须是时钟模块,且该信号不能出现always的过程结构模块中,那可能出现的另一个信号,例如图中的rst信号就得是异步控制信号,在always过程语句中必须给与说明,就是if语句。
这里是if语句中为什么一定要negedge对应rst == 1'b0,posedge是rst == 1'b1?就negedge来举例,作为异步控制信号,必须能够直接表达异步控制的能力,negedge是检测下降沿,那控制它就显而易见由高变低,可以达到异步的控制,if模块可以直接响应,若是采用rst == 1'b1,那么此时仅能依靠时钟边缘才使得if模块响应。文章来源:https://www.toymoban.com/news/detail-596010.html
还有另外一个可能会出现这个报错的原因,就是现有的工程,设置错了芯片型号,导致IP核无法综合。文章来源地址https://www.toymoban.com/news/detail-596010.html
到了这里,关于Error (12152): Can‘t elaborate user hierarchy的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!