网站大量收购独家精品文档,联系QQ:2885784924

时序逻辑电路的Verilog_HDL实现实验报告.doc

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

时序逻辑电路的Verilog HDL实现 实验要求 (1):编写JK触发器、8位数据锁存器、数据寄存器的Verilog HDL程序,并实现其仿真及其测试程序; (2):在实验箱上设计含异步清零和同步使能的计数器。 (3):进行波形仿真测试后;画出仿真波形。 (4):写出实验心得 二.实验内容: (1)1.JK触发器的元件符号如图7.14所示,其中J、K是数据输入端,CLR是复位控制输入端,当CLR=0时,触发器的状态被置为0态;CLK是时钟输入端;Q和QN是触发器的两个互补输出端。  JK触发器的状态方程为   Qn+1 =Jn+Qn JK触发器的verilog HDL程序 module jkff_rs(clk,j,k,q,rs,set); input clk,j,k,set,rs; output reg q; always@(posedge clk,negedge rs,negedge set) begin if(!rs) q=1b0; else if(!set) q=1b1; else case({j,k}) 2b00:q=q; 2b01:q=1b0; 2b10:q=1b1; 2b11:q=~q; default:q=1bx; endcase end endmodule JK触发器的功能:带异步清0,异步置1(低电平有效) JK触发器的仿真结果 2.8位数据锁存器锁存器元件符号如图所示。CLR是复位控制输入端,当CLR=0时,8位数据输出Q[7..0]ENA是使能控制输入端,当ENA=1时,锁存器处于工作状态,输出Q[7..0]=D[7..0];ENA=0时,锁存器的状态保持不变。OE是三态输出控制端,当OE=1时,输出为高阻态;OE=0时,锁存器为正常输出状态。 8位数据锁存器的verilog HDL程序 module tt1373(le,oe,q,d); input le,oe; input[7:0] d; output reg[7:0] q; always @(le,oe,d) begin if((!oe)(le))q=d; else q=8bz; end endmodule 8位数据锁存器的功能:锁存器一次锁存8位数据,功能类似74LS373 8位数据锁存器的仿真结果 3.8位数据寄存器电路的元件符号如图7.18所示,其中CLR是复位控制输入端;LOD是预置控制输入端;S是移位方向控制输入端,当S=1时,是右移移位寄存器,S=0时,是左移移位寄存器;DIR是右移串入输入信号;DIL是左移串入输入信号。 数据寄存器的verilog HDL程序 module reg_w(dout,din,clk,clr); parameter WIDTH=7; input clk,clr; input [WIDTH:0] din; output reg[WIDTH:0] dout; always@(posedge clk,posedge clr) begin if(clr) dout=0; else dout=din; end endmodule 数据寄存器的功能:该8位数据寄存器每次对8位并行输入的数据信号进行同步寄存,且具有异步清零端(clr) 数据寄存器的仿真结果 .8位二进制计数器的元件符号如图7.20所示,CLR是复位控制输入端;ENA是使能控制输入端;LOAD是预置控制输入端;D[7..0]是8位并行数据输入端;UPDOWN是加减控制输入端,当UPDOWN=0时,计数器作加法操作,UPDOWN=1时,计数器作减法操作;COUT是进/借位输出端。 含异步清零和同步使能的计数器的verilog程序 module CNT4B(CLK,RST,ENA,CLK_1,RST_1,ENA_1,OUTY,COUT); input CLK,RST,ENA; output CLK_1,RST_1,ENA_1; output[3:0] OUTY; output COUT; reg[3:0] OUTY; reg COUT; wire CLK_1; wire RST_1; wire ENA_1; assign CLK_1 = CLK; assign RST_1 = RST; assign ENA_1 = ENA; always@(posedge CLK or negedge RST) begin if(!RST) begin OUTY=4b0000; COUT=1b0; end else if(ENA) begin OUTY=OUTY+1b1;

文档评论(0)

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

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

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档