verilog 中if |
您所在的位置:网站首页 › if语句嵌套if语句 › verilog 中if |
在用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 |