首页 > 其他分享 >Verilog-Latch的产生

Verilog-Latch的产生

时间:2022-09-02 23:00:55浏览次数:63  
标签:语句 逻辑 Latch 产生 else Verilog 信号 latch 赋值

避免latch的产生

latch的简介

latch其实就是锁存器,是一种在异步电路系统中,对输入信号电平敏感的单元,用来存储信息。

锁存器在数据未锁存时,输出端的信号随输入信号变化,就像信号通过一个缓冲器,一旦锁存信号有效,则数据被锁存,输入信号不起作用。因此,锁存器也被称为透明锁存器,指的是不锁存时输出对于输入是透明的。

几种产生latch的情况

组合逻辑中if-else条件分支语句缺少else语句

  • if-else结构不完整

  • 在组合逻辑中,当条件语句中有很多条赋值语句时,每个分支条件下赋值语句的不完整也是会产生 latch。
    其实对每个信号的逻辑拆分来看,这也相当于是 if-else 结构不完整,相关寄存器信号缺少在其他条件下的赋值行为。

避免:避免此类 latch 的方法主要有 2 种,一种是补全 if-else 结构,或者对信号赋初值

但是在时序逻辑中,不完整的 if - else 结构,不会产生 latch。
这是因为,q 寄存器具有存储功能,且其值在时钟的边沿下才会改变,这正是触发器的特性

组合逻辑中case条件分支语句条件未完全列举,且缺少default语句

case 语句产生 latch 的原理几乎和 if 语句一致。在组合逻辑中,当 case 选项列表不全且没有加 default 关键字,或有多个赋值语句不完整时,也会产生 latch

当然,消除此种 latch 的方法也是 2 种,将 case 选项列表补充完整,或对信号赋初值。

组合逻辑中输出变量赋值给自己

在组合逻辑中,如果一个信号的赋值源头有其信号本身,或者判断条件中有其信号本身的逻辑,则也会产生 latch。因为此时信号也需要具有存储功能,但是没有时钟驱动。此类问题在 if 语句、case 语句、问号表达式中都可能出现。

避免:避免此类 Latch 的方法,就只有一种,即在组合逻辑中避免这种写法,信号不要给信号自己赋值,且不要用赋值信号本身参与判断条件逻辑。

标签:语句,逻辑,Latch,产生,else,Verilog,信号,latch,赋值
From: https://www.cnblogs.com/yjqzyt/p/16651601.html

相关文章

  • 2-PageCachechan产生释放及优化
    2-PageCache生产释放及优化观察PageCachepagecache,又称pcache,其中文名称为页高速缓冲存储器页缓存PageCache有关的场景故障场景服务器的load飙高;服务器的I/O......
  • 有符号数计算Verilog
    以往在做一些数字电路设计中未曾涉及到有符号数的计算,因此昨日遇见一道简单的题目,没有搞清楚原理导致答错,特此记录下Verilog中有符号数计算的特点。一、题目描述以及错误......
  • npm安装vue,在vue/dist目录下没有产生vue.js文件 只在vue后面加上@2指定版本即可。 np
    npm安装vue,在vue/dist目录下没有产生vue.js文件遇到问题:在进行npminstall时,vue/dist目录下没有生成vue.js的情况。解决办法:只在vue后面加上@2指定版本即可。npmin......
  • gdb:产生core文件
    转载地址:https://blog.csdn.net/jiemashizhen/article/details/125016646 core文件是调试段错误的重要手段,默认情况下是不会生成core文件的,可通过如下方式对生成core文......
  • verilog 中的三段式状态机
    抄的:https://zhuanlan.zhihu.com/p/431143109一段式状态机特点:最主要的特征是只有一个always块。在这个always块内既描述状态转移,又含有组合逻辑输入/输出,当前状态用......
  • npm安装vue,在vue/dist目录下没有产生vue.js文件 npm init -y npm install vue@
    npm安装vue,在vue/dist目录下没有产生vue.js文件遇到问题:在进行npminstall时,vue/dist目录下没有生成vue.js的情况。解决办法:只在vue后面加上@2指定版本即可。npmi......
  • 计算机体系结构--指令Cache设计verilog实现
    前段时间一直在做MIPSCPU的设计,并且同步学习了一些计算机体系结构的相关知识,五级流水线单周期CPU设计已经完善了,本文主要记录一下指令Cache的设计及实现。一、Cache设计......
  • 关于vi不正常退出产生的swp文件
    关于vi不正常退出产生的swp文件_lingdxuyan的博客-CSDN博客_linux如何删除swp文件 https://blog.csdn.net/lingdxuyan/article/details/4993868非正常关闭vi编辑器时会......
  • RabbitMQ 入门系列:7、保障消息不重复消费:产生消息的唯一ID。
    系列目录RabbitMQ入门系列:1、MQ的应用场景的选择与RabbitMQ安装。RabbitMQ入门系列:2、基础含义:链接、通道、队列、交换机。RabbitMQ入门系列:3、基础含义:持久化、......
  • 深入理解JUC:第四章:CountDownLatch倒计时器
    理论:CountDownLatch是一个非常实用的多线程控制工具类。常用的就下面几个方法:CountDownLatch(intcount)//实例化一个倒计数器,count指定计数个数countDown()//计数......