基于verilog的抢答器设计.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于verilog的抢答器设计

基于Verilog语言的二路抢答器设计实验报告电子科学与工程学院 121180052 李璇实验目的掌握数字系统中触发器、计数器的设计要素。掌握触发器、计数器的VerilogHDL代码编写。进一步掌握ISE软件的用法,学习代码下载的方法。实验步骤设计限时和复位电路。编写限时/复位电路的VerilogHDL代码并综合、仿真。实现限时抢答器并下载到开发板上进行验证。实验原理设计二路抢答器2、设计定时器和复位电路可使用计数器来实现定时功能。而给定时间的定时,可以让计数器的输出与特定值比较来实现。这个特定的预置数由时钟频率和定时时间决定。这个基本想法如下图所示。图中,“时间到”信号接到计数器的清零端,以便下次计数从0开始。这里,还需要一个计时开始的功能按键,用来启动计数器的计时。那么,计数器就需要一个使能端,受控于“计时开始”按键。我们知道,EN信号是一个持续信号(允许时保持电平),而“时间到”信号是一个持续时间很短的脉冲,因此还需要一个触发器来产生计数器的EN信号。复位信号由“时间到”信号和复位按键相或来得到。完整的限时和复位电路如下图所示。实验代码//主程序部分Module responder (input clk,input set,input reset,input wire in_a,input wire in_b,output wire q_a,output wire q_b, output en );wire clr;wire[27:0] cnt;wire clk_10;wire timeout;reg[27:0] n=28h1ffffff;assign clr = reset||timeout;trig trigger(.set(set), .clk(clk_10), .clr(clr), .en(en));count counter(.clk(clk_10),.clr(clr),.en(en),.cnt(cnt));comp comparator(.cnt(cnt),.n(n),.timeout(timeout));fpga_2 main( .in_a(in_a), .in_b(in_b), .clk(clk_10), .reset(clr), .q_a(q_a), .q_b(q_b), .en(en) );endmodule//触发器trigger部分module trig( input set, input clk, input clr, output reg en );always@(posedge clk)beginif(clr)en=0;elsebeginif(set)en=1;elseen=en;endendendmodule//计数器counter部分module count(input clk,input clr,input en,output reg[27:0] cnt );always @(posedge clk)begin if(clr) cnt=0; else if(en) cnt=cnt+1;endendmodule//比较器comparator部分module comp(input wire[27:0] cnt,input wire[27:0] n,output reg timeout );always @(*)if(cnt==n) timeout=1;else timeout=0;endmodule//抢答器部分module fpga_2(input wire in_a,input wire in_b,input wire clk,input wire reset,input en,output reg q_a,output reg q_b );always @(posedge clk)beginif ( (q_b==1) ||(reset) )q_a=0;else if(in_aen)q_a=1;endalways @(posedge clk)beginif ( (q_a==1) ||(reset) )q_b=0;else if(in_ben)q_b=1;endendmodule仿真测试1、测试代码// Add stimulus hereset = 1;reset = 0;in_a=1;#1000 in_a=0;#100 in_b=1;#1000 reset=1;#100 in_b=0;#100 reset=0;in_b=1;#1000 in_b=0;#100 in_a=1;#1000 reset=1;#100 in_a=0;#100 reset=0;endalways #10 c

您可能关注的文档

文档评论(0)

ligennv1314 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档