Verilog上机实验报告
五、 代码
4. 主程序
---------------------------------------文件名 check.v--------------------------------------------
module seqdet(in,z,clk,rst); input in,clk,rst; output z;
reg[2:0] state; wire z;
parameter IDLE='d0, A='d1, B='d2, C='d3;
assign z=((state==C)&&(in==1))? 1:0;
always @ (posedge clk) if(!rst) begin
state<=IDLE; end else
casex(state) IDLE: if(in==1) begin
state<=A; end A: if(in==1) begin
state<=B; end else
begin
state<=IDLE; end B: if(in==1) begin
state<=C; end else
begin
state<=IDLE; end C: if(in==1) begin
36
Verilog上机实验报告
state<=C; end else
begin
state<=IDLE; end
default:state=IDLE; endcase endmodule
5. 测试模块
----------------------------------------文件名 check_tb.v----------------------------------- `timescale 1ns/1ns
module t;
reg clk,rst,in;
wire z;
always #10 clk= ~clk; always @ (posedge clk) in = {$random}%2; initial begin clk=0; rst=1; #2 rst=0; #30 rst=1;
#10000 $stop; end
seqdet m(in,z,clk,rst); endmodule
37
Verilog上机实验报告
六、 仿真波形
七、 总结及对波形的说明
1. 实验结论
从波形中可以看出,当出现4个或4个以上连1的时候,输出1,否则输出为0。符合题目要求。
2. 实验总结
本次实验是Verilog上机的第八个实验,利用有限状态机完成了指定序列的检测工作。重点在于搞清状态转移的过程。
38
Verilog上机实验报告
选做实验一 帧同步器设计
一.实验内容
39
Verilog上机实验报告
40