当前位置: 首页 > news >正文

白云做网站seo店铺描述

白云做网站,seo店铺描述,建设官方网站e路护航,酒东莞网站建设技术支持Latch 是什么 latch 即锁存器,是一种对电平敏感的存储单元电路,和寄存器一样都是基本存储单元,但是寄存器是边沿触发的存储器,锁存器是电平触发的存储器。 组合逻辑电路和时序逻辑电路 在数字电路中将逻辑电路分成两大类&#…

Latch 是什么

latch 即锁存器,是一种对电平敏感的存储单元电路,和寄存器一样都是基本存储单元,但是寄存器是边沿触发的存储器,锁存器是电平触发的存储器。

组合逻辑电路和时序逻辑电路

在数字电路中将逻辑电路分成两大类,一类叫组合逻辑电路,另一类叫做时序逻辑电路。

  • 组合逻辑电路:组合逻辑电路是一种输出状态只与当前输入直接相关的电路,它的输出仅仅取决于当前的输入状态,而不受到过去的输入状态或时钟信号的影响。
  • 时序逻辑电路:时序逻辑电路是一种输出状态不仅与当前输入相关,且还与过去状态相关的电路,它的输出不仅取决于当前的输入状态,还要考虑过去状态。
    注意
    在FPGA中通常将没有时钟的电路归为组合逻辑电路,有时钟的电路归为时序逻辑电路。

Latch 的危害

Latch具有以下危害:

  1. Latch是电平触发的,因此有Latch的电路抗干扰能力差
  2. Latch不能异步复位
  3. Latch上电后处于不定态,会让静态时序分析变得十分复杂
  4. 大部分FPGA器件没有 Latch这个东西,需要用使用寄存器来组成锁存器,会占用更多逻辑资源等问题

产生 Latch 的原因

在组合逻辑电路中如果变量的赋值操作没有覆盖到分支语句(如 if else 、case endcase、? : 等)的每一个分支就会产生Latch,常见的有以下情况:

  1. if 语句没有 else
  2. case 语句没有 defaul
  3. 变量自己给自己赋值
    注意:
    只有在组合逻辑电路中才会产生Latch(这里的组合逻辑是以有无时钟来区分的)

if 语句没有 else

示例代码如下:

module latch_one (input wire in1,input wire in2,output reg[3:0] out
);always @(*) beginif({in1, in2} == 2'd0)out = 4'b0001;else if({in1, in2} == 2'd1)out = 4'b0010;else if({in1, in2} == 2'd2)out = 4'b0100;
//    else
//         out = 4'b1000;
endendmodule

上面代码中out变量的赋值没有覆盖到if语句的每一个分支(没有else部分),通过vivado进行语法分析后发现其原理图如下,可以看到生成了latch。
在这里插入图片描述

case 语句没有 defaul

示例代码如下:

module latch_tow (input wire in1,input wire in2,output reg[3:0] out
);always @(*) begincase({in1, in2})2'd0: out = 4'd0001;2'd1: out = 4'd0010;2'd2: out = 4'd0100;
//    default:out = 4'd1000;endcase
endendmodule

上面代码中out变量的赋值没有覆盖到case语句的每一个分支(没有default部分),通过vivado进行语法分析后发现其原理图如下,可以看到生成了latch。
在这里插入图片描述

变量自己给自己赋值

示例代码如下:

module latch_three(input in1,input in2,output wire[3:0] out
//    output reg[3:0] out
);//在条件运算符中自己对自己赋值
assign out = (in1 != in2) ? in1 : out;在case语句中自己对自己赋值
//always @(*) begin
//    case({in1, in2})
//    2'd0: out = 4'd0001;
//    2'd1: out = 4'd0010;
//    2'd2: out = 4'd0100;
    default:out = 4'd1000;
    default: out = out;
//    endcase
//end在if语句中自己对自己赋值
//always @(*) begin
//    if({in1, in2} == 2'd0)
//        out = 4'b0001;
//    else if({in1, in2} == 2'd1)
//        out = 4'b0010;
//    else if({in1, in2} == 2'd2)
//        out = 4'b0100;
//    else
//        out = 4'b1000;
    else
        out = out;
//endendmodule

面代码中out变量在条件运算符中存在自己对自己赋值的情况,通过vivado进行语法分析后发现其原理图如下,可以看到生成了latch。
在这里插入图片描述
注意:
在if语句中自己对自己赋值和在case语句中自己对自己赋值也会产生Latch

http://www.hengruixuexiao.com/news/26752.html

相关文章:

  • 工程行业网站2022年新闻摘抄简短
  • 网站建设指标深圳搜索引擎
  • 哪个网站生鲜配送做的好电商营销策划方案
  • 济南营销网站制作公司免费网页在线客服制作
  • 南海营销网站开发网页优化怎么做
  • 网页编辑器是什么seo中国官网
  • 贵阳拍卖网站开发公司上海百度推广官网
  • 阿里巴巴上做网站要多少钱网站怎样才能在百度被搜索到
  • 佛山高端网站建设seo sem关键词优化
  • 如何用ip做网站外链发布平台
  • 网站费用清单百度搜索排名优化哪家好
  • 设计品牌网站公司域名停靠网页推广大全2021
  • 学习aspmvc网站开发 书上海网站快速优化排名
  • 上海闵行网站建设磁力多多
  • 58这样网站怎么做3d建模培训班一般多少钱
  • 如何用vs2010做网站镇江网站建设
  • 苹果软件做ppt下载网站有哪些内容推广平台有哪些?
  • 长沙手机网站制作网店网络营销与推广策划书
  • 安溪哪里有学做网站网站推广计划方法
  • 合肥网站建设代理商谷歌搜索引擎入口google
  • 中小微企业名录查询青岛seo结算
  • 域名备案与网站备案的区别全网引流推广 价格
  • 网站开发图形化软件我想做个网站怎么做
  • 珠海网站建设方案外包b站24小时自助下单平台网站
  • 网站首页静态好还是动态好宁波seo网站推广软件
  • 新手学做网站这本书谷歌搜索为什么用不了
  • dedecms网站地图友情链接检测
  • 临沂企业网站建设公司广州网站关键词推广
  • 做民宿网站的系统可行性千万不要做手游推广员
  • 广州专业做网站建设如何推广网站链接