名称:序列发生器及序列检测器设计Verilog代码VIVADO仿真
软件:VIVADO
语言:Verilog
代码功能:
时钟同步状态机设计
设计一个序列发生器产生学号后两位数值对应的8421BCD码,再设计一个对应学号后两位数值8421BCD码的序列检测器。
要求仿真实现:
将设计的序列发生器输出作为序列检测器输入。当检测到对应学号的数值时,输出为“1”,否则输出为“0”。
序列检测器输入始终为“1”,测出此时检测器的输出。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
部分代码展示:
1. 工程文件
2. 序列发生器
3. 序列检测器
4. Testbench
将序列发生器输出作为序列检测器的输入
仿真图
可以看到序列发生器输出了00100010,序列检测器检测到后,输出了高电平
5. Testbench2
序列检测器输入始终为1
仿真图
输入一直为1,检测不到00100010,check_out没有输出高电平
`timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: // // Create Date: 2019/12/21 15:29:36 // Design Name: // Module Name: sequence_generate // Project Name: // Target Devices: // Tool Versions: // Description: // // Dependencies: // // Revision: // Revision 0.01 - File Created // Additional Comments: // ////////////////////////////////////////////////////////////////////////////////// //学号序列产生模块--2018021407022 //22=00100010 module sequence_generate( input clk, output reg sequence_out ); parameter Student_ID=8'b00100010;//定义学号BCD码值 reg [2:0] count=3'd0; always@(posedge clk) count<=count+3'd1;//count循环累加0~7循环 //输出序列 always@(posedge clk) case(count)//由高位到低位输出 3'd0:sequence_out<=Student_ID[7]; 3'd1:sequence_out<=Student_ID[6]; 3'd2:sequence_out<=Student_ID[5]; 3'd3:sequence_out<=Student_ID[4]; 3'd4:sequence_out<=Student_ID[3]; 3'd5:sequence_out<=Student_ID[2]; 3'd6:sequence_out<=Student_ID[1];
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=880
496