您好,欢迎来到微智科技网。
搜索
您的当前位置:首页序列检测器仿真 verilog

序列检测器仿真 verilog

来源:微智科技网
0101/110序列检测器仿真

1. 实验目的

熟悉Modelsim仿真软件的使用方法,了解状态机的建模方法,使用ModelSim仿真QuartusII工程。

2. 实验内容

 用HDL语言的输入方式,实现0101/110序列检测器。  用modelsim进行仿真

 下载至DE0开发板上观察实验结果

3. 代码分析(以0101序列检测器为例)

1) 状态图如下:

1/0 St0 0/0 0/0 St1 0/0 St0 0/0 1/0 St1 1/0 0/1 St2 St2 1/0 图3.1 0101(左)/110(右)序列检测状态图

0/0 St3 0/0 1/1 1/0 1/0

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设计基础》 华中科技大学出版社

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务