VL2 异步复位的串联T触发器
写在前面
- 这个专栏的内容记录的是牛客的Verilog题库刷题,附带RTL\TestBench,并进行覆盖率收集。
- 牛客算是一个
Verilog宝藏刷题网站
了,网站提供在线仿真环境,不用自己找题(点击直达),<刷题记录>专栏,持续打卡中…
文章目录
- 一、题目
- 1. 题目描述
- 2. 状态转换
- 3. 信号示意图
- 4. 波形示意图
- 5. 输入描述
- 6. 输出描述
- 二、分析
- 三、RTL
- 四、Testbench
- 五、结果分析
- (1)TB分析
- (2)波形图
- (3)覆盖率
一、题目
1. 题目描述
用verilog实现两个串联的异步复位的T触发器的逻辑
2. 状态转换
3. 信号示意图
4. 波形示意图
5. 输入描述
输入信号 | 类型 | 位宽 |
---|---|---|
data | wire | 1 |
clk | wire | 1 |
rst_n | wire | 1 |
6. 输出描述
输入信号 | 类型 | 位宽 |
---|---|---|
q1 | reg | 1 |
二、分析
由T触发器的特性表可以知道,当当前的输入为0时,无论输出是0还是1,输出的下一个状态均保持当前的输出值;当当前输入值是1时,输出的下一个状态是当前输出的取反。要求的时钟周期是5ns。
三、RTL
module Tff_2
(input clk ,input rst_n ,input data ,output reg q1
);reg data_buf;always @ (posedge clk or negedge rst_n) beginif (!rst_n) begindata_buf <= 1'b0;endelse if (data == 1) begindata_buf <= ~data_buf;endelse begindata_buf <= data_buf;end
endalways @ (posedge clk or negedge rst_n) beginif (!rst_n) beginq1 <= 1'b0;endelse if (data_buf == 1) beginq1 <= ~q1;endelse beginq1 <= q1;end
endendmodule
四、Testbench
`timescale 1ps/1psmodule tb_Tff_2;reg clk ;reg rst_n ;reg data ;wire q1 ;/*-----------------------------------------------\-- data | data_buf | next_data_buf ---- 0 | 0 | 0 ---- 0 | 1 | 1 ---- 1 | 0 | 1 ---- 1 | 1 | 0 --
\-----------------------------------------------*/initial beginclk = 1;rst_n = 1;data = 0;#2500 rst_n = 0; #5000 rst_n = 1; repeat(5)begincase_4(data,1);endrepeat(5)begincase_4(data,0);endrepeat(5)begincase_4(data,1);endrepeat(100)begincase_random(data); end
end/*-----------------------------------------------\-- --
\-----------------------------------------------*/
task case_4;output a;input b;case(b)0: #5000 a = 0;1: #5000 a = 1;endcase
endtasktask case_random;output a;#5000 a = {$random}%2;
endtask/*-----------------------------------------------\-- clock period is 5ns --
\-----------------------------------------------*/
always begin#2500 clk = ~clk;
end/*-----------------------------------------------\-- display --
\-----------------------------------------------*/
always @ (posedge clk ) begin $display("data = %d ; data_buf = %d ; q1 = %d",data,Tff_2.data_buf,q1);
endTff_2 tb_Tff_2(.clk (clk ),.rst_n (rst_n),.data (data ),.q1 (q1 ));initial #350000 $finish;
initial begin$fsdbDumpfile("Tff_2.fsdb");$fsdbDumpvars ;$fsdbDumpMDA ;
end
endmodule
五、结果分析
(1)TB分析
有TB测试结果可以看出,DUT符合“异步复位的串联T触发器”的预期功能
(2)波形图
(3)覆盖率
由覆盖率收集情况可以看到,涉及的行、信号翻转覆盖、分支覆盖率均是100%。
✍✍☛ 题库入口
经过一段时间的沉淀,发现入行IC行业,自己的底子还是很差,写的文章质量参差不齐,也没能解答大家的疑问。决定还是要实打实从基础学起,由浅入深。因此决定通过补充/完善基础知识的同时,通过题库刷题不断提高自己的设计水平,题库推荐给大家(点击直达),<题库记录>栏目不定期更新,欢迎前来讨论。
作者:xlinxdu
版权:本文版权归作者所有
转载:未经作者允许,禁止转载,转载必须保留此段声明,必须在文章中给出原文连接。
VL2 异步复位的串联T触发器相关推荐
- 异步复位的串联T触发器
异步复位的串联T触发器 T触发器的特征方程 Qn+1 = T Qn ' +T ' Qn = T⊕Qn T触发器的特征表 信号示意图 `timescale 1ns/1ns module Tff_2 ( ...
- FPGA刷题P1:4选1多路选择器、异步复位的串联T触发器、奇偶校验、移位拼接乘法
牛客网上面有FPGA的刷题平台,打算暑假把上面的题刷了,代码思路给大家分享 目录 4选1多路选择器 异步复位的串联T触发器 奇偶校验 移位拼接乘法 位拆分与运算 4选1多路选择器 这道题用组合逻辑,s ...
- HDLBits答案(10)_D触发器、同步与异步复位、脉冲边沿检测
D触发器.同步与异步复位.脉冲边沿检测 HDLBits链接 D触发器 定义: D触发器是一个具有记忆功能的,具有两个稳定状态的信息存储器件,触发器具有两个稳定状态,即"0"和&qu ...
- 异步复位,同步释放的理解
什么情况下复位信号需要做异步复位同步释放处理 异步复位同步释放原理 利用前面两级触发器实现特点 问题1 如果没有前面两级触发器的处理异步信号直接驱动系统的触发器会出现什么情况 问题2 复位信号存在亚稳 ...
- 数字电路设计——复位信号(异步复位、同步释放)
数字电路设计--复位信号(异步复位.同步释放) 概述 同步复位 优点 缺点: 例1 例2 代码风格 异步复位 异步复位优点 异步复位缺点 移除复位信号的问题 异步复位问题解决--复位同步器.复位毛刺过 ...
- vivado实现异步复位的D触发器
vivado实现异步复位的D触发器 异步复位的D触发器功能 常见的带有异步复位控制端口的上升沿 D 触发器的功能表如下表所示.不难看出,只要复位控制端口的信号有效,D 触发器就会立即进行复位操作.可见 ...
- verilog异步复位jk触发器_Verilog专题(九)DFF、Dlatch、JK flipflop
DFF.Dlatch.JK flip-flop 对于verilog的学习,这里推荐一个比较好的实践网站HDLBits: https://hdlbits.01xz.net/wiki/Main_Page ...
- verilog异步复位jk触发器_HDLBits: 在线学习Verilog(Problem 120-126)
这几天在刷HDLBits,参考的是HDLBits中文导学专栏:HDLBits中文导学,刷到120题的时候发现缺少了中间的120题到126题的解析,就打算自己边写边记录一下.也方便其他的同学进行参考. ...
- (33)VHDL实现异步复位D触发器
(33)VHDL实现异步复位D触发器 1.1 目录 1)目录 2)FPGA简介 3)VHDL简介 4)VHDL实现异步复位D触发器 5)结语 1.2 FPGA简介 FPGA(Field Program ...
- verilog异步复位jk触发器_异步复位同步释放原理
关键词:同步释放,recovery,removal 在数字IC设计中肯定会涉及到异步复位的问题,因为需要对电路进行复位操作.这种复位设计主要依靠前端设计以及工具来检查,从数字IC后端的角度上讲,只要在 ...
最新文章
- 系统架构设计理论与原则
- Occupations(表分割问题)
- .Net高并发解决思路(转)
- 数据去重复_字典应用实例(每行每列都要去重复值)
- Linux内核模块(二)
- 刺激战场c语言,刺激战场:假车库、C字楼都是啥?学会吃鸡术语新手变大神!...
- 4计算准确率_孩子计算总出错?4个好方法帮助低年级学生提高计算准确率!
- ubuntu 开启 rewrite 模块
- python编写arcgis脚本教程_ArcGIS使用Python脚本工具
- Zookeeper的内存数据和持久化
- 渗透测试中说的Shell和Webshll到底是什么
- 【编程小题目6】字符数统计
- 简单实用的Android ORM框架TigerDB
- 编写高质量代码改善C#程序的157个建议——建议30:使用LINQ取代集合中的比较器和迭代器...
- 金蝶kis专业版 服务器系统,金蝶kis专业版服务器设置
- 字节跳动2020春招笔试 - 研发岗位(Java、C++、大数据)
- Docker三剑客详解
- mysql统计没有参加考试的学生名单_sQL SERVER,帮我编写一个存储过程,查询没有参加考试的学生名单,要求显示姓名、学号,具体请补充:...
- 操作系统物理内存使用率高的解决方法
- 如鱼饮水,冷暖自知。
热门文章
- 【回眸】哈希值是什么
- 列表推导式[x for x in range(n)]
- 行人重识别论文阅读4,行人重识别实验笔记1-无锚行人搜索框架
- 基于ssm柴犬主题咖啡厅系统
- Php货币计算怎么样才严谨,php怎样【货币问答】- php怎样所有答案 - 联合货币
- JSP内置对象response常见用法
- 对于单峰函数(有唯一极值的函数),黄金分割法比二分法能用更少的搜索次数找到最优解(最值),这对于目标函数不可导时的最优解搜索很有效。
- 手把手教你阿里云服务器搭建网站(超详细图文)
- Codeforces Round #507 B. Shashlik Cooking
- 关于FileOpen2插件安装apk时闪退的解决办法