📄 m_bus.v
字号:
//ge3_da_mac
ge3_da_mac_0[15:0]<=16'b0000_0000_0000_00000;
ge3_da_mac_1[15:0]<=16'b0000_0000_0000_00000;
ge3_da_mac_2[15:0]<=16'b0000_0000_0000_00000;
//ge3_sa_mac
ge3_sa_mac_0[15:0]<=16'b0000_0000_0000_00000;
ge3_sa_mac_1[15:0]<=16'b0000_0000_0000_00000;
ge3_sa_mac_2[15:0]<=16'b0000_0000_0000_00000;
end
else if(~fpga_csb && ~pmc_wrb)
begin
case(pmc_addr[12:0])
13'd0:reset_sel[15:0] <=data_in_from_mpc_d[15:0];
13'd1:header_len_sel[15:0]<=data_in_from_mpc_d[15:0];
13'd2:crc_len_sel[15:0] <=data_in_from_mpc_d[15:0];
//ge0_da_mac
13'd3:ge0_da_mac_0[15:0] <=data_in_from_mpc_d[15:0];
13'd4:ge0_da_mac_1[15:0] <=data_in_from_mpc_d[15:0];
13'd5:ge0_da_mac_2[15:0] <=data_in_from_mpc_d[15:0];
//ge0_sa_mac
13'd6:ge0_sa_mac_0[15:0] <=data_in_from_mpc_d[15:0];
13'd7:ge0_sa_mac_1[15:0] <=data_in_from_mpc_d[15:0];
13'd8:ge0_sa_mac_2[15:0] <=data_in_from_mpc_d[15:0];
//ge1_da_mac
13'd9: ge1_da_mac_0[15:0]<=data_in_from_mpc_d[15:0];
13'd10:ge1_da_mac_1[15:0]<=data_in_from_mpc_d[15:0];
13'd11:ge1_da_mac_2[15:0]<=data_in_from_mpc_d[15:0];
//ge1_sa_mac
13'd12:ge1_sa_mac_0[15:0]<=data_in_from_mpc_d[15:0];
13'd13:ge1_sa_mac_1[15:0]<=data_in_from_mpc_d[15:0];
13'd14:ge1_sa_mac_2[15:0]<=data_in_from_mpc_d[15:0];
//ge2_da_mac
13'd15:ge2_da_mac_0[15:0]<=data_in_from_mpc_d[15:0];
13'd16:ge2_da_mac_1[15:0]<=data_in_from_mpc_d[15:0];
13'd17:ge2_da_mac_2[15:0]<=data_in_from_mpc_d[15:0];
//ge2_sa_mac
13'd18:ge2_sa_mac_0[15:0]<=data_in_from_mpc_d[15:0];
13'd19:ge2_sa_mac_1[15:0]<=data_in_from_mpc_d[15:0];
13'd20:ge2_sa_mac_2[15:0]<=data_in_from_mpc_d[15:0];
//ge3_da_mac
13'd21:ge3_da_mac_0[15:0]<=data_in_from_mpc_d[15:0];
13'd22:ge3_da_mac_1[15:0]<=data_in_from_mpc_d[15:0];
13'd23:ge3_da_mac_2[15:0]<=data_in_from_mpc_d[15:0];
//ge3_sa_mac
13'd24:ge3_sa_mac_0[15:0]<=data_in_from_mpc_d[15:0];
13'd25:ge3_sa_mac_1[15:0]<=data_in_from_mpc_d[15:0];
13'd26:ge3_sa_mac_2[15:0]<=data_in_from_mpc_d[15:0];
default:;
endcase
end
else if(reset_time_cnt[7:0]>=8'd255)
begin
reset_sel[15:0] <=16'b0;
header_len_sel[15:0]<=header_len_sel[15:0];
crc_len_sel[15:0] <=crc_len_sel[15:0];
//ge0_da_mac
ge0_da_mac_0[15:0] <=ge0_da_mac_0[15:0];
ge0_da_mac_1[15:0] <=ge0_da_mac_1[15:0];
ge0_da_mac_2[15:0] <=ge0_da_mac_2[15:0];
//ge0_sa_mac
ge0_sa_mac_0[15:0] <=ge0_sa_mac_0[15:0];
ge0_sa_mac_1[15:0] <=ge0_sa_mac_1[15:0];
ge0_sa_mac_2[15:0] <=ge0_sa_mac_2[15:0];
//ge1_da_mac
ge1_da_mac_0[15:0] <=ge1_da_mac_0[15:0];
ge1_da_mac_1[15:0] <=ge1_da_mac_1[15:0];
ge1_da_mac_2[15:0] <=ge1_da_mac_2[15:0];
//ge1_sa_mac
ge1_sa_mac_0[15:0] <=ge1_sa_mac_0[15:0];
ge1_sa_mac_1[15:0] <=ge1_sa_mac_1[15:0];
ge1_sa_mac_2[15:0] <=ge1_sa_mac_2[15:0];
//ge2_da_mac
ge2_da_mac_0[15:0] <=ge2_da_mac_0[15:0];
ge2_da_mac_1[15:0] <=ge2_da_mac_1[15:0];
ge2_da_mac_2[15:0] <=ge2_da_mac_2[15:0];
//ge2_sa_mac
ge2_sa_mac_0[15:0] <=ge2_sa_mac_0[15:0];
ge2_sa_mac_1[15:0] <=ge2_sa_mac_1[15:0];
ge2_sa_mac_2[15:0] <=ge2_sa_mac_2[15:0];
//ge3_da_mac
ge3_da_mac_0[15:0] <=ge3_da_mac_0[15:0];
ge3_da_mac_1[15:0] <=ge3_da_mac_1[15:0];
ge3_da_mac_2[15:0] <=ge3_da_mac_2[15:0];
//ge3_sa_mac
ge3_sa_mac_0[15:0] <=ge3_sa_mac_0[15:0];
ge3_sa_mac_1[15:0] <=ge3_sa_mac_1[15:0];
ge3_sa_mac_2[15:0] <=ge3_sa_mac_2[15:0];
end
else
begin
reset_sel[15:0] <=reset_sel[15:0];
header_len_sel[15:0]<=header_len_sel[15:0];
crc_len_sel[15:0] <=crc_len_sel[15:0];
//ge0_da_mac
ge0_da_mac_0[15:0] <=ge0_da_mac_0[15:0];
ge0_da_mac_1[15:0] <=ge0_da_mac_1[15:0];
ge0_da_mac_2[15:0] <=ge0_da_mac_2[15:0];
//ge0_sa_mac
ge0_sa_mac_0[15:0] <=ge0_sa_mac_0[15:0];
ge0_sa_mac_1[15:0] <=ge0_sa_mac_1[15:0];
ge0_sa_mac_2[15:0] <=ge0_sa_mac_2[15:0];
//ge1_da_mac
ge1_da_mac_0[15:0] <=ge1_da_mac_0[15:0];
ge1_da_mac_1[15:0] <=ge1_da_mac_1[15:0];
ge1_da_mac_2[15:0] <=ge1_da_mac_2[15:0];
//ge1_sa_mac
ge1_sa_mac_0[15:0] <=ge1_sa_mac_0[15:0];
ge1_sa_mac_1[15:0] <=ge1_sa_mac_1[15:0];
ge1_sa_mac_2[15:0] <=ge1_sa_mac_2[15:0];
//ge2_da_mac
ge2_da_mac_0[15:0] <=ge2_da_mac_0[15:0];
ge2_da_mac_1[15:0] <=ge2_da_mac_1[15:0];
ge2_da_mac_2[15:0] <=ge2_da_mac_2[15:0];
//ge2_sa_mac
ge2_sa_mac_0[15:0] <=ge2_sa_mac_0[15:0];
ge2_sa_mac_1[15:0] <=ge2_sa_mac_1[15:0];
ge2_sa_mac_2[15:0] <=ge2_sa_mac_2[15:0];
//ge3_da_mac
ge3_da_mac_0[15:0] <=ge3_da_mac_0[15:0];
ge3_da_mac_1[15:0] <=ge3_da_mac_1[15:0];
ge3_da_mac_2[15:0] <=ge3_da_mac_2[15:0];
//ge3_sa_mac
ge3_sa_mac_0[15:0] <=ge3_sa_mac_0[15:0];
ge3_sa_mac_1[15:0] <=ge3_sa_mac_1[15:0];
ge3_sa_mac_2[15:0] <=ge3_sa_mac_2[15:0];
end
end
//mpc_csb_d
always @(posedge sys_clk_100m or negedge h_reset_n or negedge s_reset_n)
begin
if(~h_reset_n)
begin
pmc_rdb_d <=1'b1;
pmc_wrb_d <=1'b1;
end
else if(~s_reset_n)
begin
pmc_rdb_d <=1'b1;
pmc_wrb_d <=1'b1;
end
else
begin
pmc_rdb_d <=pmc_rdb;
pmc_wrb_d <=pmc_wrb;
end
end
//mpc_data
assign mpc_data[15:0] = (~pmc_rdb_d) ? data_out_to_mpc[15:0] : 16'bzzzz_zzzz_zzzz_zzzz;
//data_in_from_mpc
assign data_in_from_mpc[15:0] = mpc_data[15:0];
//data_out_to_mpc
assign data_out_to_mpc[15:0]=(~fpga_csb_d)?rd_fpga_data_tmp[15:0]:data_in_from_pmc[15:0];
//pmc_data
assign pmc_data[15:0] = (~pmc_wrb || ~pmc_wrb_d) ? data_out_to_pmc[15:0] : 16'bzzzz_zzzz_zzzz_zzzz;
//data_in_from_pmc
assign data_in_from_pmc[15:0] = pmc_data[15:0];
//data_out_to_pmc
always @(posedge sys_clk_100m or negedge h_reset_n or negedge s_reset_n)
begin
if(~h_reset_n)
begin
data_out_to_pmc[15:0]<=16'b0;
end
else if(~s_reset_n)
begin
data_out_to_pmc[15:0]<=16'b0;
end
else
begin
data_out_to_pmc[15:0]<=data_in_from_mpc[15:0];
end
end
//data_in_from_mpc_d
always @(posedge sys_clk_100m or negedge h_reset_n or negedge s_reset_n)
begin
if(~h_reset_n)
begin
data_in_from_mpc_d[15:0]<=16'b0;
end
else if(~s_reset_n)
begin
data_in_from_mpc_d[15:0]<=16'b0;
end
else
begin
data_in_from_mpc_d[15:0]<=data_in_from_mpc[15:0];
end
end
//pmc_ale
always @(posedge sys_clk_100m or negedge h_reset_n or negedge s_reset_n)
begin
if(~h_reset_n)
begin
pmc_ale<=1'b1;
end
else if(~s_reset_n)
begin
pmc_ale<=1'b1;
end
else
begin
pmc_ale<=1'b1;
end
end
//header_length
always @(posedge sys_clk_100m or negedge h_reset_n or negedge s_reset_n)
begin
if(~h_reset_n)
begin
header_length<=1'b0;
end
else if(~s_reset_n)
begin
header_length<=1'b0;
end
else
begin
header_length<=header_len_sel[0];
end
end
//crc_length
always @(posedge sys_clk_100m or negedge h_reset_n or negedge s_reset_n)
begin
if(~h_reset_n)
begin
crc_length<=1'b1;
end
else if(~s_reset_n)
begin
crc_length<=1'b1;
end
else
begin
crc_length<=crc_len_sel[0];
end
end
//ge0_da_mac,ge0_sa_mac
//ge1_da_mac,ge1_sa_mac
//ge2_da_mac,ge2_sa_mac
//ge3_da_mac,ge3_sa_mac
always @(posedge sys_clk_100m or negedge h_reset_n or negedge s_reset_n)
begin
if(~h_reset_n)
begin
ge0_da_mac[47:0]<=48'b0;
ge0_sa_mac[47:0]<=48'b0;
ge1_da_mac[47:0]<=48'b0;
ge1_sa_mac[47:0]<=48'b0;
ge2_da_mac[47:0]<=48'b0;
ge2_sa_mac[47:0]<=48'b0;
ge3_da_mac[47:0]<=48'b0;
ge3_sa_mac[47:0]<=48'b0;
end
else if(~s_reset_n)
begin
ge0_da_mac[47:0]<=48'b0;
ge0_sa_mac[47:0]<=48'b0;
ge1_da_mac[47:0]<=48'b0;
ge1_sa_mac[47:0]<=48'b0;
ge2_da_mac[47:0]<=48'b0;
ge2_sa_mac[47:0]<=48'b0;
ge3_da_mac[47:0]<=48'b0;
ge3_sa_mac[47:0]<=48'b0;
end
else
begin
ge0_da_mac[47:0]<={ge0_da_mac_2[15:0],ge0_da_mac_1[15:0],ge0_da_mac_0[15:0]};
ge0_sa_mac[47:0]<={ge0_sa_mac_2[15:0],ge0_sa_mac_1[15:0],ge0_sa_mac_0[15:0]};
ge1_da_mac[47:0]<={ge1_da_mac_2[15:0],ge1_da_mac_1[15:0],ge1_da_mac_0[15:0]};
ge1_sa_mac[47:0]<={ge1_sa_mac_2[15:0],ge1_sa_mac_1[15:0],ge1_sa_mac_0[15:0]};
ge2_da_mac[47:0]<={ge2_da_mac_2[15:0],ge2_da_mac_1[15:0],ge2_da_mac_0[15:0]};
ge2_sa_mac[47:0]<={ge2_sa_mac_2[15:0],ge2_sa_mac_1[15:0],ge2_sa_mac_0[15:0]};
ge3_da_mac[47:0]<={ge3_da_mac_2[15:0],ge3_da_mac_1[15:0],ge3_da_mac_0[15:0]};
ge3_sa_mac[47:0]<={ge3_sa_mac_2[15:0],ge3_sa_mac_1[15:0],ge3_sa_mac_0[15:0]};
end
end
//lose_pkt_cnt
always @(posedge sys_clk_100m or negedge h_reset_n or negedge s_reset_n)
begin
if(~h_reset_n)
begin
lose_pkt_cnt_ch0[15:0] <=16'b0;
lose_pkt_cnt_ch1[15:0] <=16'b0;
lose_pkt_cnt_ch2[15:0] <=16'b0;
lose_pkt_cnt_ch3[15:0] <=16'b0;
lose_pkt_cnt_ch4[15:0] <=16'b0;
lose_pkt_cnt_ch5[15:0] <=16'b0;
lose_pkt_cnt_ch6[15:0] <=16'b0;
lose_pkt_cnt_ch7[15:0] <=16'b0;
lose_pkt_cnt_ch8[15:0] <=16'b0;
lose_pkt_cnt_ch9[15:0] <=16'b0;
lose_pkt_cnt_ch10[15:0]<=16'b0;
lose_pkt_cnt_ch11[15:0]<=16'b0;
lose_pkt_cnt_ch12[15:0]<=16'b0;
lose_pkt_cnt_ch13[15:0]<=16'b0;
lose_pkt_cnt_ch14[15:0]<=16'b0;
lose_pkt_cnt_ch15[15:0]<=16'b0;
end
else if(~s_reset_n)
begin
lose_pkt_cnt_ch0[15:0] <=16'b0;
lose_pkt_cnt_ch1[15:0] <=16'b0;
lose_pkt_cnt_ch2[15:0] <=16'b0;
lose_pkt_cnt_ch3[15:0] <=16'b0;
lose_pkt_cnt_ch4[15:0] <=16'b0;
lose_pkt_cnt_ch5[15:0] <=16'b0;
lose_pkt_cnt_ch6[15:0] <=16'b0;
lose_pkt_cnt_ch7[15:0] <=16'b0;
lose_pkt_cnt_ch8[15:0] <=16'b0;
lose_pkt_cnt_ch9[15:0] <=16'b0;
lose_pkt_cnt_ch10[15:0]<=16'b0;
lose_pkt_cnt_ch11[15:0]<=16'b0;
lose_pkt_cnt_ch12[15:0]<=16'b0;
lose_pkt_cnt_ch13[15:0]<=16'b0;
lose_pkt_cnt_ch14[15:0]<=16'b0;
lose_pkt_cnt_ch15[15:0]<=16'b0;
end
else
begin
lose_pkt_cnt_ch0[15:0] <=lose_pkt_cnt_0[15:0] ;
lose_pkt_cnt_ch1[15:0] <=lose_pkt_cnt_1[15:0] ;
lose_pkt_cnt_ch2[15:0] <=lose_pkt_cnt_2[15:0] ;
lose_pkt_cnt_ch3[15:0] <=lose_pkt_cnt_3[15:0] ;
lose_pkt_cnt_ch4[15:0] <=lose_pkt_cnt_4[15:0] ;
lose_pkt_cnt_ch5[15:0] <=lose_pkt_cnt_5[15:0] ;
lose_pkt_cnt_ch6[15:0] <=lose_pkt_cnt_6[15:0] ;
lose_pkt_cnt_ch7[15:0] <=lose_pkt_cnt_7[15:0] ;
lose_pkt_cnt_ch8[15:0] <=lose_pkt_cnt_8[15:0] ;
lose_pkt_cnt_ch9[15:0] <=lose_pkt_cnt_9[15:0] ;
lose_pkt_cnt_ch10[15:0]<=lose_pkt_cnt_10[15:0];
lose_pkt_cnt_ch11[15:0]<=lose_pkt_cnt_11[15:0];
lose_pkt_cnt_ch12[15:0]<=lose_pkt_cnt_12[15:0];
lose_pkt_cnt_ch13[15:0]<=lose_pkt_cnt_13[15:0];
lose_pkt_cnt_ch14[15:0]<=lose_pkt_cnt_14[15:0];
lose_pkt_cnt_ch15[15:0]<=lose_pkt_cnt_15[15:0];
end
end
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -