【学习笔记-FPGA】Verilog语言case语句与C语言switch case语句

【学习笔记-FPGA】Verilog语言case语句与C语言switch case语句,第1张

个人笔记。

Verilog语言的 case语句是以case(条件)开始,endcase结束,begin end作为()。

例:

reg    [7:0]       st;

always @(posedge i_clk or negedge nrst) begin//
            if(!nrst)begin   
                        st<= 16'h0001;                       
             end
             else       begin
                        case(st)                 
                        16'h0001:begin        
                                     a<=b;                         
                                      st<= 16'h0002;
                                     end      
                        16'h0002:begin
                                       c<=a;
                                       st<= 16'h0001;
                                       end

                          endcase

                         end

       end

也可用接收的数据作为条件,可以是数字、字母等,只需要发送相应的数据就可执行相应状态。

例:

wire  [79:0]      recvData;                  //接收值

reg   [79:0]       m;

always @(posedge i_clk or negedge nrst) begin//
            if(!nrst)begin   

                        m[79:0]<=0;

              end

           else          
           begin  
           case(recvData[8:0])   
           "1":m[7:0]<=8'h12345678;
           "a":m[7:0]<=8'h12345678;
           "A":m[7:0]<=8'h12345678;

             endcase

            end

end    

C语言的switch case语句,以switch(条件)开头,case 加常量作为步骤,break作为跳出某一步。

例:

int main(void)
{ st=0;

      while(1)                     //循环
      { 
           switch(st)
           {
            case 0:   a=b;

                          st=1;    
                          break;

           case 1:   c=a;

                          st=0;    
                          break;

              }

      }

}

通过上述例子可以看出Verilog语言与C语言的case语句实现的功能基本一样,只是表达的方式有所不同。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1325896.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-12
下一篇 2022-06-12

发表评论

登录后才能评论

评论列表(0条)

保存