例化4个JK触发器实现4位计数

这篇具有很好参考价值的文章主要介绍了例化4个JK触发器实现4位计数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        闲来无事打个嵌入式校赛玩玩,旨在用FPGA实现4位计数器,其功能包括上计、下计、置位、复位、暂停。

        具体实现大概要先从JK触发器的功能表入手:     

        JK触发器在J、K两个引脚接的输入信号不同时可以分别代替SR锁存器、T触发器,这也是日常中SR锁存器、T触发器生产量小而JK触发器生产量大。emmm具体功能表查一下百度啥的吧,反正在这个4位计数器中主要用了JK触发器的“翻转”以及“保持”功能吧。为了让其通用性更强,采用了异步复位、异步置位:在复位信号和置位信号的上升沿做处理让输出为0和1(采用下降沿或者电平触发或者脉冲触发都行的)

        下面是JK触发器的verilog实现及vivado生成的电路图:

//JK触发器一共7个引脚分别是输入J、K,时钟CLK,
//           输入复位、置位RST、SET以及输出Q和Q'
module JKtrigger(J, K, CLK, RST, SET, Q);
    input wire J, K, CLK, RST, SET;
    output reg Q;
    
	//RESET SET单独取上升沿做异步操作
	always @(posedge CLK or posedge RST or posedge SET) begin
		if (RST)
			Q <= 1'b0;
		else if (SET)
			Q <= 1'b1;
		else if (J && ~K)
			Q <= 1'b1;
		else if (~J && K)
			Q <= 1'b0;
		else if (J && K)
			Q <= ~Q;
	end

endmodule

4jk触发器,fpga开发

         其实这个JK触发器在写的过程中就已经把复位、置位信号的处理方式做好了,所以在顶层设计4位计数器的时候只要在例化传对信号即可做复位、置位的操作。

        由于计数器还应有一个暂停功能,且显然在这个计数器中信号的优先级是复位>=置位>=暂停>上、下计选择。由于JK触发器在J、K引脚的输入都为0时JK触发器的输出是保持不变,也即4位计数器的结果可以保持不变,而在J、K引脚的输入都为1时JK触发器的输出是翻转,为此JK信号的逻辑是if pause -> J=K=0   else ->J=K=1   emmm具体细节就直接看代码吧。

        下面是例化4个JK触发器的4位计数器verilog实现及vivado生成的电路图:

//四位计数器一共6个引脚分别是时钟CLK,输入复位、置位RST、SET
//      计数选择上计、下计count_choice,暂停信号pause
//               输出信号count
module four_bit_counter(CLK, RST, SET, count_choice, pause, count);
	input wire CLK, RST, SET, count_choice, pause;
	output wire [3:0] count;

	//中间值
	wire [3:0] Q;
	wire [3:0] J,K;
	reg [3:0] Q_reg;
	
	//控制JK触发器的J和K输入(pause信号进来时为0让JK触发器保持)
	assign J = pause ? {4{1'b0}} : {4{1'b1}};
	assign K = pause ? {4{1'b0}} : {4{1'b1}};
	

	//实例化4个JK触发器
	JKtrigger jk0(
	.J(J[0]),
	.K(K[0]),
	.CLK(CLK),
	.RST(RST),
	.SET(SET),
	.Q(Q[0])
	);
	
	JKtrigger jk1(
	.J(J[1]),
	.K(K[1]),
	.CLK(count_choice?Q[0]:~Q[0]),
	.RST(RST),
	.SET(SET),
	.Q(Q[1])
	);
	
	JKtrigger jk2(
	.J(J[2]),
	.K(K[2]),
	.CLK(count_choice?Q[1]:~Q[1]),
	.RST(RST),
	.SET(SET),
	.Q(Q[2])
	);
	
	JKtrigger jk3(
	.J(J[3]),
	.K(K[3]),
	.CLK(count_choice?Q[2]:~Q[2]),
	.RST(RST),
	.SET(SET),
	.Q(Q[3])
	);
	
	assign count = Q;
	
endmodule

4jk触发器,fpga开发

整体来说还是比较简单的,后续会在当前基础上将比特流文件下到PYNQ-Z2的开发板上利用Arm核与上位机实现串口通信将4位计数器的结果实时回传到上位机的串口界面中。

        后面再见! 文章来源地址https://www.toymoban.com/news/detail-772652.html

到了这里,关于例化4个JK触发器实现4位计数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 用jk触发器设计一个011序列检测器的设计分析过程

       心得体会:经过此次设计,加深了对时序逻辑电路的理解,当要求对一个连续的一串信号进行输入输出处理时可以用到有记忆存储、反馈功能的jk触发器或者d触发器。

    2024年02月04日
    浏览(47)
  • FPGA面试题【D触发器搭建4进制的计数器】

    目录 题目 核心思路 答案 用D触发器搭建4进制的计数器 本题目主要考察了数字电路基础中的计数器设计。 题目看上去很简单,要求实现一个4进制的计数器,但要用D触发器来搭建,这显然不会像写Verilog实现一样容易,所以我们要用数字电路中的传统方法来设计。 4进制计数器

    2024年02月04日
    浏览(50)
  • Multisim实现D触发器模拟异步计数器

    这里用到的元器件有: DIgital power (VCC)数字电源 DIGITAL-CLOCK 数字时钟 逻辑分析仪 (XLA) ground 数字地 SPST 单刀单掷开关 74HC74D_4V D触发器芯片 DCD_HEX 数码管(带译码器四位二进制输入) PROBE 电位探测灯 PB_DPST 弹簧式触发开关 SPDT 单刀双掷开关 先来说说D触发器的原理: 74HC74D

    2024年02月10日
    浏览(63)
  • FPGA开发——VHDL实现各类触发器

    小编最近在学习时序电路的VHDL设计,通过此文对触发器和VHDL相关知识进行总结,以便日后进行复习、查阅。本文首先回顾了各类触发器的基本知识包括特性方程、状态图等,最后通过VHDL来实现各类触发器。 在实际的数字系统中往往包含大量的存储单元,而且经常要求他们在

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

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

    2024年02月03日
    浏览(64)
  • FPGA之 寄存器、触发器、锁存器

    每个slice有8个存储元素,每个存储元素如下图所示:  其中四个为DFF/LATCH,可以配置为边沿触发D型触发器或电平敏感锁存器输入上图。D输入可以通过AFFMUX, BFFMUX, CFFMUX或DFFMUX的LUT输出直接驱动,也可以通过AX, BX, CX或DX输入绕过函数发生器的 BYPASS slice输入直接驱动。当配置为锁存

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

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

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

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

    2024年02月11日
    浏览(52)
  • FPGA结构:LATCH(锁存器)和 FF(触发器)介绍

    如果你想学习有关FPGA的专业术语,可以参考这一篇:FPGA专业术语介绍 一句话概括,能够存储一个状态的数字电路叫做锁存器。 以下是最为基本的一个RS锁存器的具体结构: 以下是它的真值表,其中X表示不确定/无效: R {R} R (清零) S {S} S (置位) Q ( t ) {Q(t)} Q ( t ) (上一时刻的

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

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

    2023年04月08日
    浏览(52)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包