OpenCores
URL https://opencores.org/ocsvn/tcp_socket/tcp_socket/trunk

Subversion Repositories tcp_socket

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /tcp_socket/trunk/source
    from Rev 3 to Rev 4
    Reverse comparison

Rev 3 → Rev 4

/user_design.c
68,7 → 68,7
<button type=\"sumbit\" value=\"Submit\">Update LEDs</button>\
</form>\
<p>This <a href=\"https://github.com/dawsonjon/Chips-Demo\">project</a>\
is powered by <a href=\"https://github.com/dawsonjon/Chips-2.0\">Chips-2.0</a>.</p>\
is powered by <a href=\"http:pyandchips.org\">Chips-2.0</a>.</p>\
</body>\
</html>";
 
/atlys.vhd
82,17 → 82,17
 
entity ATLYS is
port(
CLK_IN : in std_logic;
RST : in std_logic;
CLK_IN : in std_logic;
RST : in std_logic;
 
--PHY INTERFACE
TX : out std_logic;
RX : in std_logic;
PHY_RESET : out std_logic;
RXDV : in std_logic;
RXER : in std_logic;
RXCLK : in std_logic;
RXD : in std_logic_vector(7 downto 0);
TX : out std_logic;
RX : in std_logic;
PHY_RESET : out std_logic;
RXDV : in std_logic;
RXER : in std_logic;
RXCLK : in std_logic;
RXD : in std_logic_vector(7 downto 0);
TXCLK : in std_logic;
GTXCLK : out std_logic;
TXD : out std_logic_vector(7 downto 0);
148,7 → 148,7
port(
CLK : in std_logic;
RST : in std_logic;
--ETH RX STREAM
INPUT_ETH_RX : in std_logic_vector(15 downto 0);
INPUT_ETH_RX_STB : in std_logic;
176,7 → 176,7
port(
CLK : in std_logic;
RST : in std_logic;
OUTPUT_LEDS : out std_logic_vector(15 downto 0);
OUTPUT_LEDS_STB : out std_logic;
OUTPUT_LEDS_ACK : in std_logic;
357,7 → 357,7
SERVER_INST_1 : SERVER port map(
CLK => CLK,
RST => INTERNAL_RST,
--ETH RX STREAM
INPUT_ETH_RX => ETH_RX,
INPUT_ETH_RX_STB => ETH_RX_STB,
383,7 → 383,7
USER_DESIGN_INST_1 : USER_DESIGN port map(
CLK => CLK,
RST => INTERNAL_RST,
OUTPUT_LEDS => OUTPUT_LEDS,
OUTPUT_LEDS_STB => OUTPUT_LEDS_STB,
OUTPUT_LEDS_ACK => OUTPUT_LEDS_ACK,
451,11 → 451,11
wait until rising_edge(CLK);
NOT_LOCKED <= not LOCKED_INTERNAL;
INTERNAL_RST <= NOT_LOCKED;
if OUTPUT_LEDS_STB = '1' then
GPIO_LEDS <= OUTPUT_LEDS(7 downto 0);
GPIO_LEDS <= OUTPUT_LEDS(7 downto 0);
end if;
OUTPUT_LEDS_ACK <= '1';
OUTPUT_LEDS_ACK <= '1';
 
INPUT_SWITCHES_STB <= '1';
GPIO_SWITCHES_D <= GPIO_SWITCHES;
/server.h
17,12 → 17,12
// TCP-IP User Settings
//
 
unsigned local_mac_address_hi = 0x0001u;
unsigned local_mac_address_med = 0x0203u;
unsigned local_mac_address_lo = 0x0405u;
unsigned local_ip_address_hi = 0xc0A8u;//192/168
unsigned local_ip_address_lo = 0x0101u;//1/1
unsigned local_port = 80u;//http
const unsigned local_mac_address_hi = 0x0001u;
const unsigned local_mac_address_med = 0x0203u;
const unsigned local_mac_address_lo = 0x0405u;
const unsigned local_ip_address_hi = 0xc0A8u;//192/168
const unsigned local_ip_address_lo = 0x0101u;//1/1
const unsigned local_port = 80u;//http
 
////////////////////////////////////////////////////////////////////////////////
// TCP-IP GLOBALS
301,6 → 301,7
unsigned payload_length;
unsigned i, from, to;
unsigned payload_end;
unsigned number_of_bytes;
 
number_of_bytes = get_ethernet_packet(packet);
 
383,6 → 384,7
unsigned payload_start = 17;
unsigned packet_length;
unsigned index;
unsigned i;
 
//encode TCP header
tx_packet[payload_start + 0] = tx_source;
511,11 → 513,11
unsigned last_state;
unsigned new_rx_data;
 
unsigned listen = 0;
unsigned open = 1;
unsigned send = 2;
unsigned wait_acknowledge = 3;
unsigned close = 4;
const unsigned listen = 0;
const unsigned open = 1;
const unsigned send = 2;
const unsigned wait_acknowledge = 3;
const unsigned close = 4;
unsigned state = listen;
 
tx_seq[0] = 0;
537,13 → 539,13
 
// (optionaly) send something
switch(state){
case 0:
case listen:
tx_rst_flag = 0;
tx_syn_flag = 0;
tx_fin_flag = 0;
tx_ack_flag = 0;
break;
case 1:
case open:
// set remote ip/port
remote_ip_hi = rx_packet[13];
remote_ip_lo = rx_packet[14];
555,7 → 557,7
tx_ack_flag = 1;
put_tcp_packet(tx_packet, 0);
break;
case 2:
case send:
// application -> tcp
tx_length = application_get_data(tx_packet, tx_start);
tx_seq[0] = next_tx_seq[0];
565,11 → 567,11
tx_ack_flag = 1;
put_tcp_packet(tx_packet, tx_length);
break;
case 3:
case wait_acknowledge:
// resend until acknowledge recieved
put_tcp_packet(tx_packet, tx_length);
break;
case 4:
case close:
// send fin ack
tx_fin_flag = 1;
tx_ack_flag = 1;
589,7 → 591,7
switch(state){
 
// If a syn packet is recieved, wait for an ack
case 0:
case listen:
if(rx_syn_flag) state = open;
else{
tx_rst_flag = 1;
598,7 → 600,7
break;
 
// If an ack is recieved the connection is established
case 1:
case open:
if(rx_ack_flag){
tx_seq[1] = rx_ack[1];
tx_seq[0] = rx_ack[0];
609,7 → 611,7
break;
 
// Send some data
case 2:
case send:
new_rx_data = calc_ack(tx_ack, rx_seq, rx_length);
if(rx_fin_flag){
state = close;
619,7 → 621,7
break;
 
// Wait until data is acknowledged before sending some more.
case 3:
case wait_acknowledge:
 
new_rx_data = calc_ack(tx_ack, rx_seq, rx_length);
if(rx_fin_flag){
633,7 → 635,7
break;
 
// wait for fin/ack.
case 4:
case close:
if(rx_ack_flag) state = listen;
break;
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.