首页 理论教育 FPGA系统设计中的if语句及其嵌套使用规则

FPGA系统设计中的if语句及其嵌套使用规则

时间:2023-10-20 理论教育 版权反馈
【摘要】:条件语句包含两种,一种是if语句,另一种是case语句。当我们说到if语句的时候,我们是在说if-else复合语句,else本身不能构成语句。if语句的结构如下:上面这个例子,最后这个else到底是应该对应哪个if?对于多层次嵌套的if语句,在格式上要注意多使用tab键,保证同级的if项、else项、elseif项上下对齐。实际上这段程序,这么复杂的if-else语句,综合以后的结果,先是sel1作为第一级MUX的选择控制信号,然后是sel0作为第二级MUX的选择控制信号。

FPGA系统设计中的if语句及其嵌套使用规则

条件语句包含两种,一种是if语句,另一种是case语句。这一节先介绍if语句。当我们说到if语句的时候,我们是在说if-else复合语句,else本身不能构成语句。

if语句的结构如下:

上面这个例子,最后这个else到底是应该对应哪个if?所以,在存在着多个if语句嵌套的时候,就会出现这种混乱情况。Verilog在编译的时候,默认把else与最近的没有else的if相关联,而这有时候和设计者的想法是不一样的。

对于多层次嵌套的if语句,在格式上要注意多使用tab键,保证同级的if项、else项、elseif项上下对齐。

if语句的表达式这一项,如果表达式的值为0、x或z,则认为为“假”;若表达式这一项为1,则认为为“真”。

例6.31:设计一个8-3优先编码器。

我们假设有八个输入in0~in7,三个输出out0~out2。优先的意思指的就是:输入的第七位,也就是in7的优先级最高,输入的in0的优先级最低,且低电平为有效输入。其真值表如表6.8所示:

表6.8 8-3优先编码器真值表

(www.xing528.com)

例6.32:下面这段代码,根据代码的描述,试着想象一下综合以后的电路结构。

下图是该例子综合以后的结果。

图6.1 示例综合的结果

忽略IB33和OB33PH都是pad,也就是类似焊盘的东西。一个电路的输入输出管脚在实物上,都得接到某个焊盘才能连接内部的走线。

忽略掉那么多pad以后,图中剩下的就是两级MUX,也就是2选一多路选择器。实际上这段程序,这么复杂的if-else语句,综合以后的结果,先是sel1作为第一级MUX的选择控制信号,然后是sel0作为第二级MUX的选择控制信号。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈