精华内容
下载资源
问答
  • 10进制计数器Verilog编程

    万次阅读 2019-09-27 10:37:36
    计数器不仅能用于对时钟脉冲计数,还可以用于分频,定时,产生节拍脉冲序列以及进行数字运算等,...1.同步四位二进制加法计数器: 各触发器的驱动方程: T0 = 1; T1 = Q0 T2 = Q0Q1 T3 = Q0Q1Q2 2.四位10进制...

    计数器不仅能用于对时钟脉冲计数,还可以用于分频,定时,产生节拍脉冲序列以及进行数字运算等,分为同步计数器和异步计数器,在同步计数器中,当时钟脉冲的输入时,触发器的翻转是同时发生的。而在异步计数中,触发器的翻转有先有后,不是同时发生的。

    1.同步四位二进制加法计数器:

    各触发器的驱动方程:

    T0 = 1;

    T1 = Q0

    T2 = Q0Q1

    T3 = Q0Q1Q2

    2.四位10进制的计数器

    在四位二进制计数器的基础上修改,当计算到1001时,则下一个clk状态回到0000

    驱动方程:

    T0 = 1;

    T1 = Q0Q3`

    T2 = Q0Q1

    T3 = Q0Q1Q2 + Q0Q3`

    其verilog编程比较简单:用一个always块即可实现:

    `timescale 1ns/10ps
    module counter10(clk,rst,count);
    input clk,rst;
    output [3:0] count;
    reg [3:0] q;
    assign count = q;
    
    always@(posedge clk)
    begin
      if(!rst)
        q <= 0;
      else if(q >= 4'd9)
        q <= 0;
      else
        q <= q + 1;
    end
    endmodule
    

    编写一个testbench

    module counter10_tb();
    
    reg rst;
    reg clk;
    wire [3:0] count;
    
    counter10 wt(.clk(clk),.rst(rst), .count(count));
    
    initial 
    begin
      rst <= 1;
      clk <= 0;
      #50 rst <= 0;
      #1000 rst <= 1;
      #2000 rst <= 0;
    end
    always
      #10 clk = ~clk;
    endmodule
    

    通过vcs仿真:vcs add10 -R -gui +v2k

    得到的波形:

     

     

    展开全文
  • 位十进制计数器 Verilog-modelsim

    千次阅读 2020-01-11 12:58:17
    //位十进制计数器0~99 input clk,rst; output reg [7:0]dout; reg q3; reg [3:0] q1;//低位 reg [3:0] q2;//高位 always @ ( * ) begin dout,q1} ; end //触发器使用非阻塞型赋值,其他的全用阻塞性赋值...

    ##tb.v (tb)

    `timescale 1ns/100ps	
    module tb;          
      reg  clk, rst;   
      wire [7:0] dout;
      initial begin
      	             clk = 1'b0;
          forever #5 clk = ~clk;	
      end
      initial begin								 
      	             rst = 1'b1;  
      	       #1    rst = 1'b0;
      	       #2.5  rst = 1'b1;
      	    // #340.9  rst = 1'b0; 验证复位信号作用
      	    // #0.1    rst = 1'b1;
    
           end   
    CNT10  U_CNT10
        (  .clk       (clk  ),
           .rst       (rst  ),
           .dout      (dout )      );
        											
    endmodule												
    

    ##test.do (sim)

    
    # step 1
    vlib work
    
    # step 2
    vlog ../rtl/cnt10.v
    vlog ../tb/tb.v
    
    #step 3
    vsim tb
    add wave -position insertpoint  \
    sim:/tb/clk \
    sim:/tb/rst \
    sim:/tb/dout
    run 2us
    

    ##cnt10.v(rtl)

    module CNT10 (clk, rst,dout );//二位十进制计数器0~99
     input clk,rst;
     output reg [7:0]dout;
     reg q3;
     reg  [3:0] q1;//低位
     reg  [3:0] q2;//高位
     always @ ( * )
          begin dout<={q2,q1} ; end  //触发器使用非阻塞型赋值<=,其他的全用阻塞性赋值语句=
     always @ (posedge clk or negedge rst )
              begin 
              	     if (!rst) q1<=4'b0000;
              	else if (q1<9) q1<=q1+1;  
              	else           q1<=4'b0000;
              end 
     always @ ( posedge clk or negedge rst or posedge q1 ) //触发器敏感列表全为边沿信号,阻塞性赋值才能有*代替
              begin 
              	     if ( !rst ) q3<=1'b0;
              	else if ( q1<9 ) q3<=1'b0;
              	else q3<=1'b1;
              end 
    always @ (posedge clk or negedge rst)
              begin 
              	     if ( !rst ) q2<=4'b0000;
              	else if ( q2<9 )
              	               begin 
              	                     case (q3)
              	                     	     1'b1: q2<=q2+1;
              	                     	     default q2<=q2;
              	                     endcase
              	               end
              	   else  
              	        begin
              	   	           if (q1<9) q2<=q2;
              	   	           else q2<=4'b0000;
              	   	    end 
              end
    endmodule           	      
    
    展开全文
  • 同步集成电路计数器 || 74161 74163 74160 || 同步级联 异步级联 ||...1. 4位同步二进制计数器7416174161的功能有4个:异步清零同步置数保持同步计数其逻辑图和功能表如下图所示,(CLR非)是异步清零端(LD非)是同步置...

    同步集成电路计数器 || 74161 74163 74160 || 同步级联 异步级联 || 数电

    b691e4b97fdb87aff0494f86c22a0b0f.png

    1c8cf759ecbde54aa7668533a6e8510e.png

    TTL器件和CMOS器件的工作电压和输入输出接口参数会有差别。

    上面图中,各式76161虽然型号不同,但是逻辑功能都是相同的,后面统称74161。

    1. 4位同步二进制计数器74161

    74161的功能有4个:

    • 异步清零
    • 同步置数
    • 保持
    • 同步计数

    6620647b9c6f3ecdd410efa5513f882f.png

    其逻辑图和功能表如下图所示,

    • (CLR非)是异步清零端
    • (LD非)是同步置数控制端
    • ENT和ENP是计数控制端
    • CLK用作时钟信号输入端
    • D0D1D2D3用作4位预置数据输入
    • Q0Q1Q2Q3表示四位计数器的状态
    • RCO为计数器进位输出端

    逻辑符号内部有一些标识符,他们有特定的含义。

    例如,和异步清零端(CLR非)对应的内部标识符为CT=0,其中CT是英文counter的缩写。这个标识符表示,在这个输入端施加有效电平,将使计数器清零,也就是使状态Q3Q2Q1Q0变成0000。我们可以看到,这个输入端标有一个三角符号,它表示这个输入端的有效电平是低电平。也就是说,(CLR非)为低电平0时,计数器将清零。

    再一例,和输出端RCO对应的标识符为3CT=15,其中CT=15表示当计数器的状态Q3Q2Q1Q0=1111,即十进制数15时,RCO将变成高电平1。其中3表示RCO的输出逻辑电平受其它带有数字3的标识符所对应的输入端信号的影响。我们可以找到,代表舒服带有数字3的标识符为G3,对应输入端ENT,表明计数控制端ENT对进位输出RCO有影响。

    此外,为了画图方便,我们经常使用右边所示的逻辑符号传统画法。

    83f67ca61d0480f7860ae9f755e80a86.png

    0395450531b203f78417aad4fb803d7f.png

    2. 4位同步二进制计数器74163

    74163的逻辑符号与功能分别如图所示和如表所示。

    乍一看,好像和刚刚介绍过的74161没什么区别。

    他们确实非常相像,差别在于逻辑符号左边的第一个输入信号。也就是(CLR非的清零方式)。

    异步清零端(CLR非)对应的内部标识符为5CT=0而不是CT=0。

    根据之前的介绍,由于带数字5的是C5,其对应的输入引脚是时钟CLK,因此我们会想到74163的清零信号必然受到时钟CLK的影响。

    从74163功能表的第一行我们可以发现,低电平有效的清零信号(CLR非)必须由时钟CLK的上升沿触发,才能起到清零左作用。因此我们把这种清零方式称为同步清零。

    至此,我们可以说74163和74161的唯一差别在于清零方式。

    74161采用异步清零,而74163采用同步清零,其它的工作过程是相同的。

    在数字集成电路中,大部分的触发器、计数器和后面要学习的寄存器、移位寄存器大都采用异步清零的方式。

    42cb35a57dd84b7fbd71ec1d52953ce7.png

    3. 十进制同步计数器74160

    和前面学过的4位二进制计数器74161相比,74160工作模式是一样的。

    • 异步清零
    • 同步置数
    • 保持
    • 同步计数

    唯一的差别是计数的状态转换图不同。

    3c2de2811c1b84e1923576676c50da2b.png

    下图是74160的逻辑符号、简化符号和功能表。

    输出端RCO对应的标识符为3CT=9,其中CT=9表示当计数器的状态Q3Q2Q1Q0=101,即十进制数9时,RCO将变成高电平1。

    a55e1ded4eb37c00ab0ed6a44517f38f.png

    下面我们看到的是74160的状态转换图,由于下面的10个状态和8421BCD码是一一对应的,因此74160也被称为8421BCD码计数器。

    56601ac63d126ec51c136288590cce36.png

    d058726accf0341c0df73f25b39c4ab3.png

    2. 计数器的级联

    9665fce8eea20284344b8e603b6d2617.png

    2.1 异步级联

    7fa28a012073d5ba82236aec9ad9fff0.png

    异步级联会导致工作频率的下降。

    b4cf330366ec057d939ff5d30a4e2c8d.png

    2.2 同步级联

    下图接法被称作同步级联,因为两片74160的时钟输入端被连接到了一起,它们可以在统一的时钟脉冲下同步地工作。

    同步级联利用ENT和ENP端来实现。

    1a26d881f74bde8ecbfe50f3a6c61d90.png

    下图介绍工作原理。

    计数器(1)的计数控制端ENT=1、ENP=1,因此计数器(1)工作在同步计数模式,也就是在时钟信号CLK作用下进行加法计数。

    而计数器(2)的计数控制端ENT和ENP受控于计数器(1)的进位输出端RCO(1),因此计数器(2)能否工作在计数模式,取决于RCO(1)的电平。当RCO(1)=1时,计数器(2)工作在同步计数模式,也就是在时钟信号CLK作用下进行加法计数;当RCO(1)=0时,计数器(2)工作在保持模式,即不管有无时钟脉冲,计数器(2)保持状态不变。

    6255c0fd049becee451fe41ed1017801.png

    计数器配合BCD译码器可以通过数码管显示出计数状态。

    c99a14699dc4f9649fc9e57e4c528b20.png

    f6dca622604eaa5d4f863281295b261d.png

    33c78b17be1d6d6639bf515ea733f491.png

    由于同步级联计数器的性能优于异步级联,因此推荐使用同步级联的方法。

    丢题目,

    a0094e65f39cfef1e0ec3ea5bfcbc6a1.png

    视频:MOOC-数字逻辑电路-第9单元 时序逻辑功能-同步集成电路计数器

    展开全文
  • 十进制计数器与4位二进制计数器有些相似,但4位二进制计数器需要计数到1111然后 才能返回到0000,而十进制计数器要求计数到1001 (相当于9)就返回0000。8421BCD码 十进制计数器是一种最常用的十进制计数器。8421BCD码...

    十进制计数器与4位二进制计数器有些相似,但4位二进制计数器需要计数到1111然后 才能返回到0000,而十进制计数器要求计数到1001 (相当于9)就返回0000。8421BCD码 十进制计数器是一种最常用的十进制计数器。

    8421BCD码十进制计数器如图所示

    e377a42e403eb17ed44c541d012ce714.png

    该计数器是一个8421BCD码异步十进制加法计数器,由4个JK触发器和一个与非门构成,与非门的输出端接到触发器F1、F2的SD非端(置"1”端),输入端则接到时钟信号输入 端(CP端)和触发器F0、F3的输出端(即Q0端和Q3端)。

    计数器的工作过程分为如下两步

    第一步:计数器复位清零。

    在工作前应先对计数器进行复位清零。在复位控制端送一个 负脉冲到各触发器Rd端,触发器状态都变为“0”,即Q3Q2Q1Qo=OOOO。

    bc297de5b0688444c6359815754c791e.png

    第二步:计数器开始计数。

    当第1个计数脉冲(时钟脉冲)下降沿送到触发器F0的CP端时,触发器F0翻转,Q0由"0”变为“1”,触发器Fl、F2、F3状态不变,Q3、Q2、Q1均为"0”,与非门的输出端为 “1”(Q3非*Q0非.CP非 = l),即触发器Fl、F2置位端SD非为“1”,不影响Fl、F2的状态,计数器输 出为 Q3Q2QiQo=00010当第2个计数脉冲下降沿送到触发器F0的CP端时,触发器F0翻转,Qo由“ 1 ”变为“0", Qo的变化相当于一个脉冲的下降沿送到触发器F1的CP端,F1翻转,Q1由“0”变为“1”, 与非门输出端仍为"1”,计数器输出为Q3Q2QiQo=0010。

    71f07fcc18ac01ddf78e092347b05e81.png

    同样道理,当依次输入第3~9个计数脉冲时,计数器则依次输出0011、0100、0101、 0110、 0111、 1000、 1001。当第10个计数脉冲上升沿送到触发器F0的CP端时,CP端由“0”变为"1",相当于 CP=1,此时Qo=l、Q3=l,与非门3个输入端都为“1”,马上输出“0”,分别送到触发器F1、 F2的置“1”端,F1、F2的状态均由“0”变为“1",即。=1、Q2=l,计数器的输出为 Q3Q2Q1Q0=1111。

    当第10个计数脉冲下降沿送到触发器F0的CP端时,F0翻转,Q0由“1”变“0”,它送 到触发器F1的CP端,F1翻转,Q1由“1”变为“0”,Q1的变化送到触发器F2的CP端,F2 翻转,Q2由“1”变为“0”,Q2的变化送到触发器F3的CP端,F3翻转,Q3由“1”变为“0”, 计数器输出为Q3Q2Q1Qo=OOOO.

    02f413726cccd32ef99c360a7c170c58.png

    第11个计数脉冲下降沿到来时,计数器又重复上述过程进行计数。

    从上述过程可以看出,当输入19计数脉冲时,计数器依次输出0000-1001,当输入 第10个计数脉冲时,计数器输出变为0000,然后重新开始计数,它跳过了 4位二进制数计 数时出现的 1010、1011、1100、1101、1110、1111 6 个数。

    举报/反馈

    展开全文
  • 使用Verilog这种硬件描述语言,用软件ModelSim及Quartus II,在FPGA完成二进制计数器
  • 数字逻辑二位二进制计数器课程设计
  • verilog实现一个4bit二进制计数器。 ==== a) 异步复位 b) 同步复位 input clk, rst_n; output [3:0] o_cnt; ```verilog `timescale...
  • 对读者的假设 已经掌握: 可编程逻辑基础 Verilog HDL基础 使用Verilog设计的Quartus II入门指南 ...使用Verilog设计的...例如,4位的二进制计数器的从0000数到1111,然后翻回来重新数。 代码1 free-ru...
  • 对quartus算是头一次具体接触吧,才...这个十二进制计数器咨询了师兄,不然自己真的很难写出来,这么多编程语言每一种用法都不一样,也是醉了,不扯了,上图吧 下面这个是进制的,这个还好把12改成20就可以了
  • 数字电路实验(05)二进制计数器设计 2020-5-29 一.实验要求 1.1.实验目的 认识二进制同步计数器的定义、工作状态及信号波形; 熟悉基于JK触发器实现二进制同步计数器的构成规则。 1.2.实验器材 VCC Ground 脉冲...
  • verilog实现60进制计数器源代码及测试代码
  • FPGA_四位二进制计数器

    千次阅读 2019-09-28 18:58:44
    四位二进制计数器和真值表:   代码如下: module jishuqi(clk,rst,en,rset,co,d,q); input clk;input rst;input rset;input en;input[3:0] d;output[3:0] q;output co; reg[3:0] q;reg co; always@(posed...
  • 二进制计数器及testbench,Verilog HDL

    千次阅读 2013-07-19 14:59:43
    写的很详细,也很全面,特别是testbench: http://www.cnblogs.com/yuphone/archive/2010/12/10/1902664.html
  • 十四进制计数器

    2015-10-30 22:00:57
    使用Quartus ii 软件编写的十四进制计数器,所使用的语言为Verilog.
  • Verilog HDL】24进制计数器

    千次阅读 2020-12-20 18:58:28
    文章目录24进制计数器设计要求【 1. 源代码 】顶层文件1. 分频器模块2. 控制模块3. 个位计数器模块4. 十位计数器模块5. 数码管模块【 2. 仿真图 】 24进制计数器设计要求 将4HZ信号分频得到的1HZ时钟信号作为计数...
  • 本文描述了一个一百进制的计数器,由两个十进制计数器级联而成。每个十进制计数器可以送显至一位数码管。 先例化一个十进制计数器: module counter10(rst_n,clkin,t,up_down,D,c); input rst_n,clkin,t,up_...
  • 使用Verilog自顶向下设计24进制计数器(例子为1Hz,可修改频率),并用数码管动态显示,已在Basys2开发板验证通过。
  • 位十进制计数器实验报告
  • 2.设计16位二进制计数器,带异步复位、同步使能、同步装载、同步清零、同步置位 法一 author : Mr.Mao e-mail : 2458682080@qq.com module CNT_16B2(rst_a, en_s, load_s, clr_s, clk, q, cnt, data) ; input rst...
  • 提供Verilog自顶向下设计24进制和60进制计数器(1Hz,频率可调)并用数码管动态显示的代码,且两个程序皆在Basys2开发板上验证通过。程序思路:首先将程序分为4部分:分频程序、计数程序、数码管动态显示程序、顶部...
  • 也可称之为智能计数器,采用十进制数字显示被测信号频率表,被广泛应用于航天、航空、电子技术、测控等技术领域。通用计数器是一种具有多种测量功能,多种用途的电子计数器,它可以测量频率,周期,时...
  • 基于Verilog语言的13进制计数器设计

    千次阅读 2019-11-25 23:12:47
    基于Verilog语言的13进制计数器设计 `timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: // // Create Date: 2019/11/10 15:...
  • quartus仿真20:模8的二进制计数器

    千次阅读 2020-10-15 11:00:21
    逻辑抽象得到状态表,状态赋值从000到111,没有外部输入选择摩尔型,总共8个状态需要3个触发器2^3,进位信号COUT是整个系统的输出 填卡诺图,得到触发器的驱动方程 选择T触发器进行连接,可以看到计数到8时输出一...
  • 1.新建一个工程,并且加入一个Verilog-HDL文件,参考例程中的代码编写Verilog语言,编写完成后如下图所示 编译后,查看RTL文件如下图所示 建立VWF文件,添加仿真信号后观察仿真结果如下图
  • --顶层设计实体 67进制计数器 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; entity counter67 is port(  Clk67,Clr_l67,Ld_l67,Ent67,Enp67:in std_logic;  D67:in unsigned(7 ...
  • hello,大家好,这里是xddcore,今天中午又花了一个小时左右,模仿CD4017,捏了个十进制计数器。 前言 什么是十进制计数器(/CD4017)? CD4017:十进制计数器/脉冲分配器 INH 为低电平时,计数器在时钟上升沿计数;...
  • (1) 学习同步十进制计数器的原理和设计方法,理解它与二进制计数器的区别 (2) 掌握灵活运用Verilog HDL语言进行各种描述与建模的技巧和方法 2. 实验要求: (1) 使用合适的方法来编程实现规定特性的十进制同步减法...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,385
精华内容 554
关键字:

二进制计数器verilog