我是靠谱客的博主 强健乌龟,最近开发中收集的这篇文章主要介绍再谈锁存器在Verilog中的故事再谈锁存器在Verilog中的故事,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

再谈锁存器在Verilog中的故事

锁存器

锁存器(Latch)是一种对脉冲电平敏感的存储单元电路。它们可以在特定输入脉冲电平作用下改变状态。锁存就是把信号暂存以维持某种电平状态

锁存器出现的危害:

输出信号被锁死,输入信号的变化不起作用;同时使静态时域分析非常复杂。
我们在数字集成电路的设计中要尽可能地避免出现锁存器。

出现锁存器的情况:

1、敏感列表不完整

对于组合电路,在@引导的敏感列表必须包含完整的敏感列表。对于时序电路,@的敏感事件如果不全会变成异步电路,不过异步电路的设计很多综合器不支持(在公司,设计人员就是无用功)。
如果敏感列表不完整,会造成逻辑错误。甚至有可能出现锁存器。比如:

always @ (a)	//敏感列表没有b
c=a~^b;

b的变化不会促使always结构变化,这样就是一个带控制的锁存器。
修改代码如下:

always @ (a or b)
c=a~^b;

2、if和else不成对出现

例如:

if (a<b)
  out=a;
else if (a>b)
  out=b;

这就是一个简单的比较功能。不过if和else没有成对出现,这样如果a=b时,输出会保持不变。但是组合电路中没有存储元件,所有会生成设计之外的锁存器。
修改代码如下:

if (a<b)
  out=a;
else if (a>b)
  out=b;
else
  out=a||b;

3、case语句中没有default

如果需要锁存器,设计代码如下:

module latch (clk,d,q);
input	clk;
input	d;
output	q;

assign	q=clk?d:q;

endmodule

原因与i“if和else不成对出现”一样。不再赘述。

总结:

再次对锁存器做一个回顾。

感想:

念念不忘,必有回响!!!

最后

以上就是强健乌龟为你收集整理的再谈锁存器在Verilog中的故事再谈锁存器在Verilog中的故事的全部内容,希望文章能够帮你解决再谈锁存器在Verilog中的故事再谈锁存器在Verilog中的故事所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部