JK触发器JK触发器具有保持,置0 , 置1和翻转四个功能 。
文章插图
则可得出次态方程:\(Q_{n+1} = JQ_n'+K'Q_n\)
Design
`timescale 1ns / 1psmodule 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)beginq <= 1'b0;endelse if(!Set)beginq <= 1'b1;endelsebegincase({J,K})2'b00 : q <= q;2'b01 : q <= 0;2'b10 : q <= 1;default : q <= ~q;endcaseendassign Q=q;endmodule
Simulation`timescale 1ns / 1psmodule JK_sim();reg Reset, Set, clk;wire Q;reg J, K;jk uu(clk, Reset, Set, J, K, Q);initialbeginReset = 0;Set = 0;clk = 1;J = 0;K = 0;#40 Reset = 1;#40 Set = 1;endalways #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 / 1psmodule 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 / 1psmodule sim_dev1();reg Reset,Set,clk;wire [3:0]Y;initialbeginReset = 0;Set = 0;clk = 1;#20 Reset = 1;#20 Set = 1;endalways#20 clk = ~clk;CNT12 u(Reset,Set,clk,Y);endmodule
波形图文章插图
vivado使用JK触发器IP核来实现计数器
- 新建JK触发器项目 。
- 新建Design Sources 。
- 将前面JK触发器的代码粘贴进去 。
- 点击Tools , 点击Create and package new IP 。
文章插图
- Next,选择Package your current project,Next,复制一下IP核的位置 。
文章插图
文章插图
- 退出当前项目 , 新建计数器项目 。
- 点击Settings,再点开IP , 点击Repository 。
文章插图
- 点击加号,粘贴刚刚复制的路径 。
文章插图
- 然后点击Select , OK 。
- 现在点击PROJECT MANAGER 中的IP Catalog 。
文章插图
- 看到我们刚刚添加的IP核了 。
文章插图
- 双击这个IP核,弹窗点击OK,再OK,点击Generate生成 。
- 现在实现计数器,粘贴我们刚刚的代码 。记得JK触发器的名字要改为和刚刚生成的IP核的名字一样(一般默认是 {name}_0 ) 。
- 完成,可以试试模型仿真 。
推荐阅读
- 【深入浅出 Yarn 架构与实现】1-1 设计理念与基本架构
- Java单例模式,看这一篇就够了
- 创造与魔法8月26日最新礼包兑换码在哪里领取
- 我的世界怎么去月球无模组无指令(我的世界新版怎么去月球)
- 我的世界怎么去月球模组免费(mc月球模组)
- Python基础之面向对象:3、继承与派生
- clip-path属性深入理解与使用
- iPhone12mini与iPhone13mini对比_哪款更值得入手
- 剑与远征8月诗社竞答第六天答案是什么
- springboot项目整合-注册功能模块开发