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

p2p网站建设公司排名北京搜索优化排名公司

p2p网站建设公司排名,北京搜索优化排名公司,dw主页制作,成都企业做网站多少钱目录 一、前言二、锁存器定义三、verilog中锁存的产生四、verilog中锁存的影响和消除五、FPGA中的锁存器资源 一、前言 在做FPGA设计时,我们要求在组合逻辑设计时,case或者if-else条件要完整,否则会产生锁存。本文主要介绍锁存产生的原因和影…

目录

  • 一、前言
  • 二、锁存器定义
  • 三、verilog中锁存的产生
  • 四、verilog中锁存的影响和消除
  • 五、FPGA中的锁存器资源

一、前言

     在做FPGA设计时,我们要求在组合逻辑设计时,case或者if-else条件要完整,否则会产生锁存。本文主要介绍锁存产生的原因和影响,以及如何规避锁存的产生。

二、锁存器定义

我们回顾一下最基础的数字电路,什么是锁存器:

锁存器(Latch)是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态。锁存,就是把信号暂存以维持某种电平状态。锁存器是利用电平控制数据的输入,它包括不带使能控制的锁存器和带使能控制的锁存器。

注:很多书本或者介绍中将触发器和锁存器混淆,其实笔者觉得即可以叫锁存器也可以叫寄存器,但由于有了时钟延触发寄存器的产生,我们一般称时钟边沿触发的为触发器,电平触发的为锁存器。

常见的锁存器有多种:
(1)基本的RS锁存器

  基本RS锁存器可由与非门实现或者用或非门实现,下图为采用或非门实现原理图,其中”S“是置位输入端,”R“是复位输入端,”Q“为状态输出端,”Q’“为反相状态输出端。
在这里插入图片描述
(2)门控RS锁存器

  在基本RS锁存器加一级门控,CP=0时一级控制门被封锁,基本锁存器保持原来的状态不变,只有当CP=1时控制门被打开后,输入信号才会被接收,此时其工作情况与基本RS锁存器没什么区别。
在这里插入图片描述
在这里插入图片描述
(3)D锁存器

  将门控SR锁存器进行优化改动,就得到D锁存器。当E=0时锁存数据,E=1时输出跟随输入D变化
在这里插入图片描述

  将两个D锁存器级联,即可产生时钟边沿触发的D触发器,也就是时序电路设计中常用的DFF。

在这里插入图片描述
  从以上描述可知道,D触发器有锁存器演进进化而来,不管是锁存器和触发器,其主要是个存储模块,为了锁存数据,只是锁存数据的方式有些不同,所以很多书上将锁存器称为触发器也没问题。

三、verilog中锁存的产生

在verilog中编辑以下代码,else或case条件赋值不完全:

always @(*) beginif(asel) o_a  = in_a;
end
always @(*) begincase(bsel)2'd0:o_b = 2'd3;2'd1:o_b = 2'd2;2'd2:o_b = 2'd1;endcase
end

或者以下代码,为了完整的if-else,组合逻辑采用信号自己等于自己如 o_a = o_a ;

always @(*) beginif(asel) o_a  = in_a;else o_a  = o_a  ;
end
always @(*) begincase(bsel)2'd0:o_b = 2'd3;2'd1:o_b = 2'd2;2'd2:o_b = 2'd1;default:o_b = o_b;endcase
end

以上两种写法综合后如下图所示,从图中可知o_b 和o_a 均产生了latch LDCE。
对于if else模块,latch的锁存信号为asel,当asel为0时o_a保持不变(锁存),当asel为1时,o_a跟随 in_a变化。case模块同理。
在这里插入图片描述
从以上分析可以得出结论:
当if-else或者case中,各条件未完全正常赋值可导致latch产生
通过修改代码如下:

always @(*) beginif(asel) o_a  = in_a;else o_a  = 1'b0;
end
always @(*) begincase(bsel)2'd0:o_b = 2'd3;2'd1:o_b = 2'd2;2'd2:o_b = 2'd1;2'd3:o_b = 2'd0;endcase
end

以上写法综合后如下图所示,从图中可知if-else产生了正常的选择器。case模块逻辑也正常,因case的写法等同为取反逻辑,所以软件直接优化为LUT取反了,没有产生LDCE。
在这里插入图片描述

四、verilog中锁存的影响和消除

上面描述了锁存的产生,那么锁存一定是错误的吗?也不一定,只是FPGA一般是时序逻辑电路,受时钟驱动,一般存储采用同步的DFF实现。但锁存也是一种有效逻辑,如在时延要求很高时序逻辑无法实现的情况下,锁存也是一种正常的电路逻辑,如第三章中的if-else中,如果确实需要再in_a为0时o_a保持,那么第三章中的if-else逻辑均为正确的逻辑,其实现的就是一个门控锁存器功能(第二章中有描述)。但在FPGA中采用锁存有一些问题:
(1)产生竞争冒险,不利于后续电路,使电路稳定性降低;
(2)给时序分析带来一定挑战,不利于时序分析


至于如何消除latch,前面已经从latch的产生中说明:
有完整的if-else赋值、有完整的case条件赋值,并且不能出现输出信号自己等于自己。

五、FPGA中的锁存器资源

在Xilinx V7芯片对以上代码进行布局布线,发现Latch使用的是存储单元(storage elements)资源,说明FPGA中FF可以被配置为锁存器,这在数据手册中可以看到。同时对照第二章,我们知道锁存器和触发的电路相似,所示Xilinx在做设计时兼容了这两种设计。
在这里插入图片描述
如下图所示,Xilinx每个SILCE有8个存储单元。其中:

  • 有四个存储单元既可以配置为边沿触发的D触发器或者电平敏感的锁存器,D输入可以直接由LUT输出通过AFFMUX、BFFMUX、CFFMUX或DFFMUX驱动,也可以由旁路片输入通过AX、BX、CX或DX输入绕过函数生成器驱动;
  • 另外四个存储单元只能配置为边沿触发的D触发器,D输入可以由LUT的O5输出或通过AX、BX、CX或DX输入的BYPASS切片输入驱动。另外,当上述的4个存储单元被配置为锁存器时,这四个存储单元不能够被使用;

在这里插入图片描述

参考资料:

1、7 Series FPGAs Configurable Logic BlockUser Guide
2、数字电路基础

http://www.dtcms.com/wzjs/282547.html

相关文章:

  • 手机建网站 教程国外网站
  • 项目符号在哪里设置青岛网站关键词排名优化
  • 番禺响应式网站建设网站收录工具
  • 做网站是如何赚钱的无锡百度竞价
  • 24 手表网站日照网络推广
  • 网站安全注意哪些问题吗关键词优化心得
  • 苏州市建设局投诉网站南昌seo快速排名
  • 电子商务网站开发方案最近的大新闻
  • 武汉做网站及logo的公司视频网站搭建
  • 网站建设全过程及如何赚钱今日小说搜索百度风云榜
  • 做食品网站需要什么谷歌seo推广服务
  • 临沂企业自助建站做一个个人网站
  • 课题组网站怎么做软文营销的定义
  • wordpress内容编辑器天津百度网站快速优化
  • 河北省住房和城乡建设部网站首页重庆网站搜索引擎seo
  • 合肥做网站可以吗南宁百度推广代理公司
  • 搜索引擎营销方法主要有三种百度seo排名培训优化
  • 德州网站建设维护app拉新一手渠道
  • 当当网站建设优点乔拓云智能建站系统
  • 轻量应用服务器做网站百度推送
  • 现在什么类型网站没有人做长沙seo报价
  • 东莞高端做网站公司网页制作与设计
  • 营销型网站网站设计百度网站关键词排名助手
  • 武汉新闻网营销型网站建设优化建站
  • 虚拟主机能做什么标题关键词优化技巧
  • 新闻网站开发 外包百度推广一年大概需要多少钱
  • 网站建设过程中需要注意的通用原则济南百度快照推广公司
  • 网页设计公司未来三年规划seo优化方法网站快速排名推广渠道
  • 深圳市坪山新区建设局网站外链网址
  • 淘金企业网站建设服务培训网站排名