链接:https://pan.baidu.com/s/15r4xA4aXTU9agQGDHT43xg
提取码:1234
//synopsys translate_off
`timescale 10 ns/ 1 ps
//synopsys translate_on
module xulie_top_vlg_tst();
// constants
// general purpose registers
// test vector input registers
reg clk;
reg reset_n;
reg [7:0] xulie_data;
// wires
wire [3:0] AB;
wire [7:0] duan;
wire [3:0] wei;
// assign statements (if any)
例化顶层模块
xulie_top i1 (
// port map - connection between master ports and signals/registers
.clk (clk),
.reset_n (reset_n),
.AB (AB),
.wei (wei),
.duan (duan),
.xulie_data (xulie_data)
);
initial
begin
// code that executes only once
// insert code here --> begin
//初始化设置信号
clk <= 1'b0;
reset_n <= 1'b0;
xulie_data <= 8'b11100101;//设置要检测出的序列值
// --> end
$display("Running testbench");
end
always
// optional sensitivity list
// @(event1 or event2 or .... eventn)
begin
// code executes for every event on sensitivity list
// insert code here --> begin
#1 clk <= ~clk;//50M时钟信号
reset_n <= 1'b1;
// --> end
end
endmodule
/*----------------------------文件信息--------------------------
** 文件名称: xulie_top.v
** 创建日期:
** 功能描述:
**---------------------------修改文件的相关信息----------------
** 修改人:
** 修改日期:
** 修改内容:
*******************************************************************************/
//synopsys translate_off
`timescale 10 ns/ 1 ps
//synopsys translate_on
module xulie_top(
clk,
reset_n,
duan,
wei,
// CLR,
xulie_data,
AB
);
input clk; // 系统时钟 50MHz
input reset_n; // 复位信号 低电平有效
// input CLR; //
input [7:0] xulie_data;// // 数码管段选
output [3:0] AB; // // 数码管段选
output [7:0] duan; // // 数码管段选
output [2:0] wei; //
wire[3:0] counter1;//
wire[3:0] counter2;//
wire[3:0] counter3;//
wire Din;
//序列发生器模块--用于测试
m_seq m_seq_1(
.clk (clk),
.reset_n (reset_n),
.m_se (Din)
);
//序列检测模块
xulie xulie_1(
.clk (clk),
.reset_n (reset_n),
.Din (Din),
// .CLR (CLR),
.xulie_data (xulie_data),
.counter1 (counter1),
.counter2 (counter2),
.counter3 (counter3),
.AB (AB)
);
//序列检测结果显示模块
seg seg_1(
.clk (clk),
.reset_n (reset_n),
.duan (duan),
.wei (wei),
.counter1 (counter1),
.counter2 (counter2),
.counter3 (counter3)
);
endmodule
/*----------------------------文件信息--------------------------
** 文件名称: m_seq.v
** 创建日期:
** 功能描述:
**---------------------------修改文件的相关信息----------------
** 修改人:
** 修改日期:
** 修改内容:
*******************************************************************************/
//synopsys translate_off
`timescale 10 ns/ 1 ps
//synopsys translate_on
module m_seq(
clk,
reset_n,
m_se
);
input clk;// 系统时钟 50MHz
input reset_n;// 复位信号 低电平有效
output m_se;//M序列生成输出
//------------------------------------------------------------------
//------------------------------------------------------------------
reg m_se;
reg[7:0] temp;
always @(posedge clk or negedge reset_n)
begin
if(reset_n == 1'b0)
begin
temp <= 8'b11100101;
end
else
begin
m_se <= temp[7];
temp[7] <= temp[6];
temp[6] <= temp[5];
temp[5] <= temp[4];
temp[4] <= temp[3];
temp[3] <= temp[2];
temp[2] <= temp[1];
temp[1] <= temp[7];
end
end
endmodule
.