异步复位的串联T触发器

2024-04-21 05:52
文章标签 触发器 异步 复位 串联

本文主要是介绍异步复位的串联T触发器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

描述

题目描述:           

        用verilog实现两个串联的异步复位的T触发器的逻辑,结构如图:

信号示意图:

波形示意图:

输入描述:

        输入信号   data, clk, rst
        类型 wire
        在testbench中,clk为周期5ns的时钟,rst为低电平复位

输出描述:

        输出信号 q 
        类型  reg 

解题分析:

·T触发器是进入的值为1的时候,寄存的值发生翻转;

·注意异步复位

·需要注意寄存器翻转的逻辑,第二寄存器是否翻转取决于第一个寄存器是否为1,前者输出情况有三种:在data输入控制为1下从0到1到0不断翻转,data为0锁在1,data为0锁在0

T触发器的特性方程

Qn+1 = T Qn ' +T ' Qn = T⊕Qn
(其中Qn为现态,Qn+1为次态)

T触发器的特性表

T触发器的结构为:

代码如下:

`timescale 1ns/1ns
module Tff_2 (
input wire data, clk, rst,
output reg q  
);
//*************code***********//
reg q1;
always @(posedge clk or negedge rst)beginif(!rst)q1 <= 0;elsebeginif(data)q1 <= ~q1;elseq1 <= q1;endendalways @(posedge clk or negedge rst)beginif(!rst)q <= 0;elsebeginif(q1)q <= ~q;elseq <= q;endend
//*************code***********//
endmodule

 波形图如图所示:

这篇关于异步复位的串联T触发器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/922302

相关文章

Rust:Future、async 异步代码机制示例与分析

0. 异步、并发、并行、进程、协程概念梳理 Rust 的异步机制不是多线程或多进程,而是基于协程(或称为轻量级线程、微线程)的模型,这些协程可以在单个线程内并发执行。这种模型允许在单个线程中通过非阻塞的方式处理多个任务,从而实现高效的并发。 关于“并发”和“并行”的区别,这是两个经常被提及但含义不同的概念: 并发(Concurrency):指的是同时处理多个任务的能力,这些任务可能在同一时

FB是磁珠的符号,磁珠有很高的电阻率和磁导率,他等效于电阻和电感串联

磁珠有很高的电阻率和磁导率,他等效于电阻和电感串联,但电阻值和电感值都随频率变化。他比普通的电感有更好的高频滤波特性,在高频时呈现阻性,所以能在相当宽的频率范围内保持较高的阻抗,从而提高调频滤波效果。 作为电源滤波,可以使用电感。磁珠的电路符号就是电感但是型号上可以看出使用的是磁珠在电路功能上,磁珠和电感是原理相同的,只是频率特性不同罢了。   http://www.cnblogs.com/

玩转Web之easyui(二)-----easy ui 异步加载生成树节点(Tree),点击树生成tab(选项卡)

关于easy ui 异步加载生成树及点击树生成选项卡,这里直接给出代码,重点部分代码中均有注释 前台: $('#tree').tree({ url: '../servlet/School_Tree?id=-1', //向后台传送id,获取根节点lines:true,onBeforeExpand:function(node,param){ $('#tree').tree('options'

【Python】 异步编程

【Python】 异步编程 1. nest_asyncio基础定义2. nest_asyncio 举例实现基本用法 1. nest_asyncio基础定义 nest_asyncio.apply() 是 Python 编程中与异步编程相关的一个调用,它用于解决某些特定环境下的异步编程问题。下面是对这个调用的详细解释: nest_asyncio 模块:这是一个第三方库,它提供

AJAX:如何编写一个关于AJAX的Hello World?(ajax发送异步请求(四步操作))

用到的一个Servlet类: package cn.edu.web.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;impor

FPGA复位方式

1.同步复位:如果复位脉冲宽度小于时钟周期,系统识别不到 2.异步复位:如果复位释放在时钟有效沿附近,容易产生亚稳态 3.异步复位同步释放:推荐使用

iOS Runloop面试题(什么是异步绘制?)

什么是异步绘制? 异步绘制,就是可以在子线程把需要绘制的图形,提前在子线程处理好。将准备好的图像数据直接返给主线程使用,这样可以降低主线程的压力。 异步绘制的过程 要通过系统的 [view.delegate displayLayer:] 这个入口来实现异步绘制。 代理负责生成对应的 Bitmap设置该 Bitmap 为 layer.contents 属性的值。

协程: Flow 异步流 /

以异步方式返回多个返回值的方案: 在 Kotlin 协程 Coroutine 中 , 使用 suspend 挂起函数 以异步的方式 返回单个返回值肯定可以实现 , 如果要 以异步的方式 返回多个元素的返回值 , 可以使用如下方案 : 集合序列Suspend 挂起函数Flow 异步流 同步调用返回多个值的弊端   鸣谢: mAndroid面试题之Kotlin异步流、冷流Flow

VUE\JS处理在循环中异步和同步执行的问题

业务场景: 1、有一个组别集合,每一个小组别对象里面有一个数据集合,需要循环去校验每个不同组里的数据(不同组合因为一些特殊属性不能合并到一个组里),全都符合就通过验证,去处理后续业务。 2、现在,在校验规则方法里对一个集合里的每一条数据进行强校验和弱校验,弱校验需要在提升框放入确定的操作按钮,允许通过,再循环到下一条数据的验证。 代码分析 1、涉及到组别集合的循环、组别内部数据的循环,循环套

MySQL【触发器、存储过程、函数、范式】

day53 MySQL 触发器 创建触发器:(before : 前置触发器、after :后置触发器) 语法:delimiter xx 指定分隔符xxcreate trigger 触发器名 [before | after] 触发事件 on 表名 for each row 执行语句begin多条执行语句end 加上 “结束符xx”delimiter ;还原分隔符未; 注意: 由某个