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

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

3天内不再提示

关于FPGA中锁存器的生成:if语句和case语句的完整性影响

FPGA设计论坛 来源:未知 2023-02-09 21:05 次阅读
锁存器(Latch)是数字逻辑电路中很重要的一种基本电路,常见的锁存器包括三个端口:数据输入口、数据输出口、使能端。当使能端为高电平时,输入口的数据直接送到输出口,此时输入输出口可以看成是直接连通的;当使能端为低电平时,输出口的数据保持之前的数据不变,无论输入口的数据怎么变化,输出都保持不变,就是把原来的状态锁存下来了(所以才叫锁存器)。锁存器与触发器的区别在于:**锁存器是电平触发,而触发器是边沿触发。**锁存器在不锁存数据时,输出随输入变化;但一旦数据锁存时,输入对输出不产生任何影响。

数字电路设计中,不规范的描述语言,往往会产生意想不到的锁存器,导致综合出的数字电路出现逻辑错误。

在数字电路中,产生意外的锁存器的情况一般有以下两种:

1、if…else…语句结构中没有else

是不是在所有情况下,只要if后边没有else就会产生锁存器呢?

(1)缺少else时,先看时序电路代码和RTL图:

没有else时,再看组合逻辑电路代码和RTL图:


小结:
(1)缺少else时,时序电路的RTL图生成的是一个FDRE,即D型触发器,没有生成锁存器。
(2)缺少else时,组合逻辑电路的RTL图中生成了一个LDCE,即带异步复位的锁存器 。

(2) if…else…完整时,先看时序电路代码和RTL图:

再看组合逻辑电路代码和RTL图:

小结:
(1)if…else,结构完整时,时序电路的RTL图生成的还是一个FDRE,即D型触发器,与没有else时结果一样。
(2)if…else,结构完整时,组合逻辑电路的RTL图中生成了一个LUT2,即查找表,不再生成锁存器了 。
结论:
在时序电路中,if…else…结构完整与否对是否生成锁存器没有关系
在组合逻辑电路中,if…else…结构完整与否,直接影响组合逻辑电路是否生成锁存器。
在组合逻辑电路中,if…else…结构不完整时会导致电路生成不必要的锁存器,可能会导致综合出的组合逻辑电路的逻辑是错误的。

2、case结构中的分支没有包含所有情况且没有default语句、
此种情况经测试,与if…else…结构是否完整的结果是一样的。此处就省略去一万个字了。

因此,在设计组合逻辑电路时,要注意将 if…else… 结构中的else写完整,case结构中一定要加上default语句,这样可以减少综合出锁存器的可能性。





扫描二维码获取

更多精彩

FPGA设计论坛




欢迎关注至芯科技

至芯官网:www.zxopen.com

至芯科技技术论坛:www.fpgaw.com

至芯科技淘宝网址:

https://zxopen.taobao.com

至芯科技FPGA初级课程(B站):

https://space.bilibili.com/521850676

至芯科技FPGA在线课程(腾讯课堂):

https://zxopenbj.ke.qq.com/

至芯科技-FPGA 交流群(QQ):282124839

更多资料下载欢迎注册http://www.fpgaw.com




扫码加微信回复加群

邀请您加入FPGA学习交流群




欢迎加入至芯科技FPGA微信学习交流群,这里有一群优秀的FPGA工程师、学生、老师、这里FPGA技术交流学习氛围浓厚、相互分享、相互帮助、叫上小伙伴一起加入吧!




点个在看你最好看





原文标题:关于FPGA中锁存器的生成:if语句和case语句的完整性影响

文章出处:【微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

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

    关注

    1625

    文章

    21663

    浏览量

    601670

原文标题:关于FPGA中锁存器的生成:if语句和case语句的完整性影响

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    高速电路的信号完整性和电源完整性研究

    高速电路的信号完整性和电源完整性研究
    发表于 09-25 14:44 0次下载

    高速高密度PCB信号完整性与电源完整性研究

    高速高密度PCB信号完整性与电源完整性研究
    发表于 09-25 14:43 5次下载

    高速PCB的信号完整性、电源完整性和电磁兼容研究

    电子发烧友网站提供《高速PCB的信号完整性、电源完整性和电磁兼容研究.pdf》资料免费下载
    发表于 09-19 17:37 0次下载

    d解决了sr的什么问题

    D(Data Latch)和SR(Set-Reset Latch)是数字电路中常见的
    的头像 发表于 08-28 09:16 451次阅读

    信号完整性与电源完整性-电源完整性分析

    电子发烧友网站提供《信号完整性与电源完整性-电源完整性分析.pdf》资料免费下载
    发表于 08-12 14:31 38次下载

    电路的中间是什么元件

    电路概述 定义与功能 (Latch)是数字电路
    的头像 发表于 07-23 11:29 321次阅读

    什么是信号完整性

    在现代电子通信和数据处理系统,信号完整性(Signal Integrity, SI)是一个至关重要的概念。它涉及信号在传输过程的质量保持,对于确保系统性能和稳定性具有决定性的影响。本文将从信号
    的头像 发表于 05-28 14:30 1049次阅读

    assign语句和always语句的用法

    的用法和功能。 一、Assign语句 Assign语句的定义和语法 Assign语句用于在HDL连续赋值,它允许在设计为信号或变量分配一
    的头像 发表于 02-22 16:24 2266次阅读

    深入探讨嵌入式C编程的goto语句

    什么是goto语句? goto 语句被称为 C 语言中的跳转语句。 用于无条件跳转到其他标签。它将控制权转移到程序的其他部分。 goto 语句一般很少使用,因为它使程
    发表于 01-21 10:41 551次阅读
    深入探讨嵌入式C编程的goto<b class='flag-5'>语句</b>

    单片机if是什么语句

    单片机的if语句是一种条件语句,用于根据不同的条件执行不同的代码块。在程序执行过程,条件语句用来决定是否执行特定的代码段。在单片机编程
    的头像 发表于 01-05 14:04 1622次阅读

    单片机for语句的运用

    单片机的for语句是一种常见的循环控制结构,用于重复执行一段代码块,可以简化程序的编写和减少代码量。本文将详细介绍单片机for语句的运用。 一、for
    的头像 发表于 01-05 14:02 2161次阅读

    oracle执行sql查询语句的步骤是什么

    Oracle数据库是一种常用的关系型数据库管理系统,具有强大的SQL查询功能。Oracle执行SQL查询语句的步骤包括编写SQL语句、解析SQL语句生成执行计划、执行SQL
    的头像 发表于 12-06 10:49 890次阅读

    java的switch语句 case的取值

    expression的值与value2的值匹配时执行的代码块 break ;... default : // 当expression的值与所有case的值都不匹配时执行的代码块 } 以下是关于switch
    的头像 发表于 11-30 16:05 1067次阅读

    java switch case的语法规则

    在Java,switch case语句是一种用于多分支选择的控制流语句。它允许根据某个表达式的值来执行不同的代码块。下面是关于switch
    的头像 发表于 11-30 14:40 2124次阅读

    case后边可以跟多个语句

    是的,"case" 后面可以跟多个语句。在编程语言中,"case" 通常被用于 switch 语句中,用于检查一个变量或表达式是否匹配某个特定的值。当匹配成功时,可以执行一个或多个
    的头像 发表于 11-30 14:19 6338次阅读