- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验八利用有限状态机进行时序逻辑的设计
实验八:利用有限状态机进行时序逻辑的设计
一:利用有限状态机进行时序逻辑的设计的源程序:
module seqdet(x,z,clk,rst,state);
input x,clk,rst;
output z;
output[2:0] state;
reg[2:0] state;
wire z;
parameter IDLE=d0, A=d1, B=d2,
C=d3, D=d4,
E=d5, F=d6,
G=d7;
assign z = ( state==E x==0 )? 1 : 0;
always @(posedge clk)
if(!rst)
begin
state = IDLE;
end
else
casex(state)
IDLE : if(x==1)
begin
state = A;
end
A: if(x==0)
begin
state = B;
end
B: if(x==0)
begin
state = C;
end
else
begin
state = F;
end
C: if(x==1)
begin
state = D;
end
else
begin
state = G;
end
D: if(x==0)
begin
state = E;
end
else
begin
state = A;
end
E: if(x==0)
begin
state = C;
end
else
begin
state = A;
end
F: if(x==1)
begin
state = A;
end
else
begin
state = B;
end
G: if(x==1)
begin
state = F;
end
default:state=IDLE;
endcase
endmodule
二:利用有限状态机进行时序逻辑的设计的测试代码:
`timescale 1ns/1ns
`include ./seqdet.v
module seqdet_Top;
reg clk,rst;
reg[23:0] data;
wire[2:0] state;
wire z,x;
assign x=data[23];
always #10 clk = ~clk;
always @(posedge clk)
data={data[22:0],data[23]};
initial
begin
clk=0;
rst=1;
#2 rst=0;
#30 rst=1;
data =b1100_1001_0000_1001_0100;
#500 $stop;
end
seqdet m(x,z,clk,rst,state);
endmodule
三:Transcript显示结果:
# Reading E:/altera/91/modelsim_ase/tcl/vsim/pref.tcl
# Loading project fulladder8
# reading E:\altera\91\modelsim_ase\win32aloem/../modelsim.ini
# Loading project ssss
# Compile of seqdet.v was successful.
# Compile of seqdet_Top.v was successful.
# 2 compiles, 0 failed with no errors.
vsim work.seqdet_Top
# vsim work.seqdet_Top
# Loading work.seqdet_Top
# Loading work.seqdet
四:测试波形如下图所示:
文档评论(0)