硬件描述语言 第4章 D触发器

参考文献
https://www.elecfans.com/dianzichangshi/20180131626849.html
https://www.cnblogs.com/lbo1023/p/18578267
https://zhuanlan.zhihu.com/p/603383032
https://blog.youkuaiyun.com/weixin_51116586/article/details/134987420
https://zhuanlan.zhihu.com/p/702473095
https://www.elecfans.com/d/2041114.html

https://gitcode.youkuaiyun.com/65ec4d771a836825ed7976c7.html?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MjIxMjg0NSwiZXhwIjoxNzQyNjMwNTA3LCJpYXQiOjE3NDIwMjU3MDcsInVzZXJuYW1lIjoiemhhbmdnZW5nMDEwMSJ9.we2ElHQiKH9dxhDEFDuKt5h7AVB0b7GnE-7bA93uvZo&spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Eactivity-1-122759609-blog-126988277.235%5Ev43%5Epc_blog_bottom_relevance_base4&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Eactivity-1-122759609-blog-126988277.235%5Ev43%5Epc_blog_bottom_relevance_base4&utm_relevant_index=1

https://www.cnblogs.com/amxiang/p/17090055.html
https://blog.youkuaiyun.com/aningxiaoxixi/article/details/145101102
https://zhuanlan.zhihu.com/p/67511756
https://blog.youkuaiyun.com/weixin_50037440/article/details/134511984
https://zhuanlan.zhihu.com/p/902081415


前言

本文介绍D触发器的基础内容。


一、D触发器原理

1.工作原理

D触发器(D Flip-Flop)是数字电路中的一种基本组件,主要用于存储一位二进制信息。它有一个数据输入端(D),一个时钟输入端(CLK),以及通常有两个互补的输出端(Q和Q’)。在时钟信号的上升沿或下降沿(取决于设计),D触发器会将输入的数据捕获并传递到输出端,直到下一个时钟脉冲到来。

D触发器可分为电平触发及边沿触发。

对于边沿触发式D 触发器,有「时钟」和「数据」两个输入,功能是这样的:

(1)当时钟的上升沿或下降沿到来时,根据外界输入的数据,改变自身内部状态。
(2)在其它时候,保持自身的内部状态不变。

边沿触发式D 触发器用了 6 个与非门,它的电路图长这样:
在这里插入图片描述
1、4 号负责接收输入数据,2、3 号直接受时钟控制,5、6 号负责记忆及输出。

功能作用:
(1)边沿触发:D触发器通常是边沿触发的,这意味着它们只在时钟信号从低到高(上升沿触发)或从高到低(下降沿触发)变化的时候才响应。这确保了数据在每个时钟周期内只会被处理一次,避免了竞争条件和亚稳态问题。

(2)数据存储:当有时钟边沿触发时,D触发器会读取D输入端的状态,并将其状态复制到输出Q上。如果D为高电平,则Q变为高;如果D为低电平,则Q变为低。Q’输出总是Q的反相。

(3)保持功能:一旦数据被捕捉到触发器内部,即使D输入端的状态改变,输出也不会改变,直到下一个时钟边沿到来。因此,D触发器可以用来保持数据的状态不变,直到新的数据被写入。

(4)异步控制(可选):某些D触发器还可能有清零(CLR)和置位(SET)输入端,用于异步地将输出设置为0或1,而不考虑时钟信号。这些输入通常被称为直接清除或直接设置。

2.RS触发器

在这里插入图片描述
逻辑功能表

(1)当/R和/S都为1时,无论触发器原先处于何种状态,它都将保持不变,这体现了触发器的记忆功能。若输入端/R和/S悬空,可默认它们为高电平,即/R=1,/S=1。

### 关于硬件描述语言的作业资料与练习 #### Verilog HDL 基础知识 Verilog HDL 是一种广泛应用于数字电路设计中的硬件描述语言。其基本语法结构包括模块定义、端口声明以及行为和结构化描述等内容[^1]。 以下是几个常见的 Verilog HDL 练习题及其对应的代码实现: #### 实践案例 1:半加器的设计 半加器是一个简单的组合逻辑电路,能够计算两个输入位的和并输出进位信号。 ```verilog module half_adder ( input a, input b, output sum, output carry ); assign sum = a ^ b; // 和等于异或运算 assign carry = a & b; // 进位等于与运算 endmodule ``` #### 实践案例 2:D 触发器的行为建模 D 触发器是一种同步时序元件,在时钟上升沿捕获输入数据 D 并将其传递到输出 Q。 ```verilog module d_flip_flop ( input clk, // 时钟信号 input reset_n, // 异步低电平复位 input d, // 数据输入 output reg q // 输出寄存器 ); always @(posedge clk or negedge reset_n) begin if (!reset_n) begin q <= 1'b0; // 复位状态下清零 end else begin q <= d; // 同步更新数据 end end endmodule ``` #### 实践案例 3:计数器设计 一个典型的 n 位二进制计数器可以通过累加操作来实现。 ```verilog module counter #(parameter WIDTH=4)( input clk, // 时钟信号 input reset_n, // 异步低电平复位 output reg [WIDTH-1:0] count ); always @(posedge clk or negedge reset_n) begin if (!reset_n) begin count <= {WIDTH{1'b0}}; // 清零计数值 end else begin count <= count + 1'b1; // 自增计数 end end endmodule ``` #### VHDL 的基础实践 VHDL 另一种主流硬件描述语言,具有严格的语法规则和支持高层次抽象的能力。下面提供了一个简单全加器的例子: ```vhdl entity full_adder is port( A : in std_logic; B : in std_logic; Cin : in std_logic; S : out std_logic; Cout : out std_logic ); end entity; architecture Behavioral of full_adder is begin S <= (A xor B) xor Cin; -- 计算和 Cout <= (A and B) or ((A xor B) and Cin); -- 计算进位 end architecture; ``` #### 教材与资源推荐 针对初学者而言,《计算机组成与设计》第五版提供了丰富的 RISC-V 架构相关内容,适合深入理解硬件软件接口原理[^4]。而《EDA 技术及应用》一书中涵盖了大量关于 Verilog 编程技巧以及实际工程经验分享,适合作为高校课程辅助材料或者自学指南[^3]。 需要注意的是,某些书籍可能存在不同版本间书写差异等问题,建议使用者仔细甄别所采用的标准是否一致以便减少困惑[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值