From 91636cbac2b3edfba45321f1050d0b90b34ab696 Mon Sep 17 00:00:00 2001 From: Johnathan Corgan Date: Mon, 31 Aug 2009 12:08:30 -0700 Subject: Merged SVN matt/new_eth r10782:11633 into new_eth * svn diff http://gnuradio.org/svn/branches/developers/matt/new_eth -r10782:11633 * Patch applied with no conflicts or fuzz. --- simple_gemac/eth_tasks_f36.v | 89 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 simple_gemac/eth_tasks_f36.v (limited to 'simple_gemac/eth_tasks_f36.v') diff --git a/simple_gemac/eth_tasks_f36.v b/simple_gemac/eth_tasks_f36.v new file mode 100644 index 000000000..b7fa52c07 --- /dev/null +++ b/simple_gemac/eth_tasks_f36.v @@ -0,0 +1,89 @@ + + +task SendFlowCtrl; + input [15:0] fc_len; + begin + $display("Sending Flow Control, quanta = %d, time = %d", fc_len,$time); + pause_time <= fc_len; + @(posedge clk); + pause_req <= 1; + @(posedge clk); + pause_req <= 0; + $display("Sent Flow Control"); + end +endtask // SendFlowCtrl + +task SendPacket_to_fifo36; + input [31:0] data_start; + input [15:0] data_len; + reg [15:0] count; + begin + $display("Sending Packet Len=%d, %d", data_len, $time); + count <= 2; + tx_f36_dat <= {2'b0, 1'b0, 1'b1, data_start}; + tx_f36_src_rdy <= 1; + #1; + while(count < data_len) + begin + while(~tx_f36_dst_rdy) + @(posedge clk); + @(posedge clk); + tx_f36_dat[31:0] = tx_f36_dat[31:0] + 32'h0101_0101; + count = count + 4; + tx_f36_dat[32] <= 0; + end + tx_f36_dat[3] <= 1; + while(~tx_f36_dst_rdy) + @(posedge clk); + @(posedge clk); + tx_f36_src_rdy <= 0; + end +endtask // SendPacket_to_fifo36 + + +task Waiter; + input [31:0] wait_length; + begin + tx_ll_src_rdy2 <= 0; + repeat(wait_length) + @(posedge clk); + tx_ll_src_rdy2 <= 1; + end +endtask // Waiter + +task SendPacketFromFile_f36; + input [31:0] data_len; + input [31:0] wait_length; + input [31:0] wait_time; + + integer count; + begin + $display("Sending Packet From File to LL8 Len=%d, %d",data_len,$time); + $readmemh("test_packet.mem",pkt_rom ); + + while(~tx_f36_dst_rdy) + @(posedge clk); + tx_f36_data2 <= pkt_rom[0]; + tx_f36_src_rdy <= 1; + tx_ll_eof2 <= 0; + @(posedge clk); + + for(i=1;i