0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA学习系列:if-else与case

FPGA学习交流 2018-06-01 16:59 次阅读

设计背景:

不管是在什么软件和硬件语言,我们在我们的代码中都或多或少的用到这两条语句,if..else与case语句,今天我们将学习verilog中的这两条语句,其实不管在什么语言中这两个语句都是一样的逻辑。

设计原理:

if...else 条件语句的作用是根据指定的端盘条件是否满足来确定下一步要执行的操作他们的书写格式如下

(1)if (条件语句) (2)if(条件语句) (3)if(条件语句)

语句 语句 语句

else else if(条件语句)

语句 语句

else

语句

(1)语句是if(条件语句)满足则条件成立,也就是这个逻辑执行结果为1,则执行条件语句成立执行的语句,如果不满足,就执行else给出的条件语块,然后才推出这个条件语句。


(2)语句是if(条件语句)满足则条件成立,也就是这个逻辑执行结果为1,则执行条件语句成立执行的语句,如果不满足则直接推出条件语句。


(3)语句是if(条件语句)满足则条件成立,也就是这个逻辑执行结果为1,则执行条件语句成立执行的语句,如果不满足,就判断else if(语句块)是否满足,如果满足就就执行else if 条件给出的语句,如果也不满足这个条件就执行else 给出的语句,然后执行完就退出条件语句。

if ... else 条件语句也允许语句的嵌套也就是

if(...)

..

else

if()

...

else

等语句块

代码演示

module led_run (a, b, c);

input a, b; //定义输入输出

output reg c;

always @ (*)

if(a) //判断a是否为1

c = b; //如果是1的话,就是b的值给c

else

c = ~b; //如果不是1的话,就把b的反值给c

endmodule

仿真图:

仿真中我们可以看到和我们写的分析逻辑一样,a = 1 的时候。b = 0, c = 0 ,a = 0的时候, b = 0,c = 1 ........

case 语句是另一种可以实现多路分支控制的分支语句,和使用if - else 相比,采用case 语句实现多路控制看起来代码逻辑看起来更加清楚明了。

case (控制表达式)

<分支表达式1> : 语句块 1

<分支表达式2> : 语句块 2

<分支表达式3> : 语句块 3

...............

default : 语句块;

endcase

控制表达式代表着对程序流向进行控制的控制信号,各个分支语句表达式代表着控制表达式的状态取值,通常分支表达式都是一些常量表达式,各个语句在分支表达式满足的情况下执行相应的语句块语句,最后有一个关键字default 分支项,这个项可以缺失,在case语句中分支语句的值各不相同,如果相同就会出现矛盾的现象,这应该不是我们想要的。

代码演示

0moduleled_run (a,b,sel,c);

1

2 inputa,b; //定义输入输出

3 input[1:0]sel;//输入选择位

4 outputregc;

5

6 always@(*)

7 case(sel)

8 2'b00 :c =a;//选择位为0,把a值给c

9 2'b01:c =b; //选择位为1,把b值给c

10 2'b10:c =~a;//选择位为2,把a反值给c

11 2'b11:c =~b;//选择位为3,把a反值给c

12 default:c =0;//否则c =0

13 endcase

14

15endmodule

仿真图:


仿真中我们可以看到和我们写的分析逻辑一样,a = 1 的时候。b = 0,sel = 1;c = 0 ,a = 1的时候, b = 0,sel = 0,c = 1 ........


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Case
    +关注

    关注

    0

    文章

    28

    浏览量

    13416
收藏 人收藏

    评论

    相关推荐

    FPGA加速深度学习模型的案例

    FPGA(现场可编程门阵列)加速深度学习模型是当前硬件加速领域的一个热门研究方向。以下是一些FPGA加速深度学习模型的案例: 一、基于FPGA
    的头像 发表于 10-25 09:22 418次阅读

    FPGA做深度学习能走多远?

    今天给大侠带来在FPAG技术交流群里平时讨论的问题答疑合集(十四),以后还会多推出本系列,话不多说,上货。 FPGA技术交流群目前已有十多个群,QQ和微信均覆盖,有需要的大侠可以进群,一起交流学习
    发表于 09-27 20:53

    FPGA学习笔记---基本语法

    3、信号类型:wire, reg, tri等 4、参数定义:parameter 5、运算操作符:各种逻辑操作符、移位操作符、算数操作符等 6、比较判断:if ... else, case
    发表于 06-23 14:58

    FPGA学习重点是什么?

    FPGA学习重点是什么?
    发表于 05-24 07:38

    FPGA学习笔记-关于FPGA资源

    FPGA学习。 在学习中才发现,FPGA远不是门电路那么简单。FPGA中有各种需要的资源,比如门电路、存储单元、片内RAM、嵌入式乘法器、
    发表于 05-22 18:27

    FPGA基础知识学习

    、导航系统等。这些系统对实时性和可靠性要求极高,FPGA能够满足这些需求。 人工智能和深度学习FPGA可以用于加速深度学习算法的计算和训练过程,提供高性能和低功耗的解决方案。随着人
    发表于 04-29 23:26

    Xilinx 7系列FPGA功能特性介绍

    Xilinx7系列FPGA由四个FPGA系列组成,可满足一系列系统需求,从低成本、小尺寸、成本敏感的大容量应用到最苛刻的高性能应用的超高端连
    发表于 04-22 10:49 5872次阅读
    Xilinx 7<b class='flag-5'>系列</b><b class='flag-5'>FPGA</b>功能特性介绍

    FPGA学习笔记-入门

    大概10年前,大学同学建议我学习DSP。当因为工作忙,也只是简单学习了DSP的一些基础知识,没有进一步深入学习和时间。结果现在,好像DSP已经不再是主流了,现在有了FPGA。 现在想想
    发表于 04-09 10:55

    FPGA初步学习印象

    了。FPGA出现后,也想学习学习这方面的知识。抱着先简单学习下的态度,在网上找资料看看。感觉FPGA,就像是利用芯片内部资源,自由组合门电路
    发表于 04-09 09:46

    FPGA学习资料分享

    本帖最后由 1653149838.791300 于 2024-3-31 13:24 编辑 FPGA学习首先是要熟悉掌握使用硬件描述语言,这方面可以通过书籍或者这方面论坛,这里个人分享一个比较好
    发表于 03-31 13:23

    fpga要学哪些东西

    学习FPGA需要掌握一系列的知识和技能,主要包括以下几个方面。
    的头像 发表于 03-27 14:40 1192次阅读

    Intel fpga芯片系列有哪些

    Intel FPGA芯片系列主要包括以下几种。
    的头像 发表于 03-14 16:28 1196次阅读

    Xilinx fpga芯片系列有哪些

    Xilinx FPGA芯片拥有多个系列和型号,以满足不同应用领域的需求。以下是一些主要的Xilinx FPGA芯片系列及其特点。
    的头像 发表于 03-14 16:24 3586次阅读

    fpga芯片系列介绍

    FPGA芯片系列众多,不同厂商会推出各具特色的产品系列以满足不同的应用需求。以下是一些主要的FPGA芯片系列
    的头像 发表于 03-14 16:15 1436次阅读

    fpga学习需要具备哪些课程

    FPGA(Field Programmable Gate Array)学习需要具备一系列的课程知识和实践技能
    的头像 发表于 03-14 15:51 1342次阅读