实验三用状态机实现序列检测器的设计VerilogWord文档下载推荐.docx

上传人:b****6 文档编号:21525955 上传时间:2023-01-31 格式:DOCX 页数:9 大小:16.63KB
下载 相关 举报
实验三用状态机实现序列检测器的设计VerilogWord文档下载推荐.docx_第1页
第1页 / 共9页
实验三用状态机实现序列检测器的设计VerilogWord文档下载推荐.docx_第2页
第2页 / 共9页
实验三用状态机实现序列检测器的设计VerilogWord文档下载推荐.docx_第3页
第3页 / 共9页
实验三用状态机实现序列检测器的设计VerilogWord文档下载推荐.docx_第4页
第4页 / 共9页
实验三用状态机实现序列检测器的设计VerilogWord文档下载推荐.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

实验三用状态机实现序列检测器的设计VerilogWord文档下载推荐.docx

《实验三用状态机实现序列检测器的设计VerilogWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《实验三用状态机实现序列检测器的设计VerilogWord文档下载推荐.docx(9页珍藏版)》请在冰豆网上搜索。

实验三用状态机实现序列检测器的设计VerilogWord文档下载推荐.docx

wire[3:

0]AB;

wire[17:

xulieu1(clk,din18,reset,din);

schku2(din,clk,reset,AB);

decl7su3(AB,LED7S);

endmodule

//串行检测:

moduleschk(DIN,CLK,CLR,AB);

inputDIN,CLK,CLR;

output[3:

reg[3:

reg[7:

0]Q;

parameter

idle=8'

b00000000,

a=8'

b00000001,

b=8'

b00000010,

c=8'

b00000100,

d=8'

b00001000,

e=8'

b00010000,

f=8'

b00100000,

g=8'

b01000000,

h=8'

b10000000;

parameterdata=8'

b11100101;

always@(posedgeCLKornegedgeCLR)

if(!

CLR)

begin

Q<

=idle;

end

else

case(Q)

idle:

if(DIN==data[7])Q<

=a;

elseQ<

=idle;

a:

if(DIN==data[6])Q<

=b;

b:

if(DIN==data[5])Q<

=c;

c:

if(DIN==data[4])Q<

=d;

d:

if(DIN==data[3])Q<

=e;

e:

if(DIN==data[2])Q<

=f;

f:

if(DIN==data[1])Q<

=g;

g:

if(DIN==data[0])Q<

=h;

h:

if(DIN==data[7])Q<

default:

Q<

endcase

always@(Q)

if(Q==h)AB<

=4'

b1010;

elseAB<

b1011;

//前端预置8位数据输入:

modulexulie(clk,din18,reset,din);

input[17:

outputdin;

regdin;

s0=5'

b00000,

s1=5'

b00001,

s2=5'

b00010,

s3=5'

b00011,

s4=5'

b00100,

s5=5'

b00101,

s6=5'

b00110,

s7=5'

b00111,

s8=5'

b01000,

s9=5'

b01001,

s10=5'

b01010,

s11=5'

b01011,

s12=5'

b01100,

s13=5'

b01101,

s14=5'

b01110,

s15=5'

b01111,

s16=5'

b10000,

s17=5'

b10001;

reg[4:

0]cur_state,next_state;

always@(posedgeclkornegedgereset)

reset)

cur_state<

=s17;

=next_state;

always@(cur_stateordin18ordin)

case(cur_state)

s17:

begin

din<

=din18[17];

next_state<

=s16;

s16:

=din18[16];

=s15;

s15:

=din18[15];

=s14;

s14:

=din18[14];

=s13;

s13:

=din18[13];

=s12;

s12:

=din18[12];

=s11;

s11:

=din18[11];

=s10;

s10:

=din18[10];

=s9;

s9:

=din18[9];

=s8;

s8:

=din18[8];

=s7;

s7:

=din18[7];

=s6;

s6:

=din18[6];

=s5;

s5:

=din18[5];

=s4;

s4:

=din18[4];

=s3;

s3:

=din18[3];

=s2;

s2:

=din18[2];

=s1;

s1:

=din18[1];

=s0;

s0:

=din18[0];

=1'

b0;

提示:

1.若对于D<

="

11100101"

,电路需记忆:

初始状态、1、11、111、1110、11100、111001、1110010、11100101共9种状态。

三、实验内容:

1.编写由两个主控进程构成的有限状态机。

画出状态图,并给出其仿真测试波形;

2.自己编写数码管显示程序(decl7s.v)来显示A或B状态。

已知数码管为共阳级连接。

输入(4bits)输出(7bits)显示内容

4’b10107’b0001000a

4’b10117’b0000011b

4’b00007’b10000000

可以在default分支选用显示“0”。

3.利用QuartusII对文本编辑输入、仿真测试并给出仿真波形,了解控制信号的时序。

最后进行引脚锁定并完成硬件测试实验。

建议用KEY3(PIN_W26)控制复位信号RESET;

KEY2(PIN_P23)控制状态机工作时钟

CLK;

指示输出AB接数码管HEX0(PIN_AF10,PIN_AB12,PIN_AC12,PIN_AD11,PIN_AE11,

PIN_V14,PIN_V13)。

5.下载后,按以下提示进行操作:

1)、按实验板“系统复位”键;

2)、用SW17-SW0键输入包含待测序列数"

的18位数据;

3)、按下RESET键;

4)、按KEY2键(时钟clk输入)18次,这时若串行输入的18位二进制序列码中包含有"

,则数码管HEX0应从原来的B变成A,表示序列检测正确,否则仍为B。

四、思考题:

说明代码表达的是什么类型的状态机,它的优点是什么,详述其功能和对序列数检

测的逻辑过程;

五、实验报告:

根据以上的实验内容写出实验报告,包括设计原理、程序设计、程序分析、仿真分析、硬件测试和详细实验过程。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 初中作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1