这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » 请教fpga中if...else 和case的区别

共6条 1/1 1 跳转至

请教fpga中if...else 和case的区别

菜鸟
2014-12-16 10:51:03     打赏
   //led_ctrl有1表示有按键按下
wire [2:0] led_ctrl = low_sw_r[2:0] & ( ~low_sw[2:0]);  
always @ (posedge clk or negedge rst_n)
begin
    if (!rst_n) 
		begin
					led_d1<=1;
					led_d2<=1;
					led_d3<=1;
					led_d4<=1;
		end
//------------------------------1--case-----------------------------------------------
	 else 
		 begin
			 case(led_ctrl)
			 3’b000: led_d4<=0;
			 3'b001:led_d1<=~led_d1;	
			 3'b010:led_d2<=~led_d2;
			 3'b100:led_d3<=~led_d3;
			 default:led_d4<=1;
			 endcase
		 end
	
   //------------------------2------if—else if----else---------------------------------------
	else if ( led_ctrl[0] )	 led_d1<=~led_d1;	//
        else if ( led_ctrl[1] )	 led_d2<=~led_d2;
        else if ( led_ctrl[2] )	 led_d3<=~led_d3;
	else		         led_d4<=~led_d4;

//----------------------------3------else------------------------------------------------------
       else
       begin
 		if ( led_ctrl[0] ) led_d1<=~led_d1;	
    	        if ( led_ctrl[1] ) led_d2<=~led_d2;
    	        if ( led_ctrl[2] ) led_d3<=~led_d3;
		
       end		
end		

 


院士
2014-12-16 10:59:58     打赏
2楼
稍等,有人为你解答

高工
2014-12-16 11:01:59     打赏
3楼
if else是有优先级的,case没有优先级,很基础的问题,语法书上都有详细讲解。

专家
2014-12-16 11:08:43     打赏
4楼
楼上正解~

专家
2014-12-16 11:21:33     打赏
5楼
如果想看他们之间综合处理的电路的区别的话,看RTL视图吧,case一般用在情况较多的地方。

菜鸟
2014-12-18 09:46:26     打赏
6楼

谢谢各位,还是多看点基础!


共6条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]