精华内容
下载资源
问答
  • FPGA:D触发器计数器

    2020-06-06 16:34:04
    FPGA:D触发器计数器(计数范围:0-99,可暂停、继续、清零) module Counter(clk, rst, in0, count0,Light0) ;//计数器模块,in循环控制暂停开始 parameter n=5 ; input rst, clk ,in0; output [n-1:0] count0...

    FPGA:D触发器计数器(计数范围:0-99,可暂停、继续、清零)

    module Counter(clk, rst, in0, count0,Light0) ;//计数器模块,in循环控制暂停开始  
      parameter n=5 ;
      input rst, clk ,in0; 
      output  [n-1:0] count0 ;
      output Light0;
      reg	[n-1:0] next0 ;
      
       always@(*)
       begin
    	  if (count0>=99)//计数器计数范围为0-99,记到99时停止计数
    	   next0= rst? 0 : count0;
    	  else//rst复位信号有效,计数清零。in输入高电平时暂停,in变低后继续计数。
          next0= rst? 0 : (in0? count0 : count0+ 1'b1  );
       end
      assign Light0=rst | in0;//清零或暂停时LED亮起以做提示。
      
      DFF_SW #(n) cnt0(clk, next0, count0) ; 
    endmodule
    
    展开全文
  • D触发器实现计数器

    千次阅读 2020-07-01 22:57:23
    基于D触发器计数器,需要进行状态映射,将计数器的各位对应到各个触发器上,本质即为状态机的次态设计。 2、设计 以4进制计数器为例,使用D触发器实现该功能; 为实现4进制计数器,需要2个D触发器,状态编码...

    1、分析

    基于寄存器的计数器比较常见,时钟上升沿加1即可;基于D触发器的计数器,需要进行状态映射,将计数器的各位对应到各个触发器上,本质即为状态机的次态设计。

    2、设计

    以4进制计数器为例,使用D触发器实现该功能;

    为实现4进制计数器,需要2个D触发器,状态编码如下:

    cnt:00-01-10-11

    Q1Q0:00-01-10-11

    Q1Q0 Q1_nQ0_n
    00 01
    01 10
    10 11
    11 00

    进一步得到状态方程:

    Q0_n = ~Q0;

    Q1_n = (~Q1&Q0) | (Q1&~Q0);

    3、验证

    代码:

    `timescale 1ns / 1ps
    
    
    
    module d_cnt(
    input clk,
    input rst_n,
    output [1:0]cnt
        );
    reg Q1,Q0;
    wire Q1n,Q0n;
    wire Q1_w,Q0_w;
    always@(posedge clk or negedge rst_n)
    begin
        if(!rst_n)
        begin
            {Q1,Q0} <= 2'b00;
        end
        else
        begin
            {Q1,Q0} <= {Q1n,Q0n};
        end
    end
    
    assign Q0_w = Q0;
    assign Q1_w = Q1;
    
    assign Q0n = !Q0_w;
    assign Q1n = (!Q1_w&Q0_w)|(Q1_w&!Q0_w);
    assign cnt = {Q1,Q0};
    endmodule
    

    仿真:

    电路:

     

    展开全文
  • 使用 D 触发器的 7 位计数器设计
  • FPGA的VHDL实现 利用d 触发器计数器的时钟频率分频器,并用Modelsim仿真
  • 分别采用结构描述和行为描述方式设计一个基本的D触发器,在此基础上,采用结构描述的方式,用8个D触发器构成一个8位移位寄存器。进行功能仿真,查看结果,把上述内容整理到实验报告。 (1)行为描述: 单个D触发器 ...
    • 分别采用结构描述和行为描述方式设计一个基本的D触发器,在此基础上,采用结构描述的方式,用8个D触发器构成一个8位移位寄存器。进行功能仿真,查看结果,把上述内容整理到实验报告。
    • (1)行为描述:
    • 单个D触发器

    功能代码:

    module shiyan31(q,d,clk);

    input d,clk;

    output q;

    reg q;

    always @(posedge clk)   %在时钟的每个下降沿

    begin

    q<=d;

    end

    endmodule     

    测试代码:

    `timescale 1ns/1ns

     

    module test();

    reg d,clk;

    wire q;

    shiyan31 U1(q,d,clk);

    always #10 clk=~clk;

    initial

    begin clk =0; %每隔20s输入一个d

    #20 d=1;

    #20 d=0;

    #20 d=1;

    #20 d=0;

    #20 d=1;

    #20 d=0;

    #20 d=1;

    #200 $finish;

    end

    endmodule                      

     

    • 8位D触发的移位寄存器:

    功能程序:

    module shiyan31(q,d,clk);

    input d,clk;

    output q;

    wire  d;

    wire[7:0] q;

    D U2(q[0],d,clk); %调用8次Module D,第一个的输入为d,其它输入为上一级的输出

    D U3(q[1],q[0],clk);

    D U4(q[2],q[1],clk);

    D U5(q[3],q[2],clk);

    D U6(q[4],q[3],clk);

    D U7(q[5],q[4],clk);

    D U8(q[6],q[5],clk);

    D U9(q[7],q[6],clk);

    endmodule

     

    module D(q,d,clk);%一个D触发器的module

    input d,clk;

    output q;

    reg q;

    always @(posedge clk)

    begin

    q<=d;

    end

    endmodule

    测试程序:

    `timescale 1ns/1ns

    module test();

    reg d,clk;

    wire[7:0] q;

    shiyan31 U1(q,d,clk);

    always #10 clk=~clk;

    initial

    begin clk =0;

    #10 d=1;

    #150 d=0;

    #150 d=1;

    #900 $stop;

    end

    endmodule  

     

    (2)结构描述

    • 单个D触发器

    功能程序:

    module shiyan31(clk,d,s,r,q);

    input clk,d,s,r;

    output q;

    wire q1,q2,q3,q4,q0;

    nand (q1,s,q4,q2);

    nand(q2,q1,r,clk);

    nand(q3,q2,clk,q4);

    nand(q4,q3,d,r);

    nand(q,s,q2,q0);

    nand(q0,q,q3,r);

    endmodule

    测试程序:

    `timescale 1ns/1ns

    module test();

    reg d,clk,s,r;

    wire q;

    shiyan31 U1(clk,d,s,r,q);

    always #10 clk=~clk;

    always #30 d=~d;

    initial

    begin clk =0;s=1;r=1;d=0;

    #200 $stop;

    end

    endmodule

    • 8位移位寄存器:

    功能代码:

    module shiyan31(Q,d,clk,s,r,reset);

    input d,clk,s,r,reset;

    output Q;

    wire  d;

    wire[7:0] Q;

    wire s,r;

    D U2(clk,d,s,r,Q[0]);

    D U3(clk,Q[0],s,r,Q[1]);

    D U4(clk,Q[1],s,r,Q[2]);

    D U5(clk,Q[2],s,r,Q[3]);

    D U6(clk,Q[3],s,r,Q[4]);

    D U7(clk,Q[4],s,r,Q[5]);

    D U8(clk,Q[5],s,r,Q[6]);

    D U9(clk,Q[6],s,r,Q[7]);

    endmodule

     

    module D(clk,d,s,r,q);

    input clk,d,s,r;

    output q;

    wire q1,q2,q3,q4,q0;

    nand (q1,s,q4,q2);

    nand(q2,q1,r,clk);

    nand(q3,q2,clk,q4);

    nand(q4,q3,d,r);

    nand(q,s,q2,q0);

    nand(q0,q,q3,r);

    Endmodule

     

    测试代码:

    `timescale 1ns/1ns

     

    module test();

    reg d,clk,s,r,reset;

    wire [7:0] Q;

    shiyan31 U1(Q,d,clk,s,r,reset);

    always #10 clk=~clk;

    initial

    begin clk =0;s=1;r=1;reset=1;

    #10 reset=0;

    #10  d=1;

    #150 d=0;

    #150 d=1;

    #900 $stop;

    end

    endmodule

     

    • 设计1个8位的计数器,带同步复位功能,复位信号低电平有效。(1)在同一个module中设计1个4分频器,采用分频器输出脉冲作为计数器的输入。(2)将4分频器设计成独立的module,实例化四分频器模块完成与(1相同的功能。进行综合和仿真,查看功能仿真结果,把上述内容整理到实验报告。
    • (1)计数器:

    功能代码:

    module shiyan32(out,reset,clk);

    input clk,reset;

    output reg[7:0] out;

    always @(posedge clk)

    begin

    if(!reset)

    out<=8'h00;%同步置位

    else

    out<=out+1;%来一个时钟上升沿,则加1

    end

    endmodule

    测试代码:

    `timescale 1ns/1ns

    module test();

    reg reset,clk;

    wire[7:0] out;

    shiyan32 U1(out,reset,clk);

    always #10 clk=~clk;

    initial

    begin clk=0;reset=0;

    #20 reset=1;

    #100 reset=0;

    #200 $stop;

    end

    endmodule

    2同一个module 模块:

    功能程序:

    module shiyan32(clkout,out,reset,clk);

    input clk,reset;

    output clkout;

    output reg[7:0] out;

    reg clkout;

    reg [4:0] qout;

    always @(posedge clk)

    begin if(!reset)

    begin

    clkout<=0;

    qout<=0;%同步置位,clkout,qout都为0

    end

    else begin

    if(qout==1)%当qout为1是表示经历了两个时钟,则达到了占空比为50%的四分频

    begin

    qout <=0;

    clkout<=~clkout;

    end

    else

    qout <=qout+1;

    end

    end

    always @(posedge clkout or negedge reset) %用分频之后的clk时钟作为计数器的输入时钟

    begin

    if(!reset)

    out<=8'h00;

    else

    out<=out+1;

    end

    endmodule

    测试程序:

    `timescale 1ns/1ns

    module test();

    reg reset,clk;

    wire[7:0] out;

    shiyan32 U1(clkout,out,reset,clk);

    always #10 clk=~clk;

    initial

    begin clk=0;reset=0;%reset=0%低电平置位

    #20 reset=1;

    #1000 $stop;

    end

    Endmodule

     

    (3)两个module 模块:

    功能代码:

    module shiyan32(out,clkout,reset,clk);

    input clk,reset;

    output reg[7:0] out;

    output clkout;

    wire clkout;

    wire [4:0] qout;

    clk4 u1(reset,clk,clkout,qout);%四分频时钟的模块调用,在调用的模块中出现的信号,可以不出现在主模块中

    always @(posedge clkout or negedge reset)

    begin

    if(!reset)

    out<=8'h00;

    else

    out<=out+1;

    end

    endmodule

    module clk4 (reset,clk,clkout,qout);

    input reset,clk;

    output clkout,qout;

    reg clkout;

    reg [4:0] qout;

    always @(posedge clk)

    begin if(!reset)

    begin  clkout<=0;qout<=0;end

    else begin  if(qout==1)

    begin qout <=0;  clkout<=~clkout; end

    else  qout <=qout+1; end  end

    Endmodule

    测试程序:

    `timescale 1ns/1ns

    module test();

    reg reset,clk;

    wire[7:0] out;

    shiyan32 U1(out,clkout,reset,clk);

    always #10 clk=~clk;

    initial

    begin clk=0;reset=0;

    #20 reset=1;

    #400 $stop;

    end

    endmodule

    展开全文
  • D触发器搭建计数器

    2021-07-29 17:54:10
    按真值表推算出关系,按照公式画模4计数器 我画出来的是这样的,但是我之前在网上看到的是只有D...只有D触发器的模4计数器,巧妙之处在于将前一级D触发器的Q’作为后一级D触发器的时钟输入。 模8计数器类似的。 ...

    按真值表推算出关系,按照公式画模4计数器
    在这里插入图片描述

    我画出来的是这样的,但是我之前在网上看到的是只有D触发器的,那又是怎么回事呢?

    于是我根据电路画出波形图就一目了然了。
    只有D触发器的模4计数器,巧妙之处在于将前一级D触发器的Q’作为后一级D触发器的时钟输入。
    在这里插入图片描述

    模8计数器类似的。
    在这里插入图片描述

    展开全文
  • 使用D触发器,设计一个具有以下重复二进制序列的计数器 0,1,2,4,6
  • 利用触发器设计计数器

    千次阅读 2016-11-15 13:25:36
    学习组合电路和基本触发器的目的是为了设计电路,数字逻辑这门课程的目的是能够设计简单的同步时序电路,并对其简单分析,下文通过一个模16的减1计数器进行说明。基本流程要设计时序电路,首先必须要对功能需求进行...
  • 计数器
  • 1.1 FPGA面试题D触发器实现4进制计数器 1.1.1 本节目录 1)本节目录; 2)本节引言; 3)FPGA简介; 4)FPGA面试题D触发器实现4进制计数器; 5)结束语。 1.1.2 本节引言 “不积跬步,无以至千里;不积小流...
  • D触发器结构,用于存储PC(一个周期) 两个输入:clk与rst,分别连接时钟信号与复位信号 两个输出:pc与inst_ce,分别连接指令存储器的addra与ena 二.verilog代码 `timescale 1ns / 1ps ///////////////////////...
  • D触发器原理-D触发器电路图
  • 74LS74 D触发器组成四位异步加法计数器

    万次阅读 多人点赞 2017-05-07 23:02:15
    74LS74 D触发器组成四位异步加法计数器   申请了一段时间了 太懒了 从来没有写过 写一个玩一下 新手 不喜勿喷 学过的朋友都知道什么是D触发器 这里不再罗嗦 数电实验中原理图直接给出来了 接法 芯片为74LS74 ...
  • 5.触发器实现计数器

    千次阅读 2011-07-22 22:33:14
    2.数据端-保持位触发器:这是D触发器的前身,又类似于R-S触发器,数据端仅用于传送数据,保持位用以是否保存先前数据,当保持位为0时,数据端任何输入都不影响输出,当保持位为1时,数据端输入即输出。把保持位换个...
  • D触发器设计的模6计数器 设计思路从000计数到101,并用卡诺图进行化简,没有输出为摩尔型 用quartus仿真看波形 BCD译码 选择74LS48芯片,将D触发器输出Q2Q1Q0对应接到输入管脚CBA 输出一一对应连接到七段...
  • (15分)用D触发器和必要的门电路设计可控同步计数器. X=1时. 计数器Q3Q2Q1状态转换为 000->-011->110->000; X=0时, 计数器Q3Q2Q1状态转换为 000->010->100->110->000. 设计思路梳理: 根据...
  • 昨天有朋友问道这样一个问题"该如何使用最少数量的D触发器和四选一数据选择器74153接成同步四进制加减法可逆计数器": 从这个问题中, 我们提取一下核心技术问题 ①绘制同步四进制加减法可逆计数器的状态表, ②绘制...
  • 它是一个使用 T 触发器的二进制计数器。 添加掩码以使电路清晰。 T 触发器是使用 Xor 和 D 触发器制作的,因为 T 触发器在 Simulink 中不可用。
  • - 同步复位D触发器 2. 异步复位D触发器 module DFF_sync(D,Q,clk,reset); module DFF_async(D,Q,clk,reset); input D,clk,reset; input D,clk,reset; output reg Q; output reg Q; always@(posedge clk) ...
  • 目录 D触发器 寄存器 1比特位寄存器 多比特位寄存器 内存 8字内存 64字内存 512字内存 4K字内存 16K字内存 计数器 D触发器 DFF的输出被赋予了上个时钟周期的输入,所有的DFF门都连接同一个主时钟,所有时序芯片都在...
  • 在数字电路中,异步复位的上升沿D触发器的逻辑电路符号如下图所示,其功能表如下表所示。其工作原理为:只要复位控制端口的信号有效(为0),D 触发器就会立即进行复位操作,与时钟信号无关。当复位端置1时,在时钟...
  • 基于Multisim14,绘制的JK触发器及D触发器构成计数型触发器仿真.
  • D触发器输出

    千次阅读 2020-08-03 19:47:51
    其次在cnt为3时,3传输回到D触发器,在第五个上升沿处,D触发器输出3,然后此刻en为低电平(在D触发器输出结果后en就是采到0,在D触发器工作过程中en为1),则此刻cnt输出结果为3,且3应该保持到第7个上升沿处,在第...
  • D触发器设计

    2014-06-17 23:38:27
    TSPC原理的D触发器0.35μm工艺版图设
  • (1)绘制十二进制加法计数器的状态表: (2)根据状态表, 绘制十二进制加法计数器的时序图, 并从中找出Q0、Q1、Q2和Q3的变化规律. (此处时序图略) 从时序图中可以发现, Q0变化在系统时钟CP的上升沿处, Q1在Q0下降沿...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,651
精华内容 3,060
关键字:

d触发器计数器