FPGA程序设计实验报告 JK触发器.pdf

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
FPGA程序设计实验报告 JK触发器

FPGA 程序设计实验报告——JK 触发器 一. 实验目的 JK 触发器是一种基础电子元件,这个程序用Quartus 模拟JK 触发器的功能,具有异步 信号清零或置1 功能,同时在JK 触发器程序基础上进行修改,使其具有对输出q 的显示功 能,在q 取1 时显示1,在q 取0 时显示0 。这里使用的是上升沿触发式JK 触发器。 二. 程序代码 module JK(clk,j,k,q,r,s,seg); input clk,j,k,r,s; output q; output [7:0]seg; reg q=0; reg [7:0]seg; always @(posedge clk) begin if(r==1 s==0) begin q=0; end if(r==0 s==1) begin q=1; end if(r==0 s==0) begin if(j==1 k==1) begin q=~q; end if(j==1 k==0) begin q=1; end if(j==0 k==0) begin q=q; end if(j==0 k==1) begin q=0; end end end always @(q) begin if(q==0) begin seg=8b0011_1111; end if(q==1) begin seg=8b0000_0110; end end endmodule 三. 仿真结果 对程序进行编译仿真之后,得到以下结果: 仿真结果说明: 对于上升沿式JK 触发器,仅在上升沿到来是触发改变q 的取值。r 和s 是两个异步信号 输入端,在r 取1,s 取0 时,无论j ,k 输入端如何,q 始终取0 。在r 取0,s 取1 时,无 论j ,k 输入端如何,q 始终取1。在r 和s 都取0 时,触发器正常工作,其q 值取决于上升 沿到来时的j ,k 以及之前一个周期的q 值。由于在r 取1,s 取1 时,触发器处于不正常工 作状态,q 值不定,因此在这里不做定义。 仿真时,q 初始值取0 ,先令r=1,s=0,则q 被强制置零,seg 数码管显示0 。 然后我们使r=0,s=1,则q 被强制置1,seg 数码管显示1。 然后我们使 r=0,s=0,使触发器正常工作,先后使j=0,k=0 (1),j=1,k=0 (2 ),j=0 , k=0 (3 ),j=0,k=1 (4 ),j=0,k=0 (5 ),j=1,k=1 (6 ),根据+1 =~ +~,可以得到 当前状态时的q 值,结果如下: (1) j=0,k=0,q 值保持先前状态,取1。 (2 ) j=1 ,k=0,q 取1。 (3 ) j=0,k=0,q 值保持先前状态,取1。 (4 ) j=0,k=1,q 取0 。 (5 ) j=0,k=0,q 值保持先前状态,取0 。 (6 ) j=1 ,k=1,q 值为先前状态取反,则在每个上升沿处,q 都要翻转一次,先后取1, 0 ,1。 四. 实验小结 通过一个学期对Quartus 软件的学习,已经能够使用其简单的功能实现一些比较基础的 程序设计。对于其并行的程序处理方式有了一定的了解,在设计程序的过程中也出现过在两 个并行进程中对同一个变量进行处理的冲突,但已经通过修改解决了这些问题。对于简单 verilog HDL 的语法已经能够基本应用,分频、数据选择这样的基础小程序已经能够独立编写。 最后需要感谢老师一个学期以来在FPGA 以及Quartus 方面的指导,使我们能够对其有 所了解。 五. 参考资料 《verilog 黄金参考指南中文版》

文档评论(0)

xxj1658888 + 关注
实名认证
内容提供者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档