首页 > 其他分享 >JK触发器与模12计数器

JK触发器与模12计数器

时间:2022-11-03 20:48:01浏览次数:78  
标签:Reset 触发器 Set clk 与模 12 JK input

JK触发器

JK触发器具有保持,置0,置1和翻转四个功能。

则可得出次态方程:\(Q_{n+1} = JQ_n'+K'Q_n\)


Design

`timescale 1ns / 1ps
module jk(clk,Reset,Set,J,K,Q);
input clk;
input Reset;
input Set;
input J;
input K;

output Q;

reg q;

always@(posedge clk)
    if(!Reset)            
        begin
            q <= 1'b0;
        end
    else if(!Set)    
        begin
            q <= 1'b1;
        end
    else
        begin
            case({J,K})
                2'b00 : q <= q;
                2'b01 : q <= 0;
                2'b10 : q <= 1;
                default : q <= ~q;
            endcase
         end
     assign Q=q;
endmodule

Simulation

`timescale 1ns / 1ps
module JK_sim();
reg Reset, Set, clk;
wire Q;
reg J, K;

jk uu(clk, Reset, Set, J, K, Q);
initial
    begin
    Reset = 0;
    Set = 0;
    clk = 1;
    J = 0;
    K = 0;
    #40 Reset = 1;
    #40 Set = 1;
    end
always #20{J, K} = {J, K} + 1;
always #10 clk = ~clk;
endmodule

波形图

模12计数器

需要使用4个JK触发器,卡诺图化简后得到触发器控制函数的最简与或式如下:

\(J_1 = K_1 = 1\)

\(J_2 = K_2 = Y_1^{n}\)

\(J_3 = (Y_4^n)'Y_2^nY_1^n\)

\(K_3 = Y_2^nY_1^n\)

\(J_4 = Y_3^nY_2^nY_1^n\)

\(K_4=Y_2^nY_1^n\)


Design

`timescale 1ns / 1ps
module count(Reset,Set,clk,Y);
input Reset;
input Set;
input clk;
output [3:0]Y;

wire j1,j2,j3,j4,k1,k2,k3,k4;

assign j1 = 1;
assign k1 = 1;
assign j2 = Y[0];
assign k2 = Y[0];
assign j3 = (~Y[3])&Y[1]&Y[0];
assign k3 = Y[0]&Y[1];
assign j4 = Y[0]&Y[1]&Y[2];
assign k4 = Y[0]&Y[1];
jk_0 u1 (clk,Reset,Set,j1,k1,Y[0]);
jk_0 u2 (clk,Reset,Set,j2,k2,Y[1]);
jk_0 u3 (clk,Reset,Set,j3,k3,Y[2]);
jk_0 u4 (clk,Reset,Set,j4,k4,Y[3]);

endmodule

Simulation

`timescale 1ns / 1ps
module sim_dev1();
reg Reset,Set,clk;
wire [3:0]Y;

initial
    begin
        Reset = 0;
        Set = 0;
        clk = 1;
        #20 Reset = 1;
        #20 Set = 1;
    end
always#20 clk = ~clk;
CNT12 u(Reset,Set,clk,Y);
endmodule

波形图

vivado使用JK触发器IP核来实现计数器

  1. 新建JK触发器项目。

  2. 新建Design Sources。

  3. 将前面JK触发器的代码粘贴进去。

  4. 点击Tools,点击Create and package new IP。

  5. Next,选择Package your current project,Next,复制一下IP核的位置。

  6. 退出当前项目,新建计数器项目。

  7. 点击Settings,再点开IP,点击Repository。

  8. 点击加号,粘贴刚刚复制的路径。

  9. 然后点击Select,OK。

  10. 现在点击PROJECT MANAGER 中的IP Catalog。

  11. 看到我们刚刚添加的IP核了。

  1. 双击这个IP核,弹窗点击OK,再OK,点击Generate生成。
  2. 现在实现计数器,粘贴我们刚刚的代码。记得JK触发器的名字要改为和刚刚生成的IP核的名字一样(一般默认是 {name}_0 )。
  3. 完成,可以试试模型仿真。

标签:Reset,触发器,Set,clk,与模,12,JK,input
From: https://www.cnblogs.com/Az1r/p/16855761.html

相关文章

  • UVA 1204
    好久没写题解了,现在写一篇。首先我们可以想到一个\(O(n^2)\)DP——\(f(S,i,0/1)\)表示当前我们考虑字符串集合为\(S\),最后一个字符串为\(i\),是正着还是反着放的。(这类“正......
  • 虚拟币交易平台(区块链) 中 【开发交易所】程序员的自我救赎---12.2.2:
    虚拟币交易平台(区块链)中【开发交易所】 对于,如果没有看上一篇文章的,建议先看一下上一篇文章了解如何发行一个区块链代币: 12.2.1:虚拟币交易平台(区块链)上【发行区块......
  • CH32V00+WS2812制作音乐谱显示
    CH32V003,自带运放、SPI、PWM等外设模块,关键还便宜,便宜,便宜!可以尝试来实现一个低成本的音乐谱显示。1.硬件设计显示方面,使用64颗ws2812组成8*8的显示阵列,通过CH32V003......
  • ASEMI代理LSIC2SD120A05-力特Sic肖特基二极管
    编辑:llASEMI代理LSIC2SD120A05-力特Sic肖特基二极管型号:LSIC2SD120A05品牌:LITTELFUSE/力特封装:TO-220-2L特性:Sic肖特基二极管正向电流:5A反向耐压:1200V恢复时间:35ns......
  • navicate12 连接MySQL8 报错
      mysql>selectuser,plugin,hostfromuserwhereuser='root';+------+-----------------------+------+|user|plugin|host|+------+------......
  • 20201317 LYX 第12章 块设备I/O和缓冲区管理
    第12章块设备I/O和缓冲区管理知识总结解释块设备I/O的原理和I/O缓冲的优点介绍Unix的缓冲区管理算法利用信号量设计新的缓冲区管理算法,以提高I/O缓冲区的缓存效率和......
  • CSP2020-12-T5
    星际旅行算法:线段树、离散化题意:你需要维护\(3\)维空间的\(n(1\leqn\leq10^9)\)个点,初始时这些点的三维坐标都是\(0\)。将有以下\(4\)种操作\(m(1\leqm\leq......
  • 第五章12
    【题目描述】有一只猴子,第一天摘了若干个桃子,当即吃了一半,但还觉得不过瘾,就又多吃了一个。第2天早上又将剩下的桃子吃掉一半,还是觉得不过瘾,就又多吃了两个。以后每天早......
  • SQLSERVER 2012迁移实施方案
    一、概述一台SQLSERVER2012企业版的数据库需要迁移到另一台机器上,具体情况如下:登陆账号众多,有数百个。job众多,有数百个。DB库的数量多,数据大,DB总大小达10T多,DB......
  • 朴素的dijkstra最短路径算法
    dijkstra算法适用于无负权图中求最短路径,时间复杂度为O(n^2+e),n为节点数,e为边数需要的数据:1.n行两列数组arr[n][2],第一列记录当前节点到出发点的最短距离,第二列记录当......