⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 transmit.v

📁 具备GMII接口和ARP协议功能的千兆以太网控制器。经过Xilinx SPATAN-III FPGA验证, Verilog描述
💻 V
字号:
module transmit(                
                clk125,
                rst,
		    souadd,
		    mode,
                /******/ 		    
                desadd,
                headadd,                
                length,
                info_wr,
                full,
                /******/
                datain,
                addr,
                ram_wr,                
                /*****/
                crs,
                col,
                txd,
                tx_en,
                tx_er,
                gtx_clk,
                /****/
                tran_ok,
                late_col,
                ex_col                
                );

input clk125;

input rst;
input mode;
input[47:0] souadd ;
/********************/
input[47:0] desadd;
input headadd;
input[15:0] length;
input info_wr;
output full;


input[7:0] datain;
input[10:0] addr;
input ram_wr;
/*********************/
wire[47:0] u_desadd;
wire u_headadd;
wire[15:0] u_length;
wire u_rd;
wire u_empty;

wire[10:0] u_addr;
wire[7:0] u_data;
/*********************/
wire l_headadd_i;
wire[9:0] l_length_i;
wire l_wr;
wire l_full;

wire[10:0] l_addr_i;
wire[7:0] l_data_i;
wire l_ram_wr;
/************************/
wire l_headadd_o;
wire[9:0] l_length_o;
wire l_rd;
wire l_empty;

wire[10:0] l_addr_o;
wire[7:0] l_data_o;
/*******************/
input crs;
input col;
output[7:0] txd;
output tx_en;
output tx_er;
output gtx_clk;

output tran_ok;
output late_col;
output ex_col;
/**********************/
wire gtx_clk;


assign gtx_clk=clk125;
		            
data_fifo uu0 (
    .clka(clk125), 
    .clkb(clk125), 
    .rst(rst), 
    .datain({desadd,headadd,length}), 
    .dataout({u_desadd,u_headadd,u_length}), 
    .full(full), 
    .empty(u_empty), 
    .rd(u_rd), 
    .wr(info_wr)
    );

ram uu1(
	.addra(addr),
	.addrb(u_addr),
	.clka(clk125),
	.clkb(clk125),
	.dina(datain),
	.doutb(u_data),
	.wea(ram_wr)
	);

encapsule uu2 (
    .clk(clk125), 
    .rst(rst), 
    .desadd(u_desadd), 
    .souadd(souadd), 
    .u_length(u_length), 
    .u_headadd(u_headadd), 
    .u_empty(u_empty), 
    .u_rd(u_rd), 
    .u_addr(u_addr), 
    .datain(u_data), 
    .l_headadd(l_headadd_i), 
    .l_length(l_length_i), 
    .l_latch(l_wr), 
    .l_full(l_full), 
    .l_addr(l_addr_i), 
    .l_ena(l_ram_wr), 
    .dataout(l_data_i)   
    );

tx_fifo uu3 (
    .clka(clk125), 
    .clkb(clk125), 
    .rst(rst), 
    .datain({l_headadd_i, l_length_i}), 
    .dataout({l_headadd_o, l_length_o}), 
    .full(l_full), 
    .empty(l_empty), 
    .rd(l_rd), 
    .wr(l_wr)
    );

ram uu4(
	.addra(l_addr_i),
	.addrb(l_addr_o),
	.clka(clk125),
	.clkb(clk125),
	.dina(l_data_i),
	.doutb(l_data_o),
	.wea(l_ram_wr)
	);


send uu5 (
    .clk125(clk125), 
    .rst(rst), 
    .mode(mode), 
    .empty(l_empty), 
    .headadd(l_headadd_o), 
    .length(l_length_o), 
    .rd(l_rd), 
    .datain(l_data_o), 
    .addr(l_addr_o), 
    .txd(txd), 
    .tx_en(tx_en), 
    .tx_er(tx_er),     
    .col(col), 
    .crs(crs), 
    .tran_ok(tran_ok), 
    .late_col(late_col), 
    .ex_col(ex_col)
    );
endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -