【Verilog】强基础,if else 语句,以及综合RTL

对比两种写法,以及其RTL

写法1

bash 复制代码
module zaza(
    input              clk	 ,
	input              rst   ,
	output  [7:0]      a     ,
	output reg [1:0]   b
    );
    
   always @(posedge clk or posedge rst)begin 
	  if(rst)begin
	   b<=2'd0;
	  end
	  else if(a>'d6)begin
	    b<=2'd1;
	  end
	  else if(a>'d200)begin
	     b<=2'd2;
	  end
	  else begin
	     b<=2'd0;
	  end
	end
    
endmodule
bash 复制代码
因此,如果几个条件不互斥,RTL是这样处理的,其实是有优先级的。
第一个if满足后,立马就出第一个条件满足后的结果。
其实是if 有优先级的。

写法2

bash 复制代码
module zaza(
    input              clk	 ,
	input              rst   ,
	output  [7:0]      a     ,
	output reg [1:0]   b
    );
    
   always @(posedge clk or posedge rst)begin
      if(rst)begin
	   b<=2'd0;
	  end
	  else begin
	   if(a>'d6)begin
	        b<=2'd1;
	   end
	   else begin
	       if(a>'d200)begin
	           b<=2'd2;
	       end
	       else begin
	           b<=2'd0;  
	       end
	   end
	  end  
   end

endmodule

综上

综上,两种写法,综合出的电路是一样的。

其他阅读推荐:

【数字图像处理与FPGA实现】00 绪,建立"算法思维"与"硬件思维"的桥梁

相关推荐
s09071361 天前
【Zynq 进阶一】深度解析 PetaLinux 存储布局:NAND Flash 分区与 DDR 内存分配全攻略
linux·fpga开发·设备树·zynq·nand flash启动·flash分区
Kong_19941 天前
芯片开发学习笔记·二十——时序报告分析
fpga开发·芯片开发
凌盛羽1 天前
使用python绘图分析电池充电曲线
开发语言·python·stm32·单片机·fpga开发·51单片机
尤老师FPGA1 天前
LVDS系列44:Xilinx Ultrascale系 ADC LVDS接口参考方法(六)
fpga开发
化屾为海1 天前
FPGA之PLL展频
fpga开发
GateWorld1 天前
FPGA内部模块详解之七 FPGA的“灵魂”加载——配置模块(Configuration)深度解析
fpga开发·fpga config
星华云2 天前
[FPGA]Spartan6 Uart可变波特率读写JY901P惯导模块
fpga开发·verilog·jy901p·spartan6·惯导
碎碎思2 天前
基于 Gowin FPGA 的 SDR 开源方案:从硬件到射频全栈打通
fpga开发
S&Z34632 天前
[SZ901]高级功能:远程调试
fpga开发
醇氧2 天前
【学习】冯诺依曼架构和哈弗架构
fpga开发