23-06-2016, 02:09 PM
My first attempt at crosshatch with castellations. Logic not quite right yet
The VHDL is pretty much brute force rather than trying to minimise the amount of logic used. Here's the logic that decides what happens going down the screen. The line count is a bit naff at themoment too. It's got the interlace backwards which will cause hassle to 625>405 converters that see these signals. I did put in one refinement, the edges are slightly anti-aliased. Every white to black and black to white transition going across the screen has an extra mid grey pixel in the middle.
The VHDL is pretty much brute force rather than trying to minimise the amount of logic used. Here's the logic that decides what happens going down the screen. The line count is a bit naff at themoment too. It's got the interlace backwards which will cause hassle to 625>405 converters that see these signals. I did put in one refinement, the edges are slightly anti-aliased. Every white to black and black to white transition going across the screen has an extra mid grey pixel in the middle.
Code:
-- Big hairy CASE statement to select different parts of crosshatch
case WHOLE_LINE_COUNT is
when V_OFFSET + 33 | V_OFFSET + 52 | V_OFFSET + 71 | V_OFFSET + 90 => LINE_TYPE <= HORIZONTAL_WHITE_LINE;
when V_OFFSET + 109 | V_OFFSET + 128 | V_OFFSET + 147 | V_OFFSET + 166 => LINE_TYPE <= HORIZONTAL_WHITE_LINE;
when V_OFFSET + 185 | V_OFFSET + 204 | V_OFFSET + 223 | V_OFFSET + 242 => LINE_TYPE <= HORIZONTAL_WHITE_LINE;
when V_OFFSET + 261 | V_OFFSET + 280 | V_OFFSET + 299 => LINE_TYPE <= HORIZONTAL_WHITE_LINE;
when V_OFFSET + 24 to V_OFFSET + 32 => LINE_TYPE <= TOP_BOTTOM_CASTELLATION_LINE;
when V_OFFSET + 300 to V_OFFSET + 309 => LINE_TYPE <= TOP_BOTTOM_CASTELLATION_LINE;
when V_OFFSET + 34 to V_OFFSET + 34 + 17 | V_OFFSET + 72 to V_OFFSET + 72 + 17 => LINE_TYPE <= LEFT_RIGHT_CASTELLATION_LINE;
when V_OFFSET + 110 to V_OFFSET + 110 + 17 | V_OFFSET + 148 to V_OFFSET + 148 + 17 => LINE_TYPE <= LEFT_RIGHT_CASTELLATION_LINE;
when V_OFFSET + 186 to V_OFFSET + 186 + 17 | V_OFFSET + 224 to V_OFFSET + 224 + 17 => LINE_TYPE <= LEFT_RIGHT_CASTELLATION_LINE;
when V_OFFSET + 262 to V_OFFSET + 262 + 17 => LINE_TYPE <= LEFT_RIGHT_CASTELLATION_LINE;
when others => LINE_TYPE <= VERTICAL_ONLY_LINE;
end case;
www.borinsky.co.uk Jeffrey Borinsky www.becg.tv







