OUC数字逻辑Verilog实验二 用Verilog实现4位计数器(时序逻辑)

这篇具有很好参考价值的文章主要介绍了OUC数字逻辑Verilog实验二 用Verilog实现4位计数器(时序逻辑)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

4位计数器

`timescale 1ns / 1ps

module counter (
    input clk,
    input reset,
    input enable,
    input mode,
    input [3:0] init,
    output reg [3:0] count
);
  // clk上升沿时
  always @(posedge clk) begin
    // reset为0置初始值
    if (!reset) count <= init;
    else begin
      // 使能端为1则计数
      if (enable)
        // 如果mode为1,则加计数,否则减计数
        if (mode) count <= count + 1'b1;
        else count <= count - 1'b1;
    end
  end
endmodule

testbench

`timescale 1ns / 1ps

module testbench;
  // 初始化clk信号
  reg clk;
  initial clk = 0;
  always #(1) clk <= ~clk;

  reg reset = 1;
  reg enable = 1;
  reg [3:0] init = 4'b0010;
  reg mode = 1;
  
  initial begin
    reset = 0;  // reset 0使能,将初始值置为0010
    #2 reset = 1;  // 开始计数
    #10 enable = 0;  // 停止计数
    #5 enable = 1;  // 继续计数
    #20 reset = 0; init = 4'b1111;  // 重新置初始值 
    #2 reset = 1; mode = 0;  // 重新开始计数,并为减计数       
    #10 $stop;
  end


wire [3:0] out;
  counter ctr (
      clk,
      reset,
      enable,
      mode,
      init,
      out
  );

endmodule

仿真图像

4位加法计数器设计verilog测试程序,fpga开发

分析实现的功能

clk为模拟的脉冲,reset为重置信号,如果reset为0,则把init的值作为初始值赋值给out,enable为使能端,如果enable为1,则在上升沿根据mode的值,如果mode为1,为加计数,mode为0,为减计数。

仿真图像中,

第1个脉冲,reset为0,为out赋值输入的初始值0010。

第2~6个脉冲,enable为1,mode为1,加计数

第7~8个脉冲,enable为0,停止计数

第9~18个脉冲,enable为1,继续计数,并到1111后再加一变为0000

第19个脉冲,reset为0,为out赋初始值1111,并将mode置为0

第20~24个脉冲,enable为1,mode为0,减计数文章来源地址https://www.toymoban.com/news/detail-797983.html

到了这里,关于OUC数字逻辑Verilog实验二 用Verilog实现4位计数器(时序逻辑)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 北邮22级信通院数电:Verilog-FPGA(9)第九周实验(3)实现一个具有清零功能的按键计数器,对按键进行计数并显示

    北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章,请访问专栏: 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客   目录 一.代码部分 1.1 counter.v 1.2 debounce.v 二.管脚分配 三.实现效果

    2024年02月05日
    浏览(46)
  • ModuleAim Verilog同步置数、同步清零的计数器实验

    ModuleSim Verilog同步置数、同步清零的计数器实验 #全文复制可运行,经验证无错 你好! 这是你第一次使用 ModuleAim同步置数、同步清零的计数器实验 如果这是你第一次项目,推荐一个哔站10分钟的视频,手把手带你从建立到完成,看完后再复制我代码即可运行。 【【教学】m

    2024年02月11日
    浏览(41)
  • 【FPGA】Verilog:计数器 | 异步计数器 | 同步计数器 | 2位二进制计数器的实现 | 4位十进制计数器的实现

    目录 Ⅰ. 实践说明 0x00 计数器(Counter) 0x01 异步计数器(Asynchronous Counter)

    2024年02月05日
    浏览(45)
  • Verilog实现按键计数器

    一、简介 计数器我们都知道,这里我们旨在使用Verilog HDL 来实现按键计数器的操作,功能有: 1、按下一个键,计数加一(+1); 2、按下另一个键,计数减一(-1); 3、按下复位键,则计数清零。 4、最多计数60次。 二、 代码实现 我们使用了两个模块,第一个是按键消抖模

    2024年02月04日
    浏览(27)
  • 【FPGA】Verilog:升降计数器 | 波纹计数器 | 约翰逊计数器 | 实现 4-bit 升降计数器的 UP/DOWN

    目录 Ⅰ. 理论部分 0x00 升降计数器(UP DOWN Counter) 0x01 波纹计数器(Ripple Counter)

    2024年02月05日
    浏览(39)
  • 北邮22级信通院数电:Verilog-FPGA(11)第十一周实验(1)用JK触发器实现8421码十进制计数器

    北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章,请访问专栏: 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 目录 一.代码部分 1.1  JK_8421.v 1.2  JK_ff.v 1.3  debounce.v 二.管脚分配 三.实

    2024年02月05日
    浏览(37)
  • Verilog基础之十、计数器实现

    目录 一、前言 二、工程设计 2.1 设计代码 2.2 综合结果 ​2.3 仿真结果     计数器是较为基础的逻辑,很多其他逻辑可依靠计数器实现,如控制器,分频。原理为通过统计时钟脉冲的个数来输出计数值。 工程设计以计数20的计数器为例 测试代码 综合后的网表可知,6位的计

    2024年02月09日
    浏览(37)
  • verilog手撕代码5——计数器(置位、加减、环形、扭环形、格雷码计数器实现)

    2023.5.12 编写一个十六进制计数器模块,计数器输出信号递增每次到达0,给出指示信号 zero ,当置位信号 set 有效时,将当前输出置为输入的数值 set_num 。 注意 :这里zero=1和num=0是同一拍输出的,按道理如果根据num=0,然后去输出zero=1应该延迟一拍。所以这里考虑将number延迟一

    2024年02月07日
    浏览(43)
  • verilog中几种实现计数器的方法

    module counter ( input clk, output reg [3:0] count ); always @(posedge clk) begin if (count == 4’hF) begin count = 4’h0; end else begin count = count + 4’b1; end end endmodule integer      i ; reg [3:0]    counter2 ; initial begin     counter2 = \\\'b0 ;     for (i=0; i=10; i=i+1) begin         #10 ;         counter2 = coun

    2024年02月03日
    浏览(34)
  • 通过verilog实现模可变计数器的设计

    实验要求:          (一) 实验目的 (1)掌握组合逻辑电路和时序电路的 FPGA实现方法; (2)熟悉EDA开发板和开发软件的使用方法; (3)学习静态数码管的使用和7段数码显示译码器设计; (4)掌握时钟在时序电路中的作用; (5)掌握分频电路的实现方法。 (二)

    2024年02月05日
    浏览(31)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包