D触发器

D触发器

1.     一个基本的上升沿D触发器


根据上面的电路符号和功能表不难看出,一个基本的D 触发器的工作原理为:当时钟信号的上升沿到来时,输入端口D 的数据将传递给输出端口Q 和输出端口Q。在此,输出端口Q 和输出端口Q 除了反相之外,其他特性都是相同的。

程序如下:

module D_flip_flop(

    input [1:0] d,

    input clk,

    output reg[1:0] q,

    output reg[1:0] qb

    );

      always @(posedge clk)            //时钟上升沿触发D触发器

             begin

                    q<= d ;

                    qb<= ~d ;

             end

endmodule

2.     同步复位的D 触发器

在数字电路中,一种常见的带有同步复位控制端口的上升沿D 触发器的逻辑电路符号如图3.3所示,它的功能表如表3.2 所示。


不难看出,只有在时钟信号的上升沿到来并且复位控制端口的信号有效时,D 触发器才进行复位操作,即将输出端口Q 的值置为逻辑0,而把输出端口Q 的值置为逻辑1。

程序代码如下:

       module D_flip_flop_2(

    input [1:0] d,

    input clk,

    input reset,

    output reg [1:0] q,

    output reg [1:0] qb

    );

       always @ (posedge clk)           //时钟上升沿时触发D触发器

              begin

                     if(!reset)             //reset为低电平时,D触发器置0

                            begin

                                   q<= 2'b00 ;

                                   qb<= 2'b11 ;

                            end

                     else                       //reset为高电平时,q=d, qb = ~d ;

                            begin

                                   q<= d ;

                                   qb<= ~d ;

                            end

              end

endmodule

3.     异步复位的D 触发器

常见的带有异步复位控制端口的上升沿D 触发器的逻辑电路符号如图3.4所示,它的功能表如表3.3 所示。不难看出,只要复位控制端口的信号有效,D 触发器就会立即进行复位操作。可见,这时的复位操作是与时钟信号无关的。


程序代码如下:

       module D_flip_flop_3(

    input [1:0] d,

    input clk,

    input reset,

    output reg[1:0] q,

    output reg[1:0] qb

    );

       always @ (posedge clk ornegedge reset)         //时钟上升沿或reset下降沿时,触发D触发器

              begin

                     if(!reset)       //reset为低电平时,D触发器置0

                            begin

                                   q<= 2'b00 ;

                                   qb<= 2'b11 ;

                            end

                     else             //reset为高电平时,D触发器处于工作状态

                            begin

                                   q<= d ;

                                   qb<= ~d ;

                            end

              end

endmodule

4.     同步置位/复位的D 触发器

带有同步置位/复位端口的上升沿D 触发器的逻辑电路符号如图3.5 所示,它的功能表如表3.4所示。不难看出,只有在时钟信号的上升沿到来并且同步置位/复位端口的信号有效时,D触发器才可以进行置位或者复位操作。


       程序代码如下:

module D_flip_flop_4(

    input [1:0] d,

    input clk,

    input reset,

    input set,

    output reg[1:0] q,

    output reg[1:0] qb

    );

       always @ (posedge clk)           //时钟上升沿时,触发D触发器

              begin

                     if(!set&& reset)       //set为低电平,reset为高电平时,D触发器置1

                            begin

                                   q<= 2'b11 ;

                                   qb<= 2'b00 ;

                            end

                     else if (set&& !reset)    //set为高电平,reset为低电平时,D触发器置0

                            begin

                                   q<= 2'b00 ;

                                   qb<= 2'b11 ;

                            end

                     else                     //D触发器正常工作

                            begin

                                   q<= d ;

                                   qb<= ~d ;

                            end

              end

endmodule

要使用Logisim设计一个支持异步复位和上升沿触发的4位D触发器寄存器,首先需要熟悉D触发器的基本概念以及如何在Logisim中使用它。D触发器是一种时序逻辑电路组件,它在时钟信号的上升沿将输入D的值存储并输出,常用于构建寄存器和计数器。以下步骤将指导你完成设计: 参考资源链接:[Logisim实战:时序逻辑电路设计与4位寄存器与6进制计数器详解](https://wenku.csdn.net/doc/1ntwvjjahb?spm=1055.2569.3001.10343) 1. 打开Logisim软件,创建一个新的电路文件。 2. 从侧边栏的&#39;触发器&#39;门中选择D触发器,并将其放置在画布上。你可能需要多次拖拽以构建所需的4位宽度。 3. 设置每个D触发器的输入和输出,使得它们的输出连接到下一个触发器的输入,形成级联结构,确保数据可以顺序移动。 4. 为每个D触发器添加一个异步复位功能。在Logisim中,你可以通过双击D触发器,然后在弹出的属性对话框中勾选异步复位复选框来实现。 5. 设置时钟输入。选择&#39;输入/输出&#39;门组中的&#39;时钟&#39;组件,将时钟信号连接到所有D触发器时钟输入。这样所有触发器将在相同的时钟信号上升沿同步更新。 6. 连接数据输入和输出口。创建用于输入数据的口,并将它们连接到D触发器的第一个输入;创建输出口并将它们连接到每个D触发器的输出。 7. 测试设计。通过单击时钟组件来模拟时钟信号的上升沿,同时在输入口上设置不同的值来测试寄存器是否能够正确存储和输出数据。 设计4位D触发器寄存器时,要注意数据线的正确连接,确保没有错误的布线。此外,测试阶段应验证异步复位功能是否能够将寄存器中的所有值清零,并且寄存器仅在时钟信号的上升沿时改变状态。 为了深入理解并掌握更多关于时序逻辑电路的设计技巧,建议查阅《Logisim实战:时序逻辑电路设计与4位寄存器与6进制计数器详解》。这份资源将为你提供从基本原理到高级应用的全面指导,帮助你在数字电路设计领域达到更高的水平。 参考资源链接:[Logisim实战:时序逻辑电路设计与4位寄存器与6进制计数器详解](https://wenku.csdn.net/doc/1ntwvjjahb?spm=1055.2569.3001.10343)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值