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; |
} |