D触发器中PRN、CLRN区别以及复位电平选择

本文介绍了D触发器中PRN和CLRN的区别,PRN用于异步置位使输出Q立即更新为输入D,而CLRN是异步复位,将输出Q置为低电平。复位电平的选择与FPGA芯片内部结构相关,如Xilinx的A7触发器复位端R是高电平有效,适合高电平复位,而Altera的触发器如A10和cycloneIV GX则适合低电平复位。建议根据器件内部触发器特性选择合适的复位电平,并通过EDA工具进行验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. D触发器中PRN、CLRN区别
    在Quartus II当中查看RTL视图会有PRN和CLRN(CLR)两个引脚的区别

PRN是异步置位,可以将输出Q置为输入D(输出Q立马变成输入D)
在这里插入图片描述
在这里插入图片描述

CLRN(CLR)是异步复位,将输出Q置地。
在这里插入图片描述
在这里插入图片描述
2. 复位电平的选择
复位电平,实际上是跟FPGA芯片内部的触发器结构有关。下图是xilinx和altera综合得到的视图:
在这里插入图片描述
上图看到xilinx(A7)触发器复位端R是高电平有效,比较适合高电平复位。假如RTL代码采用了低电平有效的复位模式,综合器将在复位信号驱动寄存器SR控制端之前的插入一个反相器(interver)。你必须使用一个查找表(look up table)来实现反向器,以利用LUT的输入端口。低电平有效的控制信号带来的额外的逻辑可能拉长了执行时间(runtime),将导致更低的FPGA资源利用率,也将影响时序和功耗。

上图altera触发器复位端CLRN

### 使用D触发器构建八进制计数器的电路设计和工作原理 八进制计数器是一种模8计数器,其状态从0到7循环变化。为了实现这一功能,可以使用三个D触发器来构成一个三比特的计数器[^3]。以下是详细的电路设计和工作原理: #### 1. D触发器的基本特性 D触发器是一种基本的时序逻辑单元,具有以下输入输出端口: - **D**:数据输入端。 - **CLK**:时钟信号输入端,用于在上升沿或下降沿更新输出。 - **PRN (SET)**:置位信号,低电平有效,用于将Q置为1。 - **CLRN**:清除信号,低电平有效,用于将Q置为0。 - **Q**:输出端,表示触发器的当前状态。 每个D触发器的状态在时钟信号的上升沿被更新为输入D的值[^3]。 #### 2. 八进制计数器的状态转移 八进制计数器的状态转移如下表所示: | 当前状态 (Q2 Q1 Q0) | 下一状态 (Q2 Q1 Q0) | |----------------------|----------------------| | 000 | 001 | | 001 | 010 | | 010 | 011 | | 011 | 100 | | 100 | 101 | | 101 | 110 | | 110 | 111 | | 111 | 000 | 通过观察状态转移表,可以发现每一位的输出取决于前一位的状态。例如,最低位(Q0)始终在每个时钟周期翻转,而较高位(Q1、Q2)则在低位完成一次完整循环后才发生状态变化。 #### 3. 状态转移逻辑的设计 根据状态转移表,可以通过卡诺图化简得到每一位输入D的逻辑表达式: - **D0 = Q0'**(最低位始终翻转) - **D1 = Q0 · Q1'**(当且仅当Q0为1且Q1为0时,Q1翻转) - **D2 = Q0 · Q1**(当且仅当Q0和Q1均为1时,Q2翻转) 这些逻辑关系可以通过逻辑门实现,并连接到D触发器的输入端[^3]。 #### 4. 电路设计 以下是使用三个D触发器实现八进制计数器的电路设计步骤: - 将第一个D触发器的时钟输入直接连接到外部时钟信号。 - 将第一个D触发器的输出(Q0)连接到第二个D触发器的时钟输入。 - 将第二个D触发器的输出(Q1)与Q0组合后,通过逻辑门生成第三个D触发器的时钟信号。 - 按照上述逻辑表达式,将D触发器的输入端连接到相应的逻辑组合电路。 #### 5. Verilog代码示例 以下是一个使用Verilog语言实现八进制计数器的示例代码: ```verilog module octal_counter ( input clk, // 时钟信号 input reset, // 异步复位信号 output reg [2:0] count // 计数器输出 ); always @(posedge clk or posedge reset) begin if (reset) begin count <= 3'b000; // 复位时计数器清零 end else if (count == 3'b111) begin count <= 3'b000; // 计数到7后归零 end else begin count <= count + 1; // 正常计数 end end endmodule ``` #### 6. 工作原理 - 在每个时钟周期的上升沿,D触发器会更新其输出状态。 - 最低位(Q0)始终在每个时钟周期翻转。 - 较高位(Q1、Q2)分别在低位完成一次完整循环后才发生状态变化。 - 当计数器达到最大值7(即二进制111)时,下一状态将重置为0(即二进制000),从而实现模8计数功能[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值