verilog 中if

您所在的位置:网站首页 if语句嵌套if语句 verilog 中if

verilog 中if

2023-09-20 05:26| 来源: 网络整理| 查看: 265

在用verilog做设计时,经常会用到if-else语句,对于复杂逻辑采用该语句,经常嵌套很多if-else。if-else嵌套过深,会导致很多危害,其中之一就是两个D触发器之间的组合逻辑过多。导致时序的Tsu建立时间紧张。以下面的代码为例,我们看看过深的if-else,到底综合出了什么。

部分代码:

对于ModeSelect的条件判断,嵌套了4层if-else,我们看看综合出来了的东西。

综合RTL级:

分析:

ModeSelect的D触发器输出后,直接是3个比较器,分别和0、1、2进行比较,之后就是4个选择器,分别是TriggerSignal~0,TriggerSignal~1,TriggerSignal~2,TriggerSignal~3。if-else的第一个条件enable位于最后一个选择器TriggerSignal~3的上。ModeSelect==0的条件位于倒数第二个选择器TriggerSignal~2上。ModeSelect==1的条件位于倒数第三个选择器TriggerSignal~1上,ModeSelect==2的条件位于倒数第一个选择器TriggerSignal~0上。if嵌套越多,选择器级联越多。选择器的级联是组合逻辑,组合逻辑越多,输出传输所需要的时间就越多,留给时序建立的时间就越小,很容易造成时序不满足要求。

总结:

在时序代码的设计中,if-else的嵌套深度要求尽可能小。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3