序列检测器设计modelsimverilog实验报告.docVIP

序列检测器设计modelsimverilog实验报告.doc

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

实验四-序列检测 一、实验目的1.实验目的:通过学习,一般逻辑分析的方法。 使用Verilog语言编写实现序列检测 3.学会使用Verilog编写tbech的方法并Modelsim中实现时序仿真。 、实验设备 PC机一台 Modelsim软件 、实验内容检测器能够与从二进制码流中检测出一组特定序列的信号的时序电路通过的序列号与检测其预设值比较,检测到输入信号匹配时,输出的指示。 序列检测器要求能够“10010”。din为数字码流的输入,检测标记的输出,高电平表示发现指定序列,低电平没有发的序列。 检测“10010”时序输入与输出示例如下: T 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 … x 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 1 0 0 1 0 … z 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 … Table 1 - 序列检测示例 1.打开Modelsim软件目录至位置,这里选择D,在D下一保存有检测文件seqdet.v测试文件,源程序在附录里 2.然后新建工程-Project,建立工程为seqdet如下并在接下来的步骤中添加检测文件seqdet.v测试文件 4.编译文件 编译无误后仿真 5.文件仿真 在弹出的窗口中选择-work-seqdet_tb,默认选中优化选项。OK 6.添加信号wave视图中。下,切换到窗口object视图下,信号Tclk,rst,x,z,q到wave窗口中, 后如图所示: 7.运行仿真ns,波形图显示如图所示: 分析:上述图形分析如下 当rst信号为高电平时,输入使能,的为x:0001_1001_0010_0001_0010_1000用蓝色表示的为第一次检测到“10010”,黄色表示为第二次序列,紫色表示为第三次匹配序列。z在这三处时,其他为低电平,实现了检测的功能 四,程序 ①源程序模块seqdet.v : module seqdet ( input wire x, //信号输入 input wire clk, //时钟信号 input wire rst, output wire z, output reg [4:0] q //序列输出 ); wire [4:0] q_next; assign q_next ={q[3:0],x}; assign z = (q_next== 5b10010) ? 1b1:1b0; always @ (posedge clk,negedge rst) if(!rst) q = 5d0; else q = q_next; endmodule ②测试程序seqdet_tb.v `timescale 1ns/1ns module seqdet_tb; localparam T =20; reg clk,rst; reg [23:0] data; wire z,x; wire [4:0] q; assign x = data[23]; initial begin clk =0; rst =1; #2 rst =0; #30 rst =1; data =20b1100_1001_0000_1001_0100; #(T*1000) $stop; end always #T clk = ~clk; always @ (posedge clk) #2 data = {data[22:0],data[23]}; seqdet U1 ( .x(x), .z(z), .clk(clk), .q(q), .rst(rst) ); endmodule 五、总结: 本次实验,对Verilog硬件描述语言有了进一步,编写的文本设计方法,学会testbench测试程序初步掌握使用Modelsim软件调试的方法。移位寄存器进行序列检测,使用状态机,便于拓展

您可能关注的文档

文档评论(0)

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

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

版权声明书
用户编号:5212202040000002

1亿VIP精品文档

相关文档