ipv4: Change syntax to make Synplify happy
This commit is contained in:
		
							parent
							
								
									6de8d24537
								
							
						
					
					
						commit
						0db98483dc
					
				| @ -143,27 +143,28 @@ begin | ||||
| 
 | ||||
| 		signal full_length : ipv4_length; | ||||
| 
 | ||||
| 		signal sr            : byte_vector(0 to 19); | ||||
| 		signal byte_cnt      : integer range 0 to sr'length - 1; | ||||
| 		signal alt_byte      : std_logic; | ||||
| 		signal checksum      : unsigned(20 downto 0); -- 20 Header fields -> 19 chances for carry -> 5 additional bits | ||||
| 		signal checksum_ones : unsigned(15 downto 0); | ||||
| 
 | ||||
| 		constant TTL : byte := x"40"; | ||||
| 		impure function get_header(checksum : std_logic_vector(15 downto 0)) return byte_vector is | ||||
| 			variable ret : byte_vector(sr'range); | ||||
| 		begin | ||||
| 			return                      -- | ||||
| 			byte_vector'( | ||||
| 				x"45", x"00", byte(full_length(15 downto 8)), byte(full_length(7 downto 0)), -- Ver/IHL, DSCP/ECN, Len | ||||
| 				x"00", x"00", x"00", x"00" -- Identification, Flags/FragOffset | ||||
| 			) & TTL & ipv4_in.tx_protocol & checksum(15 downto 8) & checksum(7 downto 0) & -- TTL, Protocol, Header Checksum | ||||
| 			ipv4_config.ip_address &    -- Source IP | ||||
| 			ipv4_in.tx_ip_address       -- Destination IP | ||||
| 			; | ||||
| 			ret :=                      -- | ||||
| 			       byte_vector'( | ||||
| 				       x"45", x"00", byte(full_length(15 downto 8)), byte(full_length(7 downto 0)), -- Ver/IHL, DSCP/ECN, Len | ||||
| 				       x"00", x"00", x"00", x"00" -- Identification, Flags/FragOffset | ||||
| 			       ) & TTL & ipv4_in.tx_protocol & checksum(15 downto 8) & checksum(7 downto 0) & -- TTL, Protocol, Header Checksum | ||||
| 			       ipv4_config.ip_address & -- Source IP | ||||
| 			       ipv4_in.tx_ip_address -- Destination IP | ||||
| 			     ; | ||||
| 			return ret; | ||||
| 		end function get_header; | ||||
| 
 | ||||
| 		constant PSEUDO_HEADER : byte_vector := get_header(x"0000"); | ||||
| 		signal sr              : byte_vector(PSEUDO_HEADER'range); | ||||
| 		signal byte_cnt        : integer range 0 to sr'length - 1; | ||||
| 		signal alt_byte        : std_logic; | ||||
| 		signal checksum        : unsigned(20 downto 0); -- 20 Header fields -> 19 chances for carry -> 5 additional bits | ||||
| 		signal checksum_ones   : unsigned(15 downto 0); | ||||
| 	begin | ||||
| 		full_length   <= PSEUDO_HEADER'length + ipv4_in.tx_length; | ||||
| 		full_length   <= sr'length + ipv4_in.tx_length; | ||||
| 		checksum_ones <= checksum(15 downto 0) + checksum(checksum'high downto 16); | ||||
| 
 | ||||
| 		tx_fsm : process(clk, rst) is | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user