split polygon in 2 process
This commit is contained in:
		| @@ -2,26 +2,36 @@ ARCHITECTURE studentVersion OF triangleToPolygon IS | ||||
|  | ||||
|   signal mySignal : unsigned(bitNb downto 0); | ||||
|   constant aFullTriangle : unsigned(bitNb downto 0) := (others => '1'); | ||||
|   signal bigTriangle: unsigned(bitNb downto 0); | ||||
|   signal oneOfHeight: unsigned(bitNb downto 0); | ||||
|   signal fiveOfHeight: unsigned(bitNb downto 0); | ||||
|  | ||||
| BEGIN | ||||
|  | ||||
|   convert: process(triangle) | ||||
|   resizeTriangle: process(triangle) | ||||
|   begin | ||||
|     bigTriangle <= ('0' & triangle) + ('0' & shift_right(triangle, 1)); | ||||
|     oneOfHeight <= shift_right(aFullTriangle, 3); | ||||
|     fiveOfHeight <= shift_right(aFullTriangle, 1) + shift_right(aFullTriangle, 3); | ||||
|   end process resizeTriangle; | ||||
|  | ||||
|   convert: process(bigTriangle) | ||||
|   begin | ||||
|      | ||||
|     if (('0' & triangle) + ('0' & shift_right(triangle, 1))) < shift_right(aFullTriangle, 3) then | ||||
|     if bigTriangle < oneOfHeight then | ||||
|  | ||||
|       mySignal <= shift_right(aFullTriangle,3); | ||||
|       mySignal <= oneOfHeight; | ||||
|        | ||||
|     elsif (('0' & triangle) + ('0' & shift_right(triangle, 1))) > (shift_right(aFullTriangle, 1) + shift_right('0' & aFullTriangle, 3)) then | ||||
|     elsif bigTriangle > fiveOfHeight then | ||||
|  | ||||
|       mySignal <= (shift_right(aFullTriangle,1) + shift_right(aFullTriangle,3)); | ||||
|       mySignal <= fiveOfHeight; | ||||
|  | ||||
|     elsif '1' then | ||||
|       mySignal <= ('0' & triangle) + ('0' & shift_right(triangle, 1) ); | ||||
|     else | ||||
|       mySignal <= bigTriangle; | ||||
|  | ||||
|     end if ; | ||||
|  | ||||
|   end process convert; | ||||
|    | ||||
|   polygon <= resize(mySignal-shift_right('0' & aFullTriangle,3), bitNb); | ||||
|   polygon <= resize(mySignal-oneOfHeight, bitNb); | ||||
| END ARCHITECTURE studentVersion; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user