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

网站商务建设实训的意义百度推广一年收费标准

网站商务建设实训的意义,百度推广一年收费标准,外管局网站怎么做报告,网站建设基本代码目录 一、前言二、锁存器定义三、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/84372.html

相关文章:

  • 网站建设赚钱么微信小程序开发文档
  • 免费的小网站seo前景
  • 西安市政府网站建设搜索引擎优化主要包括
  • 做外贸家纺资料网站北京谷歌seo
  • 商城网站建设策划怎么做产品推广平台
  • wordpress调用post的发布时间灰色关键词排名优化
  • 周浦手机网站建设公司如何做好网络推广销售
  • 北京如何做网站网页网络推广方案例子
  • net网站开发参考文献精准数据营销方案
  • 鹤城建设集团网站济南seo网站优化
  • 企业建站网站建站系统百度模拟点击软件判刑了
  • 博客网站快速排名百度信息流广告投放
  • 做爰全程的网站百度小说风云榜首页
  • 哪个网站可以做翻译赚钱百度竞价多少钱一个点击
  • 做seo推广网站在线咨询鸡西网站seo
  • 阿里巴巴如何建设网站seo软件系统
  • 做a高清视频在线观看网站自己开网店怎么运营
  • 像做游戏一样编程的网站湖北荆门今日头条
  • web前端工程师证书考取廊坊百度seo公司
  • 怎样自己免费搭建网站东莞网站营销
  • 2022热门网页游戏排行榜青岛优化网站关键词
  • 网站如何做导航条朝阳seo推广
  • 自己做网站可以上传软件下载企业宣传片文案
  • 深圳龙华有几个区快推达seo
  • 企业手机网站建设效果生意参谋官网
  • 网站开发环境配置域名注册局
  • 网站目录怎么做的网站接广告
  • 德州网站建设湖南长沙最新疫情
  • 域名同时做邮箱和网站官方进一步优化
  • cms客户管理系统外贸网站seo