数字IC笔面基础之触发器——DFF、TFF、JKFF(附Verilog实现)
数字IC笔面基础之触发器
- 写在前面的话
- 关键点:
- D触发器
- 基本正边沿触发D触发器
- 异步复位D触发器
- 带清零和置一的D触发器
- T触发器
- JK触发器
- 总结
写在前面的话
触发器是数字IC最基础的知识点,区别于锁存器,触发器是只有在时钟信号触发时才能动作的存储单元,每个触发器可以存储1位二值信号。触发器有两个基本特点:
(1)具有自行保持稳定状态,包含逻辑0和逻辑1。
(2)可以根据输入信号置为1或0状态。
关键点:
笔面时常考的知识点是区分锁存器(Latch)和触发器(Flip-Flop),了解哪些代码风格可能会被综合成Latch,尽量避免。(在实际项目中有时需要故意生成Latch)
锁存器(Latch):电平触发,数据存储取决于信号的电平值。电平有效时,输出信号被锁存。
锁存器如下:
触发器(Flip-Flop):边沿触发,数据存储取决于信号的上升沿或下降沿。
触发器如下:
寄存器(Register): Verilog中用来暂时存放数据的变量。变量被声明为寄存器时,可能被综合成Latch或者Fliop-Flop。
锁存器和触发器优缺点:
锁存器优点:
(1)面积比触发器小
门电路时构建组合逻辑电路的基础,而锁存器和触发器是构成时序逻辑电路的基础。
晶体管>>门电路>>锁存器>>触发器
Latch完成同一个功能所需的门较触发器要少,在ASIC中用的比较多。
(2)速度比触发器快
用来地址锁存是很合适,不过一定要保证所有的Latch信号源的质量,锁存器在CPU设计中很常见,锁存器使得CPU的速度比外部IO部件逻辑快很多。
锁存器缺点:
(1)电平触发,非同步设计,受布线延迟影响较大,很难保证输出没有毛刺。
(2)Latch将静态时序分析变得极其复杂。
触发器优点:
(1)边沿触发,同步设计,不容易受毛刺的影响。
(2)时序分析简单
触发器缺点:
(1)面积比Latch大,消耗的门电路比latch多。
(2)过多的触发器使得数据逻辑变得复杂。
D触发器
D触发器的次态取决于触发之前D端口的状态。
基本正边沿触发D触发器
// -----------------------------------------------------------------------------
// Copyright (c) 2014-2022 All rights reserved
// -----------------------------------------------------------------------------
// Author : HFUT904 1320343336@qq.com
// File : dff.v
// Create : 2022-11-01 11:10:05
// Revise : 2022-11-01 11:10:05
// Editor : HFUT Integrated Circuit Design & Research Center
// Verdion: v1.0
// Description: 正边沿触发 DFF
// -----------------------------------------------------------------------------
module dff (input clk , // Clockinput d , // inputoutput reg q // output
);always @(posedge clk ) begin //上升沿触发q <= d ;
endendmodule
异步复位D触发器
// -----------------------------------------------------------------------------
// Copyright (c) 2014-2022 All rights reserved
// -----------------------------------------------------------------------------
// Author : HFUT904 1320343336@qq.com
// File : asdff.v
// Create : 2022-11-01 11:14:23
// Revise : 2022-11-01 11:14:23
// Editor : HFUT Integrated Circuit Design & Research Center
// Verdion: v1.0
// Description: 异步复位 DFF
// -----------------------------------------------------------------------------
module asdff (input clk , // Clockinput rst_n , // Asynchronous reset active lowinput d , // inputoutput reg q //output
);always @(posedge clk or negedge rst_n) begin if(~rst_n) beginq <= 1'b0 ;end else beginq <= d ;end
end
endmodule
带清零和置一的D触发器
// -----------------------------------------------------------------------------
// Copyright (c) 2014-2022 All rights reserved
// -----------------------------------------------------------------------------
// Author :HFUT904 1320343336@qq.com
// File : csdff.v
// Create : 2022-11-01 15:23:49
// Revise : 2022-11-01 15:23:49
// Editor : HFUT Integrated Circuit Design & Research Center
// Verdion: v1.0
// Description: 带清零和置位 DFF
// -----------------------------------------------------------------------------
module csdff (input clk , // Clockinput set , // setinput rst_n , // Asynchronous reset active lowinput d , //input output reg q //output
);always @(posedge clk , negedge rst_n , posedge set) begin if(~rst_n) beginq <= 1'b0 ;end else if(set) beginq <= 1'b1 ;endelse beginq <= d ;end
endendmodule
T触发器
T触发器是在数字电路中,凡在CP时钟脉冲控制下,根据输入信号T取值的不同,具有保持和翻转功能的触发器,即当T=0时能保持状态不变,当T=1时一定翻转的电路。
// Copyright (c) 2014-2022 All rights reserved
// -----------------------------------------------------------------------------
// Author : HFUT904 1320343336@qq.com
// File : tff.v
// Create : 2022-11-01 15:31:04
// Revise : 2022-11-01 15:31:04
// Editor : HFUT Integrated Circuit Design & Research Center
// Verdion: v1.0
// Description:TFF
// -----------------------------------------------------------------------------
module tff ( input clk ,input rst_n ,input T ,output reg Q );//特征方程写法always @(posedge clk or negedge rst_n) beginif(~rst_n) beginQ <= 0;end else beginQ <= (T&~Q)|(~T&Q) ;endend//查找表写法/*always@(posedge clk) beginif(T==1'b1)Q <= ~Q ;elseQ <= Q ;end*/endmodule
JK触发器
JK触发器是数字电路触发器中的一种基本电路单元。JK触发器具有置0、置1、保持和翻转功能。在各类集成触发器中,JK触发器的功能最为齐全。在实际应用中,它不仅有很强的通用性,而且能灵活地转换其他类型的触发器。由JK触发器可以构成D触发器和T触发器。
// -----------------------------------------------------------------------------
// Copyright (c) 2014-2022 All rights reserved
// -----------------------------------------------------------------------------
// Author : HFUT904 1320343336@qq.com
// File : jkff.v
// Create : 2022-11-01 15:33:16
// Revise : 2022-11-01 15:33:16
// Editor : HFUT Integrated Circuit Design & Research Center
// Verdion:
// Description:
// -----------------------------------------------------------------------------
module jkff (input clk ,input rst_n ,input J ,input K ,output reg Q
);//状态方程写法always @(posedge clk or negedge rst_n) beginif(~rst_n) beginQ <= 1'b0;end else beginQ <= (J&~Q)|(~K&Q) ;endend//查找表写法/*always@(posedge clk ) begincase({J,K})2'b00: Q <= Q ;2'b01: Q <= 1'b0 ;2'b10: Q <= 1'b1 ;2'b11: Q <= ~Q ;endcase end*/endmodule
总结
触发器作为数字IC最基础的内容,常常会考手撕代码、门级电路组成、与锁存器的优缺点、代码风格避免生成latch等内容。在跨时钟域中也会用两级DFF避免亚稳态的产生,我在笔面中遇见最多的是DFF和TFF,会结合建立时间、保持时间、跨时钟域、代码风格等一起考。建议各位同学注意触发器的底层电路,切实体会触发器和锁存器的区别。
数字IC笔面基础之触发器——DFF、TFF、JKFF(附Verilog实现)相关推荐
- 数字IC笔面基础,动不动就手撕——奇偶分频器(分频器简介和Verilog实现)
分频器简介和Verilog实现 写在前面的话 偶数分频 级联触发器实现2^n偶数分频 计数器实现2n偶数分频 奇数分频(常考) 奇数分频,占空比50%(最常考,要求熟练掌握一种) OR操作,2N+1 ...
- 数字IC笔面基础,师傅领进门,修行靠个人——人人心中都有一个状态机(状态机简介及Verilog模板)
师傅领进门,修行靠个人(状态机) 写在前面的话 状态机简介 状态机类型 一段.两端还是三段? 状态机的Coding Style要求: 几点规则: 什么是一段.两段.三段? 一段.两段.三段优缺点 Ve ...
- 数字IC笔试题,大疆校招16题(仅供参考)
\\\插播一条: 自己在今年整理一套单片机单片机相关论文800余篇 论文制作思维导图 原理图+源代码+开题报告+正文+外文资料 想要的同学私信找我. 数字IC笔试题,大疆校招16题(仅供参考) 1.异 ...
- 转行人必看:数字IC前端设计学习路线与方法(内附学习视频)
众所周知,数字前端设计对于工程师的能力要求比较高,不仅有学历上的要求,还要求掌握很多的知识技能.不少跨专业想要转行的小伙伴对数字前端设计这个岗位不是很了解,下面IC修真院就带大家全面了解一下数字IC前 ...
- 数字IC笔试题---千题解,量大管饱,图文并茂
前言 出笔试题汇总,是为了总结秋招可能遇到的问题,做题不是目的,在做题的过程中发现自己的漏洞,巩固基础才是目的. 所有题目结果和解释由笔者给出,答案主观性较强,若有错误欢迎评论区指出,资料整理来自于& ...
- 建议收藏:不能不刷的100道数字IC笔/面试题!
一.IC设计流程及相应EDA开发工具 前端设计(逻辑设计) 1.规格制定 根据客户需求(具体的功能和性能要求)制定芯片规格Spec 2.详细设计 设计方案,具体实现架构,模块划分 3.HDL编码 将实 ...
- 数字IC笔面常考,跨时钟域神器。——异步FIFO(简介及手撕代码)
异步FIFO 写在前面的话 异步FIFO相关知识点 FIFO简介 FIFO结构 应用场景(来源小梅哥 <FPGA 系统设计与验证实战指南> 章节4.4) 相关参数 异步FIFO 内部组成 ...
- 南芯半导体数字IC笔试题
笔试题型 总共八道题,其中前四道为5分的画图题和简答题,后四道为20分的设计题和简答题,题目较为基础,难度不大. (1)跨时钟域的问题 (2)竞争与冒险 (3)数字IC的素质与技能 (4)消除毛刺电路 ...
- 数字IC笔面试(一)——联发科提前批笔试题记录
六月底参加了联发科提前批的数字IC笔试,自己能会一些的无非就是FPGA部分,还是凉凉了,不好好准备还是不行!!本文记录一下题目,毕竟复盘很重要啊,同时加入一些小的理解,若有错误,请指正,谢谢!! 对联 ...
最新文章
- 打架斗殴烫头酗酒抽烟的小混混,逆袭保送中国科学院,后来怎么样了?
- 文巾解题 27. 移除元素
- 三、入门实例----基于注解
- 请求发送者与接收者解耦——命令模式
- Blazor Server 应用程序中进行 HTTP 请求
- ABP vNext中使用开源日志面板 LogDashboard
- linux 浏览器 links,linux下的命令行浏览器links
- JVM和JMM的区别
- DebugOutputString 使用
- 为Openstack制作CentOS7镜像
- 连续被巨头青睐,SpaceX 部分新项目原型系 Rust 构建
- React-Native入门(2)-简单阐述跳转
- 1081 检查密码 (15 分)—PAT (Basic Level) Practice (中文)
- JavaScript中清空数组的三种方式
- 视频文件损坏怎么修复,赤兔视频修复软件助您
- MATLAB 基础知识 数据类型 分组数组 创建分类数组
- android studio如何多moudle依赖同一个gradle配置
- 【python】 turtle实现汉诺塔游戏动画过程
- 串口通信协议(基于面试),与及树莓派与电脑之间串口通信
- 2009-12-20 EXCEL比对数据