收藏 分销(赏)

序列检测器仿真 verilog.doc

上传人:xrp****65 文档编号:7016707 上传时间:2024-12-24 格式:DOC 页数:10 大小:802.50KB 下载积分:10 金币
下载 相关 举报
序列检测器仿真 verilog.doc_第1页
第1页 / 共10页
序列检测器仿真 verilog.doc_第2页
第2页 / 共10页


点击查看更多>>
资源描述
0101/110序列检测器仿真 1. 实验目的 熟悉Modelsim仿真软件的使用方法,了解状态机的建模方法,使用ModelSim仿真QuartusII工程。 2. 实验内容 l 用HDL语言的输入方式,实现0101/110序列检测器。 l 用modelsim进行仿真 l 下载至DE0开发板上观察实验结果 3. 代码分析(以0101序列检测器为例) 1) 状态图如下: St0 St1 St3 St2 St0 St1 St2 0/0 1/0 0/0 1/1 1/0 0/0 0/0 1/0 0/0 0/0 1/0 1/0 1/0 0/1 图3.1 0101(左)/110(右)序列检测状态图 2) 主模块中首先定义了本次实验的所有输入输出接口及各个状态。其中,因为有4种状态,所以current为2位。 //0101 Sequential detector module lab1a (vin,cp,ncr,vout); input vin,cp,ncr; output vout; reg vout; reg [1:0] current,next; parameter s0=2'b00,s1=2'b01,s2=2'b10,s3=2'b11; 3) 然后设置异步清零,在cp上升沿则沿触发器状态翻转。 always @(posedge cp or negedge ncr) begin if (~ncr) current <= s0; else current <= next; end 4) 接着编写组合逻辑部分,设定下一状态产生和输出的信号。 always @(current or vin) begin next=2'bxx; case (current) s0:begin next = (vin==1)?s0:s1; end s1:begin next = (vin==1)?s2:s1; end s2:begin next = (vin==1)?s0:s3; end s3:begin next = (vin==1)?s2:s1; end endcase end 5) 最后为输出部分,本程序中设置让输出信号经过一个寄存器再输出,可以消除vout信号中的毛刺。 always @(posedge cp or negedge ncr) begin if (~ncr) vout = 1'b0; else begin vout = 1'b0; case (current) s0,s1,s2:vout =1'b0; s3:if (vin==1) vout = 1'b1; else vout = 1'b0; endcase end end endmodule 6) 测试模块中同样先定义了各个变量,并将它们与主模块一一对应后进行初始化。 module test(); reg cp,clr,en; wire q; lab1a d (.cp(cp), .ncr (clr), .vin(en), .vout(q)); initial begin cp = 0; clr = 0; en = 0; end 7) 接着设置各信号波形:clr在20个单位时间后变为1,en的数据变为有效,cp,,en则分别在每10个和16个单位时间翻转一次。在420个单位时间后仿真停止。 initial begin #20 clr = 1; #400 $stop; end always #10 cp=~cp; always #16 en=~en; endmodule 4. 实验步骤 1) 打开Modelsim,出现欢迎界面 点击Jumpstart 点击Create a Project新建一个工程 设置好工程名和路径后点击OK 点击Create New File 选择文件类型为Verilog 双击文件名,写好程序后用右键单击文件,选择Compile All 成功后,文件名右边的Status会变为打钩 2) 选择Simulate => Start Simulation 选择所需的的测试文件 点击OK后如下图 点击View => Wave 在Object中添加信号 然后点击Run All开始仿真 5. 实验结果的测试和分析 0101序列检测器的仿真图形如下: 110序列检测器的仿真图形如下: 检验后结果正确。 6. 实验总结 通过这次试验,我明白了序列检测器的原理以及Modelsim的基本使用方法。 7. 参考文献 1) 源代码: 《Verilog HDL与数字ASIC设计基础》 华中科技大学出版社
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服