时序逻辑基础之D触发器&分频器

这篇具有很好参考价值的文章主要介绍了时序逻辑基础之D触发器&分频器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.D触发器

1.原理

  • D触发器原理如下
    触发器分频器,FPGA学习,fpga

  • D触发器模拟波形图如下
    触发器分频器,FPGA学习,fpga

由图可知Q值不仅与D有关,同时需要考虑到clk上升沿到来后有效

2.代码

module DFF(
    input clk,
    input rst_n,
    input d,
    output q
);

reg q_r;

always @(posedge clk or negedge rst_n) begin
    q_r <= d;
end

assign q = q_r;

endmodule

二.N分频器

1.原理

  • 输入一个时钟信号,将输出的信号的时钟周期变为输入信号的时钟周期的N倍,我们将这种器件叫做N分频器。

2.实验任务

  • 我们的目的是生成一个N分频器,可以实现任意比例分频。需要时仅需改变N的值即可实现不同的分频器。

3.设计思路

  • 将clk上升沿下降沿都设为敏感信号,clk变化时计数。实现N分频器,计数器从0数到N-1,输出信号反转一次。注意:由于是从0开始计数,共计N个数,只需要计到N-1即可。

4.时序图

触发器分频器,FPGA学习,fpga

  • 这里以5分频和8分频为例,分别探讨了奇数和偶数分频的情况。时序图是我们自己设想的效果,需要与我们的仿真效果比较。

5.代码

module N_divider #(parameter N = 5)(//N可以取我们需要的值,作为全局变量,它可以被更改
    input               clk,
    input               rst_n,

    output      reg     clk_out
);

    
//计数,计N个数一清零
    reg     [N-1:0]   cnt;
    wire            add_cnt;
    wire            end_cnt;

    always @(clk) begin
        if (!rst_n) begin
            cnt <= 'd0;
        end
        else if (add_cnt) begin
            if (end_cnt) begin
                cnt <= 'd0;
            end
            else begin
                cnt <= cnt + 'd1;
            end
        end
    end

    assign add_cnt = 1'b1;
    assign end_cnt = add_cnt && cnt == N - 1'd1;

//计满N个数clk_out反转一次
    always @(clk) begin
        if (!rst_n) begin
            clk_out <= 'b1;
        end
        else if (cnt == N - 1'd1) begin//计满N个数反转
            clk_out <= ~clk_out; 
        end
        else begin//其余情况保持不变
            clk_out <= clk_out;
        end
    end

endmodule

6.仿真文件

`timescale 1ns/1ns
module tb_N_divider #(parameter N = 5)();
    
    reg tb_clk;
    reg tb_rst_n;
    wire tb_clk_out;

parameter CYCLE = 20;//周期

N_divider #(.N(N)) u_N_divider(
.clk    (tb_clk),
.rst_n  (tb_rst_n),
.clk_out(tb_clk_out)
);

initial tb_clk = 1'b1;
always #(CYCLE/2) tb_clk = ~tb_clk;//半个周期反转clk

initial begin
    tb_clk = 1'b0;
    tb_rst_n = 1'b0;
    #20;
    tb_rst_n = 1'b1;
    #2000;
    $stop;
end
endmodule

7.仿真效果

  • 仍然以5分频和8分频为例,探究奇数和偶数的仿真效果

  • 5分频波形图
    触发器分频器,FPGA学习,fpga

  • 8分频波形图
    触发器分频器,FPGA学习,fpga文章来源地址https://www.toymoban.com/news/detail-740435.html

到了这里,关于时序逻辑基础之D触发器&分频器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • verilog 学习笔记 —— 时序逻辑 Sequential Logics (Latches and Flip-Flops 锁存器和触发器)

    1. D flip-flop D触发器 2. D flip-flop  D触发器 3. DFF with reset  带复位的D触发器  4. 带复位值的D触发器 5. DFF with asynchronous reset 带异步复位功能的 D触发器 6. DFF with byte enable   带位启动的触发器 7. D Latch  D锁存器 8. DFF  9. DFF   10. DFF+gate   11. Mux and DFF   12. DFFs and gates   13

    2024年02月04日
    浏览(44)
  • 使用D触发器实现8分频

    最近闲来无聊玩了一阵子FPGA,其中遇到一个经典的问题,就是用verilog实现8分频器。发现自己并不是很熟练,所以就以blog的形式记录一下,同时也分享给大家。 所需要的前提条件:由verilog语言基础,知道D触发器的逻辑 要知道,几乎所有的编程语言都由模块化的思想包含在

    2024年02月11日
    浏览(34)
  • Quartus 实现 D 触发器及时序仿真

    目录 Quartus 实现 D 触发器及时序仿真 一.Quartus 输入原理图及时序仿真 1.创建工程 2.创建方框文件 3.编译原理图文件 4.创建 vwm 格式波形文件 5.时序波形仿真 二.用 Verilog 语言实现 D 触发器及时序仿真 1.编写Verilog 文件 2.查看生成的电路图 3.利用 Verilog 语言编写测试代码实现时序

    2024年02月04日
    浏览(34)
  • 「FPGA」基本时序电路元件——锁存器和触发器

    FPGA是一种数字电路实现的方式,它是基于小型查找表(16X1)设计的,它的兄弟CPLD是基于高密度复杂组合逻辑设计的。FPGA的一个优点是触发器资源丰富,适合实现复杂的时序设计。本文将从 门级电路 的角度来介绍时序电路的基本结构,锁存器(Latch)和触发器(flip-flop)。

    2024年02月11日
    浏览(43)
  • 【FPGA】Verilog:时序电路 | 触发器电路 | 上升沿触发 | 同步置位 | 异步置位

    前言: 本章内容主要是演示Vivado下利用Verilog语言进行电路设计、仿真、综合和下载 示例:触发器电路    ​ 功能特性: 采用 Xilinx Artix-7 XC7A35T芯片  配置方式:USB-JTAG/SPI Flash 高达100MHz 的内部时钟速度  存储器:2Mbit SRAM   N25Q064A SPI Flash(样图旧款为N25Q032A) 通用IO:Sw

    2024年02月11日
    浏览(27)
  • educoder数字逻辑实训:锁存器和触发器设计(Logisim)

    第1关:基本SR锁存器的设计 任务描述 本关任务:在Logisim中,构建由两个或非门构成的基本SR锁存器。 第2关:门控SR锁存器的设计  任务描述 本关任务:在Logisim中,在基本锁存器的基础上构建门控SR锁存器。 第3关:与非门构成的门控SR锁存器的设计  任务描述 本关任务:在

    2024年02月04日
    浏览(28)
  • [从零开始学习FPGA编程-32]:进阶篇 - 基本时序电路-D触发器(Verilog语言)

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:  目录 第1章 什么是时序电路 1.1 时序电路 1.2 什么是触发器

    2023年04月08日
    浏览(34)
  • 常用3.3V与5V双向平转换方案、数字逻辑器件型号触发器等

    目录 总结电平转换芯片: 一、常用的电平转换芯片3.3V与5V双向转换芯片sn74lvc4245a sn74lvc4245a具有三态输出的八路总线收发器和3.3V至5V移位器 二、常用的电平转换9种方案(含74HC245、74LVC4245等) (1) 晶体管+上拉电阻法 (2) OC/OD 器件+上拉电阻法 (3) 74xHCT系列芯片升压 (3.3V→5V) (4)

    2024年02月12日
    浏览(27)
  • 数字逻辑实验之利用D触发器,设计并实现三位扭环计数器

    【 实验要求 】: 采用Moore(摩尔型)电路,利用D触发器,设计并实现三位扭环计数器并用Verilog编程语言写出其代码。 【 实验目的 】  掌握时序逻辑电路的设计方法; 熟悉Vivado2014集成开发环境和; 实现如下图所示的三位扭环计数器。   【 实验环境 】 FPGA虚拟仿真平台。

    2024年02月03日
    浏览(48)
  • 【数电基础】——触发器

    目录 1.大纲 2.双稳态电路  3. SR锁存器(或非门构成)  4.SR锁存器(与非门构成)  5.门控SR锁存器(与非门构成)  6.触发器 1.D触发器 (电平触发)  2.D触发器(上升沿触发) 2.T触发器  3.JK触发器   在数字电路设计里面只需要掌握上升沿触发的D触发器(DFF)  能够知道数

    2024年02月16日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包