比较器综合问题
时间:10-02
整理:3721RD
点击:
比如两段代码
1、@ pos clk
if(cnt == 3'b101)
……
2、@ pos clk
if(cnt < 3'b101)
……
在综合时,不论写成第一段或第二段代码,都综合为一个带有等于,大于,小于输出端的比较器。
还是说,对于第一段代码就综合为一个判断等于的比较器,对于第二段代码生成一个判断小于功能的比较器。
因为等于功能的判断电路比小于功能逻辑简单,面积小,如果是第二种综合方法,那我的代码可以都改为(cnt==3’b101)的操作
1、@ pos clk
if(cnt == 3'b101)
……
2、@ pos clk
if(cnt < 3'b101)
……
在综合时,不论写成第一段或第二段代码,都综合为一个带有等于,大于,小于输出端的比较器。
还是说,对于第一段代码就综合为一个判断等于的比较器,对于第二段代码生成一个判断小于功能的比较器。
因为等于功能的判断电路比小于功能逻辑简单,面积小,如果是第二种综合方法,那我的代码可以都改为(cnt==3’b101)的操作
你写成什么样子,就会综合成什么样子,< 只会综合出小于的逻辑。 =只会综合出相等状态下的逻辑。
后端来看 < 所占用的面积比=要多
前端来看 < 比较严谨, 比如当状态机跑飞时,cnt值被设置在一个不能跳转出去的值,bug就产生了。
谢谢小编解答