【FGPA】Verilog:JK 触发器 | D 触发器 | T 触发器 | D 触发器的实现

news2024/11/25 7:11:18


0x00 JK 触发器

JK 触发器是 RS 触发器和 T 触发器的组合,有两个输入端 J 和 K,如果两个输入端都等于 1,则将当前值反转。

行为表

状态图

Timing Diagram

Circuit

JK 触发器的设计目的是防止 RS 触发器在输入 S 和 R 均等于 1 的值时被浪费,因为该值被认为是非法输入。它与 RS 触发器相同,不同之处在于如果输入值为 1,1,它不会作为非法值被接受,而是作为当前存储值的反相值被接受。

0x01 D 触发器

D 型触发器是触发器中最简单的一种。D 型触发器的名称来源于 "延迟"(Delay)一词,因为输出是输入的延迟值,直到下一个有效时钟转换为止。换句话说,D 型触发器的下一个状态是在有效时钟转换发生之前 D 的输入值。触发器有两种类型:跟踪边沿触发和前沿触发。

行为表

D

q

q*

0

0

0

0

1

0

1

0

1

1

1

1

D

q*

0

0

1

1

状态图

Timing Diagram

Circuit

0x02 D 触发器的实现

真值表:

D Flip Flop Truth Table

Input

Output

입력 순서

D

Q

~Q

1

0

0

1

2

0

0

1

3

1

1

0

4

0

0

1

5

1

1

0

6

1

1

0

💬 Design source:

`timescale 1ns / 1ps

module DFF(
    input clk,
    input D,
    input CLR,
    output Q,
    output Qp
);

reg Q;

// falling edge triggered
always @(posedge !clk) begin
    if(CLR) Q<=1'b0;
    else begin
        if((D==1'b0)) Q<=1'b0;
        else if((D==1'b1)) Q<=1'b1;
    end
end

assign Qp = ~Q;

endmodule

💬 Testbench:

`timescale 1ns / 1ps

module DFF_tb;
reg clk, D, CLR;
wire Q, Qp;

DFF u_DFF(
    .clk(clk ),
    .D(D ),
    .CLR(CLR ),
    .Q(Q ),
    .Qp(Qp ) 
);

initial clk = 1'b0;
initial CLR = 1'b1;
initial D = 1'b0;

always clk = #50 ~clk;

always@(CLR) begin
    CLR = #125 ~CLR;
end

always@(D) begin
    D = #375 ~D;
    D = #50 ~D;
end

always@(D) begin
    D = #575 ~D;
    D = #50 ~D;
end

always@(D) begin
    D = #675 ~D;
    D = #50 ~D;
end

initial begin
    #800
    $finish;
end

endmodule

🚩 运行结果如下:

Schematic:

D 触发器在时钟的上升沿或下降沿将其输入端 D 的值直接传递到输出端 Q。设计了一个具有下降沿触发器的 D 触发器,并编写了代码来检查 D 的值和时钟的值,以确保当时钟的值从 1 下降到 0 时,存储在 D 中的值被存储到 Q 中。

📌 [ 笔者 ]   王亦优
📃 [ 更新 ]   2023.11.28
❌ [ 勘误 ]   /* 暂无 */
📜 [ 声明 ]   由于作者水平有限,本文有错误和不准确之处在所难免,
              本人也很想知道这些错误,恳望读者批评指正!

📜 参考资料 

Introduction to Logic and Computer Design, Alan Marcovitz, McGrawHill, 2008

Microsoft. MSDN(Microsoft Developer Network)[EB/OL]. []. .

百度百科[EB/OL]. []. https://baike.baidu.com/.

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

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

相关文章

Unity学习笔记11

一、视频播放功能 1.如何让视频在游戏场景中播放&#xff1f; 在Assets目录下添加一个渲染器纹理&#xff0c;步骤&#xff1a;新建→渲染器纹理 首先在创建一个平面&#xff0c;想让视频在平面上显示。在平面上添加一个组件 Video Player 然后将视频文件拖拽到视频剪辑位置上…

sed应用

一.sed 1.Sed概述 sed编辑器时一种流编辑器&#xff0c;流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。 sed编辑器可以根据命令来处理数据流中的数据&#xff0c;这些命令要么从命令行中输入&#xff0c;要存储在一个命令文本文件中。 2.sed命令的格…

网络安全--基于Kali的网络扫描基础技术

文章目录 1. 标准ICMP扫描1.1使用Ping命令1.1.1格式1.1.2实战 1.2使用Nmap工具1.2.1格式1.2.2实战1.2.2.1主机在线1.2.2.2主机不在线 1.3使用Fping命令1.3.1格式1.3.2实战 2. 时间戳查询扫描2.1格式2.2实战 3. 地址掩码查询扫描3.1格式3.2实战 2. TCP扫描2.1TCP工作机制2.2TCP …

IDEA编译器的永久试用设置与基本使用

参考视频&#xff1a; 最通俗易懂的JDK、IDEA的安装使用权威指南 2023新版前端Web开发HTML5CSS3移动web视频教程&#xff0c;前端web入门首选黑马程序员 文章目录 一.安装包下载与安装二.设置IDEA永久试用三.IDEA的基本试用0.IDEA管理Java程序的结构1.工程创建2.模块创建3.包创…

【Java】使用 IDEA 快速生成 SpringBoot 模块

项目目录下新建 module 模块 在 pom.xml 更改为 spring initializr 配置之后的 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchem…

yolov8-seg 分割推理流程

目录 一、分割检测 二、图像预处理 二、推理 三、后处理与可视化 3.1、后处理 3.2、mask可视化 四、完整pytorch代码 一、分割检测 注&#xff1a;本篇只是阐述推理流程&#xff0c;tensorrt实现后续跟进。 yolov8-pose的tensorrt部署代码稍后更新&#xff0c;还是在仓…

如何根据接口文档,轻松快速的模拟接口服务?

什么是WireMock? WireMock 是一个Http 模拟服务,其核心也是一个web服务,WireMock主要是为特定请求提供固定的返回值。 WireMock可以作为单独进程启动,模拟一个WEB服务器,提供一些API访问,并返回特定的返回值。也可以作为第三方库在项目中使用。 如何使用 standalone方…

csdn博客编写技巧

随便记录一下csdn博客编写时候用的到技巧&#xff0c;以作备忘。 1. 表格 1.1 Markdown-Table-Generator 这个是csdn编辑器中&#xff0c;工具栏自带的表格用法。主要优点是比较直观&#xff0c;缺点是无法设置表格中行列的宽高。 用法&#xff1a; | 表头一 | 表头二 | |-…

贪心算法(新坑)

贪心入门 概述&#xff1a; 贪心算法是一种在每一步选择中都采取当前最优解的策略&#xff0c;希望最终能够得到全局最优解的算法。简单来说&#xff0c;它会不断地做出局部最优的选择&#xff0c;相信通过这种选择最终能够达到全局最优。 举个例子来说明。假设你要从一个迷…

Vue基本使用(一)

&#x1f4d1;前言 本文主要是【Vue】——Vue基本使用的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f304;每日一句&#x…

【CAD二次开发】标注箭头,获取修改标注箭头图块

常见的的标注箭头有以下种类 public static List<string> ArrowBlock = new List<string>(){" ","_CLOSEDBLANK&

淘宝API接口系列:连接商户与消费者的桥梁

一、引言 淘宝&#xff0c;作为中国最大的电商平台之一&#xff0c;拥有数以亿计的注册用户和海量的商品信息。淘宝API接口作为连接商户与消费者的重要桥梁&#xff0c;为开发者提供了丰富的电商资源&#xff0c;帮助他们创新和优化业务。本文将深入探讨淘宝API接口的相关知识…

软件设计开发规程文件

《软件设计开发规程文件》 目的&#xff1a;为需求设计、开发、实现解决方案。

LLM大语言模型

大语言模型的定义 大语言模型&#xff08;英文&#xff1a;Large Language Model&#xff0c;缩写LLM&#xff09;&#xff0c;也称大型语言模型&#xff0c;是一种人工智能模型&#xff0c;旨在理解和生成人类语言。它们在大量的文本数据上进行训练&#xff0c;可以执行广泛的…

怎么更新BI报表数据?问我就对了

BI大数据分析工具上有大量的BI报表模板&#xff0c;这些模板都是一个个完整的BI报表&#xff0c;只需将数据源更换&#xff0c;立即就能用来分析我们自己的数据。那&#xff0c;BI报表的数据怎么更新&#xff1f;接下来就来说说这事。 目的&#xff1a;更新BI报表数据 工具&a…

PPSSPP (PSP游戏模拟器)最新版安装使用教程

PPSSPP优势 1、目前唯一的也是最好的psp模拟器 可运行绝大多数psp游戏且运行高速&#xff0c;即使是低配手机也能游玩经典大作。 2、支持自定义调节虚拟手柄和实体手柄连接 ppsspp模拟器支持使用虚拟手柄或者连接实体手柄游玩&#xff0c;同时还可以自定义调节按键选项。 …

微信小程序+中草药分类+爬虫+keras

目录 1 介绍2 数据爬虫3 模型训练和验证3.1 模型训练3.2 导入一张图片进行验证 4 后台flask部署5 微信小程序 1 介绍 本项目使用深度学习模型&#xff0c;训练5种中药材数据集&#xff0c;然后将其集成到微信小程序&#xff0c;通过微信小程序拍照&#xff0c;将图片传输给后端…

蓝桥杯day02——Fizz Buzz

1、题目 给你一个整数 n &#xff0c;找出从 1 到 n 各个整数的 Fizz Buzz 表示&#xff0c;并用字符串数组 answer&#xff08;下标从 1 开始&#xff09;返回结果&#xff0c;其中&#xff1a; answer[i] "FizzBuzz" 如果 i 同时是 3 和 5 的倍数。answer[i] &…

GitLab 登录中,LDAP和 Standard 验证有什么区别

在 GitLab 中&#xff0c;LDAP&#xff08;Lightweight Directory Access Protocol&#xff09;和 Standard 验证是两种不同的身份验证方法&#xff0c;它们有以下区别&#xff1a; LDAP&#xff08;Lightweight Directory Access Protocol&#xff09;身份验证&#xff1a; L…

uniapp中uni.navigateBack返回后刷新页面数据

文章目录 一、前言1.1、[uni.navigateBack](https://uniapp.dcloud.net.cn/api/router.html#navigateback) 二、方法2.1、父页面设置钩子函数onBackPress2.2、uni.$emit和uni.$on监听通知数据变更2.2.1、子页面2.2.2、父页面 2.3、onShow钩子函数处理数据2.3.1、子页面2.3.2、父…