Stefan Schuermans commited on 2012-03-21 21:42:47
Showing 1 changed files, with 34 additions and 20 deletions.
... | ... |
@@ -48,37 +48,37 @@ ARCHITECTURE a_testbed OF e_testbed IS |
48 | 48 |
); |
49 | 49 |
|
50 | 50 |
SIGNAL s_clk: std_logic; |
51 |
+ SIGNAL s_leds: std_logic_vector(7 DOWNTO 0); |
|
52 |
+ SIGNAL s_lcd: t_io_lcd_pins; |
|
53 |
+ SIGNAL s_uart_loopback: std_logic; |
|
51 | 54 |
SIGNAL s_eth_clk: std_logic; |
52 |
- SIGNAL s_eth_rxd: std_logic_vector(3 DOWNTO 0); |
|
55 |
+ SIGNAL s_eth_rxd_d: std_logic_vector(3 DOWNTO 0); |
|
56 |
+ SIGNAL s_eth_rxd: std_logic_vector(4 DOWNTO 0); |
|
53 | 57 |
SIGNAL s_eth_rx_dv: std_logic; |
54 |
- SIGNAL pin_leds: std_logic_vector(7 DOWNTO 0); |
|
55 |
- SIGNAL pin_lcd: t_io_lcd_pins; |
|
56 |
- SIGNAL pin_uart_loopback: std_logic; |
|
57 |
- SIGNAL pin_eth_rxd: std_logic_vector(4 DOWNTO 0); |
|
58 |
- SIGNAL pin_eth_txd: std_logic_vector(3 DOWNTO 0); |
|
59 |
- SIGNAL pin_eth_tx_en: std_logic; |
|
58 |
+ SIGNAL s_eth_txd: std_logic_vector(3 DOWNTO 0); |
|
59 |
+ SIGNAL s_eth_tx_en: std_logic; |
|
60 | 60 |
|
61 | 61 |
BEGIN |
62 | 62 |
|
63 | 63 |
system: e_system |
64 | 64 |
PORT MAP ( |
65 | 65 |
clk => s_clk, |
66 |
- pin_o_leds => pin_leds, |
|
67 |
- pin_o_lcd => pin_lcd, |
|
66 |
+ pin_o_leds => s_leds, |
|
67 |
+ pin_o_lcd => s_lcd, |
|
68 | 68 |
pin_i_switches => (sw => (OTHERS => '0'), OTHERS => '0'), |
69 |
- pin_i_uart_rx => pin_uart_loopback, |
|
70 |
- pin_o_uart_tx => pin_uart_loopback, |
|
69 |
+ pin_i_uart_rx => s_uart_loopback, |
|
70 |
+ pin_o_uart_tx => s_uart_loopback, |
|
71 | 71 |
pin_i_eth_rx_clk => s_eth_clk, |
72 |
- pin_i_eth_rxd => pin_eth_rxd, |
|
72 |
+ pin_i_eth_rxd => s_eth_rxd, |
|
73 | 73 |
pin_i_eth_rx_dv => s_eth_rx_dv, |
74 | 74 |
pin_i_eth_crs => s_eth_rx_dv, |
75 | 75 |
pin_i_eth_col => '0', |
76 | 76 |
pin_i_eth_tx_clk => s_eth_clk, |
77 |
- pin_o_eth_txd => pin_eth_txd, |
|
78 |
- pin_o_eth_tx_en => pin_eth_tx_en |
|
77 |
+ pin_o_eth_txd => s_eth_txd, |
|
78 |
+ pin_o_eth_tx_en => s_eth_tx_en |
|
79 | 79 |
); |
80 | 80 |
|
81 |
- pin_eth_rxd <= "0" & s_eth_rxd; |
|
81 |
+ s_eth_rxd <= "0" & s_eth_rxd_d; |
|
82 | 82 |
|
83 | 83 |
p_clk: PROCESS |
84 | 84 |
BEGIN |
... | ... |
@@ -100,22 +100,36 @@ BEGIN |
100 | 100 |
END LOOP; |
101 | 101 |
END PROCESS p_eth_clk; |
102 | 102 |
|
103 |
- p_eth_data: PROCESS |
|
103 |
+ p_eth_rx_data: PROCESS |
|
104 | 104 |
BEGIN |
105 |
- s_eth_rxd <= "0000"; |
|
105 |
+ s_eth_rxd_d <= "0000"; |
|
106 | 106 |
s_eth_rx_dv <= '0'; |
107 | 107 |
WAIT FOR 25 ms; |
108 | 108 |
WAIT UNTIL s_eth_clk = '1'; |
109 | 109 |
WAIT UNTIL s_eth_clk = '0'; |
110 | 110 |
FOR i IN 0 TO eth_data'length - 1 LOOP |
111 |
- s_eth_rxd <= eth_data(i); |
|
111 |
+ s_eth_rxd_d <= eth_data(i); |
|
112 | 112 |
s_eth_rx_dv <= '1'; |
113 | 113 |
WAIT UNTIL s_eth_clk = '1'; |
114 | 114 |
WAIT UNTIL s_eth_clk = '0'; |
115 | 115 |
END LOOP; |
116 |
- s_eth_rxd <= "0000"; |
|
116 |
+ s_eth_rxd_d <= "0000"; |
|
117 | 117 |
s_eth_rx_dv <= '0'; |
118 | 118 |
WAIT; |
119 |
- END PROCESS p_eth_data; |
|
119 |
+ END PROCESS p_eth_rx_data; |
|
120 |
+ |
|
121 |
+ p_eth_tx_data: PROCESS |
|
122 |
+ VARIABLE l: line; |
|
123 |
+ BEGIN |
|
124 |
+ FOR i IN 0 TO eth_data'length - 1 LOOP |
|
125 |
+ WAIT UNTIL s_eth_clk = '0'; |
|
126 |
+ WAIT UNTIL s_eth_clk = '1'; |
|
127 |
+ IF s_eth_tx_en = '1' THEN |
|
128 |
+ write(l, "ethernet TX: "); |
|
129 |
+ write(l, to_integer(unsigned(s_eth_txd))); |
|
130 |
+ writeline(output, l); |
|
131 |
+ END IF; |
|
132 |
+ END LOOP; |
|
133 |
+ END PROCESS p_eth_tx_data; |
|
120 | 134 |
|
121 | 135 |
END ARCHITECTURE a_testbed; |
122 | 136 |