0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Johnson约翰逊计数器Verilog实现

FPGA之家 来源:FPGA之家 作者:FPGA之家 2022-06-15 09:27 次阅读


问题:实现 N Johnson Counter

当 N = 4 时,输出应该是

0000 -> 1000 -> 1100 -> 1110 ->

1111-> 0111 ->0011-> 0001 ->

0000 ->...

如下图所示,扭环形(约翰逊)计数器最后一个触发器的输出取反~Q3,然后输入回第一个触发器的输入 D(0)= ~Q(N-1),其余触发器的输入来自前级的输出 D(i+1) = Q(i)。

D(0)= ~Q(N-1)

D(i+1) = Q(i)

b0517284-ec45-11ec-ba43-dac502259ad0.png

Johnson 约翰逊计数器Verilog 实现

Verilog HDL写一个8-bitJohnson计数器,N = 8。


module johnson#(      parameter N=8)(      input clk,      input rst_n,      output reg [N-1:0] q); 
always @ (posedge clk,negedge rst_n)begin    if(!rst_n)q<= {N{1'b0}};    elseif(!q[0])        q <= {1'b1,q[N-1:1]};else        q <= {1'b0,q[N-1:1]};endendmodule

仿真图:

b09c5fb0-ec45-11ec-ba43-dac502259ad0.png

b0cb24f8-ec45-11ec-ba43-dac502259ad0.png

第二种:


module johnson#(      parameter N=8)(      input clk,      input rst_n,      output reg [N-1:0] q); 
always @ (posedge clk,negedge rst_n)begin    if(!rst_n)q<= {N{1'b0}};    elseq<= {~q[0], q[N-1:1]};endendmodule

Johnson 约翰逊计数器

(1)扭环形计数器约翰逊计数器,每次状态变化时仅有一个触发器发生翻转,译码不存在竞争冒险,在nn≥3)位计数器中,使用2n个状态,有2^n-2n个状态未使用;

(2)环形计数器,正常工作时所有触发器中只有一个是1(或0)状态,n个数需要n个触发器,状态利用率低;

(3)n寄存器线性反馈移位寄存器LFSR可以产生的最长的随机序列是2^n−1长度(m序列)LFSR常被用来生成m序列,也可产生和校验CRC

b1057432-ec45-11ec-ba43-dac502259ad0.png

b138be14-ec45-11ec-ba43-dac502259ad0.png

b14a18a8-ec45-11ec-ba43-dac502259ad0.png

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21309

    浏览量

    593130
  • Verilog
    +关注

    关注

    28

    文章

    1325

    浏览量

    109298
  • 触发器
    +关注

    关注

    14

    文章

    1677

    浏览量

    60394

原文标题:FPGA/数字IC笔试题——Verilog实现 N 位 Johnson Counter【约翰逊计数器】【扭环形计数器】

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    计数器怎么判断同步和异步 计数器异步和同步的区别

    计数器是计算机领域中常用的一种数据结构,用于记录和控制程序执行中的指令或事件发生的次数。计数器可以根据同步机制或异步机制进行操作。本文将详细讨论计数器的同步性和异步性,深入探讨两者的区别及其在实际
    的头像 发表于 02-22 15:14 476次阅读

    计数器怎么用 计数器的作用有哪些

    计数器是一种被广泛应用于各个领域的实用工具,在我们的日常生活中随处可见。无论是进行时间统计,协助工作任务的完成,还是用于科学研究和编程技术,在各个领域都起到了重要的作用。本文将详细介绍计数器
    的头像 发表于 02-03 10:04 1198次阅读

    同步计数器和异步计数器各有什么特点

    同步计数器和异步计数器是两种常见的数据结构,它们都用于控制对共享资源的访问。它们的主要作用是实现多个线程之间的同步和并发控制。尽管它们都被用于同步的目的,但它们有很多不同的特点和用例。 同步
    的头像 发表于 12-15 10:49 639次阅读

    同步计数器和异步计数器的区别主要在哪里

    同步计数器和异步计数器的区别详解 同步计数器和异步计数器是数字电路中两种常见的计数器类型,它们在实现
    的头像 发表于 12-13 14:54 2438次阅读

    三菱PLC普通计数器实例说明

    在工业生产中,有时需要对产品进行包装计数,例如每包装10个产品为一箱,然后输出信号给其他设备。这种情况下,我们可以使用三菱PLC的普通计数器实现这个功能。普通计数器是对PLC内部元件
    的头像 发表于 11-09 15:43 963次阅读
    三菱PLC普通<b class='flag-5'>计数器</b>实例说明

    PLC计数器应用简介

    基本指令里面找到计数器操作,点击加计数
    的头像 发表于 11-08 17:22 1102次阅读
    PLC<b class='flag-5'>计数器</b>应用简介

    计数器电路原理解析

    在学习嵌入式系统的过程中,定时器有关内容的学习是必不可少的一个环节。定时器定时功能的实现,最主要的还是靠其内部的计数器。那么,计数器是如何实现计数
    的头像 发表于 09-25 14:18 1519次阅读
    <b class='flag-5'>计数器</b>电路原理解析

    verilog每日一练】计数器计时

    已知外部输入时钟信号clk为50MHz,请用verilog实现计数器的计时1秒钟,每间隔1秒输出一个clk时钟周期的脉冲信号flag,参考波形如下:
    发表于 08-17 09:13

    计数器在程序中有什么作用

    PLC程序除了梯形图之外,还有FBD功能块作为指令,这种指令一般都有背景DB。   PLC计数器指令可使其对内部程序事件和外部过程事件进行计数。这样就可以节约外部计数器的使用。   每个
    的头像 发表于 07-04 15:57 1000次阅读
    <b class='flag-5'>计数器</b>在程序中有什么作用

    扭环形计数器与环形计数器的随机序列

    扭环形计数器,每次状态变化时仅有一个触发器发生翻转,译码不存在竞争冒险,在n(n≥3)位计数器中,使用2n个状态,有2^n-2n个状态未使用;
    的头像 发表于 06-27 10:18 1466次阅读
    扭环形<b class='flag-5'>计数器</b>与环形<b class='flag-5'>计数器</b>的随机序列

    Verilog HDL中使用分频器的8位计数器的设计

    电子发烧友网站提供《在Verilog HDL中使用分频器的8位计数器的设计.zip》资料免费下载
    发表于 06-15 10:14 0次下载
    在<b class='flag-5'>Verilog</b> HDL中使用分频器的8位<b class='flag-5'>计数器</b>的设计

    基于AT89C51单片机用计数器中断实现100以内的按键计数

    基于AT89C51单片机用计数器中断实现100以内的按键计数仿真及代码
    发表于 05-04 15:32 1次下载

    SIMATIC S7-1500 PLC加减计数器简述

    计数器的功能是完成计数功能,可以实现加法计数和减法计数计数范围是0~999.
    的头像 发表于 05-04 09:59 4923次阅读
    SIMATIC S7-1500 PLC加减<b class='flag-5'>计数器</b>简述

    SIMATIC S7-1500 PLC SIMATIC计数器-加计数器

    计数器(S_CU)在计数初始值预置输入端S上有上升沿时,PV装入预置值,输入端CU每检测到一次上升沿,当前计数值CV加1(前提是CV 小于999);当前计数值大于0时,Q输出为高电平
    的头像 发表于 04-27 15:38 1674次阅读
    SIMATIC S7-1500 PLC SIMATIC<b class='flag-5'>计数器</b>-加<b class='flag-5'>计数器</b>

    SIMATIC S7-1500 PLC SIMATIC加计数器

    计数器的功能是完成计数功能,可以实现加法计数和减法计数计数范围是0~999.
    的头像 发表于 04-27 15:38 902次阅读
    SIMATIC S7-1500 PLC SIMATIC加<b class='flag-5'>计数器</b>