427 lines
16 KiB
Verilog
427 lines
16 KiB
Verilog
`timescale 1ns / 1ns
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
// Company:
|
|
// Engineer:
|
|
//
|
|
// Create Date: 2019/11/18 23:18:07
|
|
// Design Name:
|
|
// Module Name: CN_PRO
|
|
// Project Name:
|
|
// Target Devices:
|
|
// Tool Versions:
|
|
// Description:
|
|
//
|
|
// Dependencies:
|
|
//
|
|
// Revision:
|
|
// Revision 0.01 - File Created
|
|
// Additional Comments:
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
module CN_PRO
|
|
#(
|
|
parameter WIDTH = 4'd8
|
|
)
|
|
(
|
|
input clk,
|
|
input rst_CN,
|
|
input start_CN, //模块启动信号,高脉冲
|
|
|
|
//VN数据输出,H阵第1行
|
|
input [WIDTH-1:0] VN1_dout_01_00,
|
|
input [WIDTH-1:0] VN1_dout_02_00, //后面的00代表H阵原模图的IM
|
|
input [WIDTH-1:0] VN1_dout_02_01, //后面的01代表H阵原模图的II1
|
|
//VN数据输出,H阵第2行
|
|
input [WIDTH-1:0] VN2_dout_01_00,
|
|
input [WIDTH-1:0] VN2_dout_02_00,
|
|
input [WIDTH-1:0] VN2_dout_03_00,
|
|
input [WIDTH-1:0] VN2_dout_04_02, //后面的02代表H阵原模图的II2
|
|
input [WIDTH-1:0] VN2_dout_04_03, //后面的03代表H阵原模图的II3
|
|
input [WIDTH-1:0] VN2_dout_04_04, //后面的04代表H阵原模图的II4
|
|
//VN数据输出,H阵第3行
|
|
input [WIDTH-1:0] VN3_dout_01_00,
|
|
input [WIDTH-1:0] VN3_dout_02_05, //后面的05代表H阵原模图的II5
|
|
input [WIDTH-1:0] VN3_dout_02_06, //后面的06代表H阵原模图的II6
|
|
input [WIDTH-1:0] VN3_dout_03_07, //后面的07代表H阵原模图的II7
|
|
input [WIDTH-1:0] VN3_dout_03_08, //后面的08代表H阵原模图的II8
|
|
input [WIDTH-1:0] VN3_dout_04_00,
|
|
|
|
//VN读地址,H阵第1行
|
|
output reg [8:0] VN1_addr_rd_01_00=9'd511,
|
|
output reg [9:0] VN1_addr_rd_02_00=10'd1023,
|
|
output reg [9:0] VN1_addr_rd_02_01=10'd511,
|
|
//VN读地址,H阵第2行
|
|
output reg [8:0] VN2_addr_rd_01_00=9'd511,
|
|
output reg [8:0] VN2_addr_rd_02_00=9'd511,
|
|
output reg [8:0] VN2_addr_rd_03_00=9'd511,
|
|
output reg [9:0] VN2_addr_rd_04_02=10'd1023,
|
|
output reg [9:0] VN2_addr_rd_04_03=10'd511,
|
|
output reg [8:0] VN2_addr_rd_04_04=9'd511,
|
|
//VN读地址,H阵第3行
|
|
output reg [8:0] VN3_addr_rd_01_00=9'd511,
|
|
output reg [9:0] VN3_addr_rd_02_05=10'd1023,
|
|
output reg [9:0] VN3_addr_rd_02_06=10'd511,
|
|
output reg [9:0] VN3_addr_rd_03_07=10'd1023,
|
|
output reg [9:0] VN3_addr_rd_03_08=10'd511,
|
|
output reg [8:0] VN3_addr_rd_04_00=9'd511,
|
|
|
|
//CN写使能
|
|
output reg [0:0] CN_wea=1'd0,
|
|
|
|
//CN写地址,H阵第1行
|
|
output reg [8:0] CN1_addr_wr_01_00=9'd511,
|
|
output reg [9:0] CN1_addr_wr_02_00=10'd1023,
|
|
output reg [9:0] CN1_addr_wr_02_01=10'd511,
|
|
|
|
//CN写地址,H阵第2行
|
|
output reg [8:0] CN2_addr_wr_01_00=9'd511,
|
|
output reg [8:0] CN2_addr_wr_02_00=9'd511,
|
|
output reg [8:0] CN2_addr_wr_03_00=9'd511,
|
|
output reg [9:0] CN2_addr_wr_04_02=10'd1023,
|
|
output reg [9:0] CN2_addr_wr_04_03=10'd511,
|
|
output reg [8:0] CN2_addr_wr_04_04=9'd511,
|
|
|
|
//CN写地址,H阵第3行
|
|
output reg [8:0] CN3_addr_wr_01_00=9'd511,
|
|
output reg [9:0] CN3_addr_wr_02_05=10'd1023,
|
|
output reg [9:0] CN3_addr_wr_02_06=10'd511,
|
|
output reg [9:0] CN3_addr_wr_03_07=10'd1023,
|
|
output reg [9:0] CN3_addr_wr_03_08=10'd511,
|
|
output reg [8:0] CN3_addr_wr_04_00=9'd511,
|
|
|
|
|
|
//CN写数据,H阵第1行
|
|
output reg [WIDTH-1:0] CN1_din_01_00=8'd0,
|
|
output reg [WIDTH-1:0] CN1_din_02_00=8'd0,
|
|
output reg [WIDTH-1:0] CN1_din_02_01=8'd0,
|
|
|
|
//CN写数据,H阵第2行
|
|
output reg [WIDTH-1:0] CN2_din_01_00=8'd0,
|
|
output reg [WIDTH-1:0] CN2_din_02_00=8'd0,
|
|
output reg [WIDTH-1:0] CN2_din_03_00=8'd0,
|
|
output reg [WIDTH-1:0] CN2_din_04_02=8'd0,
|
|
output reg [WIDTH-1:0] CN2_din_04_03=8'd0,
|
|
output reg [WIDTH-1:0] CN2_din_04_04=8'd0,
|
|
|
|
//CN写数据,H阵第3行
|
|
output reg [WIDTH-1:0] CN3_din_01_00=8'd0,
|
|
output reg [WIDTH-1:0] CN3_din_02_05=8'd0,
|
|
output reg [WIDTH-1:0] CN3_din_02_06=8'd0,
|
|
output reg [WIDTH-1:0] CN3_din_03_07=8'd0,
|
|
output reg [WIDTH-1:0] CN3_din_03_08=8'd0,
|
|
output reg [WIDTH-1:0] CN3_din_04_00=8'd0,
|
|
|
|
output end_CN //模块结束标志,高脉冲
|
|
);
|
|
|
|
reg [10:0] cnt_CN=11'd0;
|
|
reg flag_CN=1'd0;
|
|
// 产生该模块的计数基准
|
|
always @ (posedge clk) begin
|
|
if(rst_CN) begin
|
|
cnt_CN <= 11'd0;
|
|
flag_CN <= 1'b0;
|
|
end else begin
|
|
if(start_CN) begin
|
|
flag_CN <= 1'b1;
|
|
cnt_CN <= 11'd0;
|
|
end else begin
|
|
if(flag_CN) begin
|
|
if(cnt_CN<11'd560)begin
|
|
flag_CN <= flag_CN;
|
|
cnt_CN <= cnt_CN + 11'd1;
|
|
end else begin
|
|
cnt_CN <= cnt_CN;
|
|
flag_CN<= 1'b0;
|
|
end
|
|
end else begin
|
|
cnt_CN <= cnt_CN;
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
// 对VN地址操作
|
|
always @ (posedge clk) begin
|
|
if (rst_CN) begin
|
|
VN1_addr_rd_01_00 <= 9'd511;
|
|
VN1_addr_rd_02_00 <= 10'd1023;
|
|
VN2_addr_rd_01_00 <= 9'd511;
|
|
VN2_addr_rd_02_00 <= 9'd511;
|
|
VN2_addr_rd_03_00 <= 9'd511;
|
|
VN3_addr_rd_01_00 <= 9'd511;
|
|
VN3_addr_rd_04_00 <= 9'd511;
|
|
|
|
VN1_addr_rd_02_01 <= 10'd511;
|
|
VN2_addr_rd_04_02 <= 10'd1023;
|
|
VN2_addr_rd_04_03 <= 10'd511;
|
|
VN2_addr_rd_04_04 <= 9'd511;
|
|
VN3_addr_rd_02_05 <= 10'd1023;
|
|
VN3_addr_rd_02_06 <= 10'd511;
|
|
VN3_addr_rd_03_07 <= 10'd1023;
|
|
VN3_addr_rd_03_08 <= 10'd511;
|
|
|
|
end else begin
|
|
if (cnt_CN >= 11'd1 && cnt_CN <= 11'd512) begin
|
|
VN1_addr_rd_01_00 <= VN1_addr_rd_01_00 + 9'd1;
|
|
VN1_addr_rd_02_00 <= VN1_addr_rd_02_00 + 9'd1;
|
|
VN2_addr_rd_01_00 <= VN2_addr_rd_01_00 + 9'd1;
|
|
VN2_addr_rd_02_00 <= VN2_addr_rd_02_00 + 9'd1;
|
|
VN2_addr_rd_03_00 <= VN2_addr_rd_03_00 + 9'd1;
|
|
VN3_addr_rd_01_00 <= VN3_addr_rd_01_00 + 9'd1;
|
|
VN3_addr_rd_04_00 <= VN3_addr_rd_04_00 + 9'd1;
|
|
VN1_addr_rd_02_01 <= VN1_addr_rd_02_01 + 10'd1;
|
|
VN2_addr_rd_04_02 <= VN2_addr_rd_04_02 + 10'd1;
|
|
VN2_addr_rd_04_03 <= VN2_addr_rd_04_03 + 10'd1;
|
|
VN2_addr_rd_04_04 <= VN2_addr_rd_04_04 + 9'd1;
|
|
VN3_addr_rd_02_05 <= VN3_addr_rd_02_05 + 10'd1;
|
|
VN3_addr_rd_02_06 <= VN3_addr_rd_02_06 + 10'd1;
|
|
VN3_addr_rd_03_07 <= VN3_addr_rd_03_07 + 10'd1;
|
|
VN3_addr_rd_03_08 <= VN3_addr_rd_03_08 + 10'd1;
|
|
end else begin
|
|
VN1_addr_rd_01_00 <= 9'd511;
|
|
VN1_addr_rd_02_00 <= 10'd1023;
|
|
VN2_addr_rd_01_00 <= 9'd511;
|
|
VN2_addr_rd_02_00 <= 9'd511;
|
|
VN2_addr_rd_03_00 <= 9'd511;
|
|
VN3_addr_rd_01_00 <= 9'd511;
|
|
VN3_addr_rd_04_00 <= 9'd511;
|
|
VN1_addr_rd_02_01 <= 10'd511;
|
|
VN2_addr_rd_04_02 <= 10'd1023;
|
|
VN2_addr_rd_04_03 <= 10'd511;
|
|
VN2_addr_rd_04_04 <= 9'd511;
|
|
VN3_addr_rd_02_05 <= 10'd1023;
|
|
VN3_addr_rd_02_06 <= 10'd511;
|
|
VN3_addr_rd_03_07 <= 10'd1023;
|
|
VN3_addr_rd_03_08 <= 10'd511;
|
|
end
|
|
end
|
|
end
|
|
|
|
wire [WIDTH-1:0] din01_VN_RU01;
|
|
wire [WIDTH-1:0] din02_VN_RU01;
|
|
wire [WIDTH-1:0] din03_VN_RU01;
|
|
wire [WIDTH-1:0] dout01_RU01 ;
|
|
wire [WIDTH-1:0] dout02_RU01 ;
|
|
wire [WIDTH-1:0] dout03_RU01 ;
|
|
wire [WIDTH-1:0] din01_VN_RU02;
|
|
wire [WIDTH-1:0] din02_VN_RU02;
|
|
wire [WIDTH-1:0] din03_VN_RU02;
|
|
wire [WIDTH-1:0] din04_VN_RU02;
|
|
wire [WIDTH-1:0] din05_VN_RU02;
|
|
wire [WIDTH-1:0] din06_VN_RU02;
|
|
wire [WIDTH-1:0] dout01_RU02 ;
|
|
wire [WIDTH-1:0] dout02_RU02 ;
|
|
wire [WIDTH-1:0] dout03_RU02 ;
|
|
wire [WIDTH-1:0] dout04_RU02 ;
|
|
wire [WIDTH-1:0] dout05_RU02 ;
|
|
wire [WIDTH-1:0] dout06_RU02 ;
|
|
wire [WIDTH-1:0] din01_VN_RU03;
|
|
wire [WIDTH-1:0] din02_VN_RU03;
|
|
wire [WIDTH-1:0] din03_VN_RU03;
|
|
wire [WIDTH-1:0] din04_VN_RU03;
|
|
wire [WIDTH-1:0] din05_VN_RU03;
|
|
wire [WIDTH-1:0] din06_VN_RU03;
|
|
wire [WIDTH-1:0] dout01_RU03 ;
|
|
wire [WIDTH-1:0] dout02_RU03 ;
|
|
wire [WIDTH-1:0] dout03_RU03 ;
|
|
wire [WIDTH-1:0] dout04_RU03 ;
|
|
wire [WIDTH-1:0] dout05_RU03 ;
|
|
wire [WIDTH-1:0] dout06_RU03 ;
|
|
|
|
|
|
|
|
CNU_3din #(.WIDTH(WIDTH)) RU_01 (
|
|
.clk(clk),
|
|
.din01_VN_RU(din01_VN_RU01),
|
|
.din02_VN_RU(din02_VN_RU01),
|
|
.din03_VN_RU(din03_VN_RU01),
|
|
.dout01_RU(dout01_RU01),
|
|
.dout02_RU(dout02_RU01),
|
|
.dout03_RU(dout03_RU01)
|
|
);
|
|
|
|
CNU_6din #(.WIDTH(WIDTH)) RU_02 (
|
|
.clk(clk),
|
|
.din01_VN_RU(din01_VN_RU02),
|
|
.din02_VN_RU(din02_VN_RU02),
|
|
.din03_VN_RU(din03_VN_RU02),
|
|
.din04_VN_RU(din04_VN_RU02),
|
|
.din05_VN_RU(din05_VN_RU02),
|
|
.din06_VN_RU(din06_VN_RU02),
|
|
.dout01_RU(dout01_RU02),
|
|
.dout02_RU(dout02_RU02),
|
|
.dout03_RU(dout03_RU02),
|
|
.dout04_RU(dout04_RU02),
|
|
.dout05_RU(dout05_RU02),
|
|
.dout06_RU(dout06_RU02)
|
|
);
|
|
|
|
CNU_6din #(.WIDTH(WIDTH)) RU_03 (
|
|
.clk(clk),
|
|
.din01_VN_RU(din01_VN_RU03),
|
|
.din02_VN_RU(din02_VN_RU03),
|
|
.din03_VN_RU(din03_VN_RU03),
|
|
.din04_VN_RU(din04_VN_RU03),
|
|
.din05_VN_RU(din05_VN_RU03),
|
|
.din06_VN_RU(din06_VN_RU03),
|
|
.dout01_RU(dout01_RU03),
|
|
.dout02_RU(dout02_RU03),
|
|
.dout03_RU(dout03_RU03),
|
|
.dout04_RU(dout04_RU03),
|
|
.dout05_RU(dout05_RU03),
|
|
.dout06_RU(dout06_RU03)
|
|
);
|
|
// 设置读操作的时延
|
|
parameter DELAY_RD = 11'd6;
|
|
// RU模块的输入
|
|
assign din01_VN_RU01 = (cnt_CN >= 11'd1+DELAY_RD && cnt_CN<=11'd512+DELAY_RD) ? VN1_dout_01_00 : 8'd0;
|
|
assign din02_VN_RU01 = (cnt_CN >= 11'd1+DELAY_RD && cnt_CN<=11'd512+DELAY_RD) ? VN1_dout_02_00 : 8'd0;
|
|
assign din03_VN_RU01 = (cnt_CN >= 11'd1+DELAY_RD && cnt_CN<=11'd512+DELAY_RD) ? VN1_dout_02_01 : 8'd0;
|
|
assign din01_VN_RU02 = (cnt_CN >= 11'd1+DELAY_RD && cnt_CN<=11'd512+DELAY_RD) ? VN2_dout_01_00 : 8'd0;
|
|
assign din02_VN_RU02 = (cnt_CN >= 11'd1+DELAY_RD && cnt_CN<=11'd512+DELAY_RD) ? VN2_dout_02_00 : 8'd0;
|
|
assign din03_VN_RU02 = (cnt_CN >= 11'd1+DELAY_RD && cnt_CN<=11'd512+DELAY_RD) ? VN2_dout_03_00 : 8'd0;
|
|
assign din04_VN_RU02 = (cnt_CN >= 11'd1+DELAY_RD && cnt_CN<=11'd512+DELAY_RD) ? VN2_dout_04_02 : 8'd0;
|
|
assign din05_VN_RU02 = (cnt_CN >= 11'd1+DELAY_RD && cnt_CN<=11'd512+DELAY_RD) ? VN2_dout_04_03 : 8'd0;
|
|
assign din06_VN_RU02 = (cnt_CN >= 11'd1+DELAY_RD && cnt_CN<=11'd512+DELAY_RD) ? VN2_dout_04_04 : 8'd0;
|
|
assign din01_VN_RU03 = (cnt_CN >= 11'd1+DELAY_RD && cnt_CN<=11'd512+DELAY_RD) ? VN3_dout_01_00 : 8'd0;
|
|
assign din02_VN_RU03 = (cnt_CN >= 11'd1+DELAY_RD && cnt_CN<=11'd512+DELAY_RD) ? VN3_dout_02_05 : 8'd0;
|
|
assign din03_VN_RU03 = (cnt_CN >= 11'd1+DELAY_RD && cnt_CN<=11'd512+DELAY_RD) ? VN3_dout_02_06 : 8'd0;
|
|
assign din04_VN_RU03 = (cnt_CN >= 11'd1+DELAY_RD && cnt_CN<=11'd512+DELAY_RD) ? VN3_dout_03_07 : 8'd0;
|
|
assign din05_VN_RU03 = (cnt_CN >= 11'd1+DELAY_RD && cnt_CN<=11'd512+DELAY_RD) ? VN3_dout_03_08 : 8'd0;
|
|
assign din06_VN_RU03 = (cnt_CN >= 11'd1+DELAY_RD && cnt_CN<=11'd512+DELAY_RD) ? VN3_dout_04_00 : 8'd0;
|
|
|
|
// 设置写操作的时延
|
|
parameter DELAY_WR = 11'd15;
|
|
|
|
// 控制CN的写使能
|
|
always @ (posedge clk) begin
|
|
if(rst_CN) begin
|
|
CN_wea <= 1'd0;
|
|
end else begin
|
|
if (cnt_CN >= 11'd1 + DELAY_WR && cnt_CN <= 11'd512 + DELAY_WR)
|
|
CN_wea <= 1'd1;
|
|
else
|
|
CN_wea <= 1'd0;
|
|
end
|
|
end
|
|
|
|
// 控制CN存储的写地址
|
|
always @ (posedge clk) begin
|
|
if (rst_CN) begin
|
|
CN1_addr_wr_01_00 <= 9'd511;
|
|
CN1_addr_wr_02_00 <= 10'd1023;
|
|
CN2_addr_wr_01_00 <= 9'd511;
|
|
CN2_addr_wr_02_00 <= 9'd511;
|
|
CN2_addr_wr_03_00 <= 9'd511;
|
|
CN3_addr_wr_01_00 <= 9'd511;
|
|
CN3_addr_wr_04_00 <= 9'd511;
|
|
|
|
CN1_addr_wr_02_01 <= 10'd511;
|
|
CN2_addr_wr_04_02 <= 10'd1023;
|
|
CN2_addr_wr_04_03 <= 10'd511;
|
|
CN2_addr_wr_04_04 <= 9'd511;
|
|
CN3_addr_wr_02_05 <= 10'd1023;
|
|
CN3_addr_wr_02_06 <= 10'd511;
|
|
CN3_addr_wr_03_07 <= 10'd1023;
|
|
CN3_addr_wr_03_08 <= 10'd511;
|
|
|
|
end else begin
|
|
if (cnt_CN >= 11'd1 + DELAY_WR && cnt_CN <= 11'd512 + DELAY_WR) begin
|
|
CN1_addr_wr_01_00 <= CN1_addr_wr_01_00 + 9'd1;
|
|
CN1_addr_wr_02_00 <= CN1_addr_wr_02_00 + 9'd1;
|
|
CN2_addr_wr_01_00 <= CN2_addr_wr_01_00 + 9'd1;
|
|
CN2_addr_wr_02_00 <= CN2_addr_wr_02_00 + 9'd1;
|
|
CN2_addr_wr_03_00 <= CN2_addr_wr_03_00 + 9'd1;
|
|
CN3_addr_wr_01_00 <= CN3_addr_wr_01_00 + 9'd1;
|
|
CN3_addr_wr_04_00 <= CN3_addr_wr_04_00 + 9'd1;
|
|
CN1_addr_wr_02_01 <= CN1_addr_wr_02_01 + 10'd1;
|
|
CN2_addr_wr_04_02 <= CN2_addr_wr_04_02 + 10'd1;
|
|
CN2_addr_wr_04_03 <= CN2_addr_wr_04_03 + 10'd1;
|
|
CN2_addr_wr_04_04 <= CN2_addr_wr_04_04 + 9'd1;
|
|
CN3_addr_wr_02_05 <= CN3_addr_wr_02_05 + 10'd1;
|
|
CN3_addr_wr_02_06 <= CN3_addr_wr_02_06 + 10'd1;
|
|
CN3_addr_wr_03_07 <= CN3_addr_wr_03_07 + 10'd1;
|
|
CN3_addr_wr_03_08 <= CN3_addr_wr_03_08 + 10'd1;
|
|
end else begin
|
|
CN1_addr_wr_01_00 <= 9'd511;
|
|
CN1_addr_wr_02_00 <= 10'd1023;
|
|
CN2_addr_wr_01_00 <= 9'd511;
|
|
CN2_addr_wr_02_00 <= 9'd511;
|
|
CN2_addr_wr_03_00 <= 9'd511;
|
|
CN3_addr_wr_01_00 <= 9'd511;
|
|
CN3_addr_wr_04_00 <= 9'd511;
|
|
CN1_addr_wr_02_01 <= 10'd511;
|
|
CN2_addr_wr_04_02 <= 10'd1023;
|
|
CN2_addr_wr_04_03 <= 10'd511;
|
|
CN2_addr_wr_04_04 <= 9'd511;
|
|
CN3_addr_wr_02_05 <= 10'd1023;
|
|
CN3_addr_wr_02_06 <= 10'd511;
|
|
CN3_addr_wr_03_07 <= 10'd1023;
|
|
CN3_addr_wr_03_08 <= 10'd511;
|
|
end
|
|
end
|
|
end
|
|
|
|
// 控制CN的写数据
|
|
always @ (posedge clk) begin
|
|
if (rst_CN) begin
|
|
CN1_din_01_00 <= 8'd0;
|
|
CN1_din_02_00 <= 8'd0;
|
|
CN2_din_01_00 <= 8'd0;
|
|
CN2_din_02_00 <= 8'd0;
|
|
CN2_din_03_00 <= 8'd0;
|
|
CN3_din_01_00 <= 8'd0;
|
|
CN3_din_04_00 <= 8'd0;
|
|
CN1_din_02_01 <= 8'd0;
|
|
CN2_din_04_02 <= 8'd0;
|
|
CN2_din_04_03 <= 8'd0;
|
|
CN2_din_04_04 <= 8'd0;
|
|
CN3_din_02_05 <= 8'd0;
|
|
CN3_din_02_06 <= 8'd0;
|
|
CN3_din_03_07 <= 8'd0;
|
|
CN3_din_03_08 <= 8'd0;
|
|
end else begin
|
|
if (cnt_CN >= 11'd1 + DELAY_WR && cnt_CN <= 11'd512 + DELAY_WR) begin
|
|
CN1_din_01_00 <= dout01_RU01;
|
|
CN1_din_02_00 <= dout02_RU01;
|
|
CN2_din_01_00 <= dout01_RU02;
|
|
CN2_din_02_00 <= dout02_RU02;
|
|
CN2_din_03_00 <= dout03_RU02;
|
|
CN3_din_01_00 <= dout01_RU03;
|
|
CN3_din_04_00 <= dout06_RU03;
|
|
CN1_din_02_01 <= dout03_RU01;
|
|
CN2_din_04_02 <= dout04_RU02;
|
|
CN2_din_04_03 <= dout05_RU02;
|
|
CN2_din_04_04 <= dout06_RU02;
|
|
CN3_din_02_05 <= dout02_RU03;
|
|
CN3_din_02_06 <= dout03_RU03;
|
|
CN3_din_03_07 <= dout04_RU03;
|
|
CN3_din_03_08 <= dout05_RU03;
|
|
end else begin
|
|
CN1_din_01_00 <= 8'd0;
|
|
CN1_din_02_00 <= 8'd0;
|
|
CN2_din_01_00 <= 8'd0;
|
|
CN2_din_02_00 <= 8'd0;
|
|
CN2_din_03_00 <= 8'd0;
|
|
CN3_din_01_00 <= 8'd0;
|
|
CN3_din_04_00 <= 8'd0;
|
|
CN1_din_02_01 <= 8'd0;
|
|
CN2_din_04_02 <= 8'd0;
|
|
CN2_din_04_03 <= 8'd0;
|
|
CN2_din_04_04 <= 8'd0;
|
|
CN3_din_02_05 <= 8'd0;
|
|
CN3_din_02_06 <= 8'd0;
|
|
CN3_din_03_07 <= 8'd0;
|
|
CN3_din_03_08 <= 8'd0;
|
|
end
|
|
end
|
|
end
|
|
|
|
//状态指示
|
|
assign end_CN = (cnt_CN == 11'd512 + DELAY_WR + 11'd2) ? 1'd1 : 1'd0;
|
|
endmodule
|
|
|