FPGA基础:触发器和锁存器

news2024/10/6 18:25:43

目录

  • 锁存器(Latch)
  • D触发器(Flip-Flop)
  • 最基本时序电路
  • 时序块(Sequential blocks):
  • 同步与异步
  • 触发器概念
  • 触发器分类
  • 触发器的Verilog实现
    • 1. 上升沿触发的触发器
    • 2. 带异步复位、上升沿触发的触发器
    • 3. 带异步复位和置位、上升沿触发的触发器
    • 4.带异步复位和同步使能、上升沿触发的触发器
    • 5.带同步复位、上升沿触发的触发器

锁存器(Latch)

module latch(D, clk, Q);
    input D, clk;
    output reg Q;

    always@(D, clk)
       if (clk) 
          Q = D;
endmodule

D触发器(Flip-Flop)

module flipflop(D, clk, Q);
    input D, clk;
    output reg Q;

    always@(posedge clk)
       Q <= D;

endmodule

最基本时序电路

On positive edge of clk, Q <= D(在上升沿时被采样)

D Flip Flop

module dff (
input clk,
input rst,
input D,
output reg Q
alwaysd(posedge clk or posedge rst)begin
  if(rst==1)
    0<=0;
  else
    Q<=D;
end
endmodule

时序块(Sequential blocks):

在时钟上升边缘触发(Will trigger at rising edge of clk):always@(posedge(clk))
在时钟下降边缘触发(Triggers at falling edge of clk):always@(negedge(clk))
使用异步复位(Using an asynchronous reset):always@(posedge(clk) or (posedge(rst))

同步与异步

同步与异步

同步控制信号是指该信号有效的时候必须在有时钟边沿到来的情况下才能对电路起作用。异步控制信号是指该信号在任何时刻只要有效,就会对电路起作用,而不必等时钟边沿信号。在verilog HDL中,异步控制信号用关键字posedge和negedge表示是高有效或者低有效。

触发器概念

(1)有两个稳定状态(简称稳态),正好用来表示逻辑 0 和 1。
(2)在输入信号作用下,触发器的两个稳定状态可相互转换(称为状态的翻转)。输入信号消失后,新状态可长期保持下来,因此具有记忆功能,可存储二进制信息。
(3)一个触发器可存储 1 位二进制数码。
(4)触发器有记忆功能,由它构成的电路在某时刻的输出不仅取决于该时刻的输入,还与电路原来状态有关。而门电路无记忆功能,由它构成的电路在某时刻的输出完全取决于该时刻的输入,与电路原来状态无关。
(5)触发器和门电路是构成数字电路的基本单元。

触发器分类

  1. 上升沿触发的触发器
  2. 带异步复位、上升沿触发的触发器
  3. 带异步复位和置位、上升沿触发的触发器
  4. 带异步复位和同步使能、上升沿触发的触发器
  5. 带同步复位、上升沿触发的触发器

触发器的Verilog实现

1. 上升沿触发的触发器

module dff(d,clk,q,qn);
  input    d, clk;
  output  q, qn;
  reg	q, qn;
  always@(posedge clk)
  begin	
 {q, qn}<={d, ~d};
  end
endmodule

只列出了上升沿触发的时钟clk,而没有将输入d列写进去,是因为输入d要想起作用,必须要有时钟边沿信号的触发。

上升沿触发的触发器

2. 带异步复位、上升沿触发的触发器

module dff_asynrst(data,rst,clk,q);
  input	data,rst,clk;
  output	q;
  reg	q;
always@(posedge clk , posedge rst)
begin	
  if(rst==1’b1)		
    q<=1’b0;	
  else	
    q<=data;
end
endmodule 

3. 带异步复位和置位、上升沿触发的触发器

module dff_asynrst(data,rst,set,clk,q);
   input    data,rst,set,clk;
   output  reg q;
   always@(posedge clk , posedge rst , posedge set)
   begin	
   	if(rst==1’b1)		
		q<=1’b0;
    else if(set==1’b1)
		q<=1’b1;	
	else	
    q<=data;
   end
endmodule 

4.带异步复位和同步使能、上升沿触发的触发器

module dff_asynrst(data,rst,en,clk,q);
   input	data,rst,en,clk;
   output	q;
   reg	q;
always@(posedge clk , posedge rst) begin	
   	if(rst==1’b1)		
      q<=1’b0;
    else if(en==1’b1)
      q<=data;	
end
endmodule 

5.带同步复位、上升沿触发的触发器

module dff_synrst(data,rst,clk,q);
   input	data,rst,clk;
   output	q;
   reg	q;
always@(posedge clk)
begin	
  if(rst==1’b1)		
    q<=1’b0;
  else
    q<=data;	
end
endmodule 


关注微信公众号获取更多资讯:​​​​在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1714071.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Pandas-中axis的用法

在Pandas中&#xff0c;min(axis)方法是计算DataFrame或Series中每行或每列的最小值的函数。该函数可以接受一个参数axis&#xff0c;用于指定计算最小值的方向。当axis0时&#xff0c;表示沿着行的方向计算最小值&#xff1b;当axis1时&#xff0c;表示沿着列的方向计算最小值…

奶奶也能看懂的耦合协调度分析

不会计算&#xff1f;跟着文献学起来~ 案例数据连接&#xff08;复制链接后粘贴到浏览器中&#xff09;&#xff1a; 耦合协调度数据​spssau.com/spssaudata.html?shareDataF363000CD033FF15E557BB75B9B0D412 假如你有这样一组数据&#xff1a; 如何进行计算分析耦合协调度…

python中pow是什么意思

pow()方法返回xy&#xff08;x的y次方&#xff09;的值。 语法 以下是math模块pow()方法的语法&#xff1a; import math math.pow( x, y ) 内置的pow()方法 pow(x, y[, z]) 函数是计算x的y次方&#xff0c;如果z在存在&#xff0c;则再对结果进行取模&#xff0c;其结果等效…

【后端开发】服务开发场景之分布式(CAP,Raft,Gossip | API网关,分布式ID与锁 | RPC,Dubbo,Zookeeper)

【后端开发】服务开发场景之分布式&#xff08;CAP&#xff0c;Raft&#xff0c;Gossip | API网关&#xff0c;分布式ID与锁 | RPC&#xff0c;Dubbo&#xff0c;Zookeeper&#xff09; 文章目录 1、如何设计一个分布式系统&#xff1f;&#xff08;底层原理&#xff09;理论&a…

企业网站有必要进行软件测试吗?网站测试有哪些测试流程?

企业网站在现代商业中扮演着重要的角色&#xff0c;它不仅是企业形象的重要体现&#xff0c;也是与客户、合作伙伴进行沟通与交流的重要渠道。然而&#xff0c;由于企业网站的复杂性和关键性&#xff0c;其中可能存在各种潜在的问题和隐患。因此&#xff0c;对企业网站进行软件…

网页中的音视频裁剪拼接合并

一、需求描述 项目中有一个配音需求&#xff1a; 1&#xff09;首先&#xff0c;前台会拿到一个英语视频&#xff0c;视频的内容是A和B用英语交流&#xff1b; 2&#xff09;然后&#xff0c;用户可以选择为某一个角色配音&#xff0c;假如选择为A配音&#xff0c;那么视频在播…

Centos7时区设置及手动修改时间

一、修改系统时区 1、查看时区命令 timedatectl 2、设置时区命令 #下面将时区设置为上海时区 timedatectl set-timezone Asia/Shanghai 3、查看时区看一下新时区有没有生效 timedatectl 二、手动修改系统时间 修改系统时间 date -s "2023-12-25 16:05:10" 查…

display: none 和 visibility: hidden 的共性与区别

display: none 和 visibility: hidden 的共性与区别 共性&#xff1a;display: none 和 visibility: hidden 都是用于设置元素可见性的样式 区别 display: none 使元素及其占位完全消失&#xff1a;元素及其所有子元素将从文档流和布局中完全消失&#xff0c;就像它们不存在一…

对于高速信号完整性,一块聊聊啊(17)

再来对前仿和后仿的仿真内容回顾一下&#xff1a; 从概念上有个根本的理解 前仿真又可以分为布局前仿真和布局后仿真。前者是在设计的最初阶段&#xff0c;建立和验证详细的电气拓扑结构并以此制定出详细的约束规则。后者是在布局完成的状态下&#xff0c;在布线过程中遇到的…

论文阅读:Correcting Motion Distortion for LIDAR HD-Map Localization

目录 概要 Motivation 整体架构流程 技术细节 小结 论文地址&#xff1a;http://arxiv.org/pdf/2308.13694.pdf 代码地址&#xff1a;https://github.com/mcdermatt/VICET 概要 激光雷达的畸变矫正是一个非常重要的工作。由于扫描式激光雷达传感器需要有限的时间来创建…

python如何安装tar.gz

首先我们到官网下载tar.gz。 然后解压我们下载的pip-9.0.1文件&#xff0c;我的解压后放在d&#xff1a;/p下 运行cmd&#xff0c;输入cd d:\p&#xff0c;按回车键&#xff0c;随后再次输入d: 在d:\p>的光标处输入pip-9.0.1\setup.py install&#xff0c;然后按回车键。 最…

图片转excel表格工具的工具,分享3个专业的识别软件!

在数字化时代&#xff0c;我们时常面临将图片中的表格数据转换为可编辑的Excel表格的需求。无论是工作中的数据整理&#xff0c;还是学习中的资料汇总&#xff0c;这一需求都显得尤为迫切。幸运的是&#xff0c;市面上已经涌现出众多优秀的图片转Excel表格工具&#xff0c;它们…

长方形边框 上方中间有缺口 css

<div class"text_6">大234234师掌4234柜</div><div class"text-wrapper_1"><span class"paragraph_1">四川慧创云戈科技有限公司推出的“大师掌柜”&#xff0c;是一个以餐饮外卖为切入口&#xff0c;专注实体小店新零售…

windows10远程桌面端口,修改Windows 10远程桌面端口的步骤

在Windows 10操作系统中&#xff0c;远程桌面功能为企业用户、技术支持人员以及个人用户提供了极大的便利&#xff0c;允许他们远程访问和管理另一台计算机的桌面环境。然而&#xff0c;默认的远程桌面端口&#xff08;通常为3389&#xff09;常常成为安全漏洞的潜在目标&#…

vscode中更改 git托管的项目里的文件 不显示在 修改项 changes里面

目录 一、问题 二、原因及解决方法 三、总结 tiips:如嫌繁琐&#xff0c;直接移步总结即可&#xff01; 一、问题 1.在vscode中修改 从 git拉取下来的代码&#xff0c;本地不显示被修改的文件&#xff1b;文件夹只有最外层显示红色修改图标;但是里面的被修改的文件也没有被…

Mysql中的慢查询

Mysql慢查询的一些sql命令 慢查询的默认事件为10秒 #注意&#xff1a;慢查询一般是在调试阶段开启的&#xff0c;在开发阶段中一般不会开启&#xff0c;会对效率产生延误 #查询慢查询是否开启 show variables like %general%; #慢查询时间设置 show variables like long_query…

数据库约束命令

mysql中&#xff1a; id中存在auto_increment CREATE TABLE u_user(id int PRIMARY KEY auto_increment,u_name VARCHAR(10) NOT NULL UNIQUE,age int CHECK(age>0 && age<120),u_status char(1) DEFAULT(1),gender char(1) ); INSERT into u_user(u_name,age,u…

智能监控技术助力山林生态养鸡:打造智慧安全的养殖新模式

随着现代科技的不断发展&#xff0c;智能化、自动化的养殖方式逐渐受到广大养殖户的青睐。特别是在山林生态养鸡领域&#xff0c;智能化监控方案的引入不仅提高了养殖效率&#xff0c;更有助于保障鸡只的健康与安全。视频监控系统EasyCVR视频汇聚/安防监控视频管理平台在山林生…

百亿数据存储-高并发搜索如何设计?

最近好多小伙伴都跑来问小北&#xff0c;百亿级别的数据存储要怎么设计架构啊&#xff1f; 听说面试里经常问到这个问题。 就像前几天&#xff0c;有位同学去字节面试&#xff0c;就碰到了这个问题&#xff1a; “百亿级数据存储&#xff0c;你怎么设计&#xff1f;” 他们回答…

NTP服务的DDoS攻击:原理和防御

NTP协议作为一种关键的互联网基础设施组件&#xff0c;旨在确保全球网络设备间的时钟同步&#xff0c;对于维护数据一致性和安全性至关重要。然而&#xff0c;其设计上的某些特性也为恶意行为者提供了发动大规模分布式拒绝服务(DDoS)攻击的机会。以下是NTP服务DDoS攻击及其防御…