📄 sv_chip1.vhd
字号:
if (tm3_clk_v0'event and tm3_clk_v0 = '1') then vidin_new_data_scld_1_2to3_left_reg <= vidin_new_data_scld_1_2to3_left; vidin_data_reg_scld_1_2to3_left_reg <= vidin_data_reg_scld_1_2to3_left_rp(15 downto 8); vidin_new_data_scld_2_2to3_left_reg <= vidin_new_data_scld_2_2to3_left; vidin_data_reg_scld_2_2to3_left_reg <= vidin_data_reg_scld_2_2to3_left_rp(15 downto 8); vidin_new_data_scld_4_2to3_left_reg <= vidin_new_data_scld_4_2to3_left; vidin_data_reg_scld_4_2to3_left_reg <= vidin_data_reg_scld_4_2to3_left_rp(15 downto 8); vidin_new_data_scld_1_2to3_right_reg <= vidin_new_data_scld_1_2to3_right; vidin_data_reg_scld_1_2to3_right_reg <= vidin_data_reg_scld_1_2to3_right_rp(15 downto 8); vidin_new_data_scld_2_2to3_right_reg <= vidin_new_data_scld_2_2to3_right; vidin_data_reg_scld_2_2to3_right_reg <= vidin_data_reg_scld_2_2to3_right_rp(15 downto 8); vidin_new_data_scld_4_2to3_right_reg <= vidin_new_data_scld_4_2to3_right; vidin_data_reg_scld_4_2to3_right_reg <= vidin_data_reg_scld_4_2to3_right_rp(15 downto 8); vidin_addr_reg_2to3_reg <= vidin_addr_reg_2to3; end if; end process; process(tm3_clk_v0) begin if (tm3_clk_v0'event and tm3_clk_v0 = '1') then video_state <= not(video_state); --vidin_new_data_scld_1_2to3_left_reg <= vidin_new_data_scld_1_2to3_left; --vidin_data_reg_scld_1_2to3_left_reg <= vidin_data_reg_scld_1_2to3_left; --vidin_addr_reg_2to3_reg <= vidin_addr_reg_2to3; if video_state = '0' then if horiz = 800 then horiz <= "0000000000"; if vert = 525 then vert <= "0000000000"; else vert <= vert + 1; end if; else horiz <= horiz + 1; end if; tm3_sram_adsp <= '1'; tm3_sram_we <= "11111111"; tm3_sram_data <= "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"; tm3_sram_oe <= "11"; else tm3_sram_adsp <= '0'; case horiz(2 downto 0) is when "000" => -- vidout_buf <= tm3_sram_data; tm3_sram_addr <= vidin_addr_buf_sc_2; tm3_sram_we <= "00000000"; tm3_sram_oe <= "11"; tm3_sram_data <= vidin_data_buf_sc_2; when "100" => -- vidout_buf <= tm3_sram_data; tm3_sram_addr <= vidin_addr_buf_sc_4; tm3_sram_we <= "00000000"; tm3_sram_oe <= "11"; tm3_sram_data <= vidin_data_buf_sc_4; when "111" => -- vidout_buf <= tm3_sram_data; tm3_sram_addr <= vidin_addr_buf_sc_1; tm3_sram_we <= "00000000"; tm3_sram_oe <= "11"; tm3_sram_data <= vidin_data_buf_sc_1; when others => tm3_sram_addr <= "0000000000000000000"; tm3_sram_we <= "11111111"; tm3_sram_oe <= "11"; tm3_sram_data <= "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"; end case; end if; if (vidin_new_data_scld_1_2to3_left_reg = '1') then case (svid_comp_switch_2to3 & vidin_addr_reg_2to3_reg(2 downto 0)) is when "0000" => vidin_data_buf_2_sc_1(7 downto 0) <= vidin_data_reg_scld_1_2to3_left_reg; -- xor vidin_data_reg_scld_1_2to3_right_reg; when "0001" => vidin_data_buf_2_sc_1(15 downto 8) <= vidin_data_reg_scld_1_2to3_left_reg; -- xor vidin_data_reg_scld_1_2to3_right_reg; when "0010" => vidin_data_buf_2_sc_1(23 downto 16) <= vidin_data_reg_scld_1_2to3_left_reg; -- xor vidin_data_reg_scld_1_2to3_right_reg; when "0011" => vidin_data_buf_2_sc_1(31 downto 24) <= vidin_data_reg_scld_1_2to3_left_reg; -- xor vidin_data_reg_scld_1_2to3_right_reg; when "0100" => vidin_data_buf_2_sc_1(39 downto 32) <= vidin_data_reg_scld_1_2to3_left_reg; -- xor vidin_data_reg_scld_1_2to3_right_reg; when "0101" => vidin_data_buf_2_sc_1(47 downto 40) <= vidin_data_reg_scld_1_2to3_left_reg; -- xor vidin_data_reg_scld_1_2to3_right_reg; when "0110" => vidin_data_buf_2_sc_1(55 downto 48) <= vidin_data_reg_scld_1_2to3_left_reg; --xor vidin_data_reg_scld_1_2to3_right_reg; when "0111" => vidin_data_buf_sc_1 <= vidin_data_reg_scld_1_2to3_left_reg & --xor vidin_data_reg_scld_1_2to3_right_reg) & vidin_data_buf_2_sc_1(55 downto 0); vidin_addr_buf_sc_1 <= "0000" & svid_comp_switch_2to3 & vidin_addr_reg_2to3_reg(16 downto 3); when "1000" => vidin_data_buf_2_sc_1(7 downto 0) <= vidin_data_reg_scld_1_2to3_right_reg; -- xor vidin_data_reg_scld_1_2to3_right_reg; when "1001" => vidin_data_buf_2_sc_1(15 downto 8) <= vidin_data_reg_scld_1_2to3_right_reg; -- xor vidin_data_reg_scld_1_2to3_right_reg; when "1010" => vidin_data_buf_2_sc_1(23 downto 16) <= vidin_data_reg_scld_1_2to3_right_reg; -- xor vidin_data_reg_scld_1_2to3_right_reg; when "1011" => vidin_data_buf_2_sc_1(31 downto 24) <= vidin_data_reg_scld_1_2to3_right_reg; -- xor vidin_data_reg_scld_1_2to3_right_reg; when "1100" => vidin_data_buf_2_sc_1(39 downto 32) <= vidin_data_reg_scld_1_2to3_right_reg; -- xor vidin_data_reg_scld_1_2to3_right_reg; when "1101" => vidin_data_buf_2_sc_1(47 downto 40) <= vidin_data_reg_scld_1_2to3_right_reg; -- xor vidin_data_reg_scld_1_2to3_right_reg; when "1110" => vidin_data_buf_2_sc_1(55 downto 48) <= vidin_data_reg_scld_1_2to3_right_reg; --xor vidin_data_reg_scld_1_2to3_right_reg; when "1111" => vidin_data_buf_sc_1 <= vidin_data_reg_scld_1_2to3_right_reg & --xor vidin_data_reg_scld_1_2to3_right_reg) & vidin_data_buf_2_sc_1(55 downto 0); vidin_addr_buf_sc_1 <= "0000" & svid_comp_switch_2to3 & vidin_addr_reg_2to3_reg(16 downto 3); end case; end if; if (vidin_new_data_scld_2_2to3_left_reg = '1') then case (svid_comp_switch_2to3 & vidin_addr_reg_2to3_reg(3 downto 1)) is when "0000" => vidin_data_buf_2_sc_2(7 downto 0) <=vidin_data_reg_scld_2_2to3_left_reg; -- xor vidin_data_reg_scld_2_2to3_right_reg; when "0001" => vidin_data_buf_2_sc_2(15 downto 8) <= vidin_data_reg_scld_2_2to3_left_reg; -- xor vidin_data_reg_scld_2_2to3_right_reg; when "0010" => vidin_data_buf_2_sc_2(23 downto 16) <= vidin_data_reg_scld_2_2to3_left_reg; -- xor vidin_data_reg_scld_2_2to3_right_reg; when "0011" => vidin_data_buf_2_sc_2(31 downto 24) <= vidin_data_reg_scld_2_2to3_left_reg; -- xor vidin_data_reg_scld_2_2to3_right_reg; when "0100" => vidin_data_buf_2_sc_2(39 downto 32) <= vidin_data_reg_scld_2_2to3_left_reg; -- xor vidin_data_reg_scld_2_2to3_right_reg; when "0101" => vidin_data_buf_2_sc_2(47 downto 40) <= vidin_data_reg_scld_2_2to3_left_reg; -- xor vidin_data_reg_scld_2_2to3_right_reg; when "0110" => vidin_data_buf_2_sc_2(55 downto 48) <= vidin_data_reg_scld_2_2to3_left_reg; -- xor vidin_data_reg_scld_2_2to3_right_reg; when "0111" => vidin_data_buf_sc_2 <= vidin_data_reg_scld_2_2to3_left_reg & --xor vidin_data_reg_scld_2_2to3_right_reg) & vidin_data_buf_2_sc_2(55 downto 0); vidin_addr_buf_sc_2 <= "0000" & svid_comp_switch_2to3 & '0' & vidin_addr_reg_2to3_reg(16 downto 10) &(45 + ('0' & vidin_addr_reg_2to3_reg(8 downto 4))); when "1000" => vidin_data_buf_2_sc_2(7 downto 0) <=vidin_data_reg_scld_2_2to3_right_reg; -- xor vidin_data_reg_scld_2_2to3_right_reg; when "1001" => vidin_data_buf_2_sc_2(15 downto 8) <= vidin_data_reg_scld_2_2to3_right_reg; -- xor vidin_data_reg_scld_2_2to3_right_reg; when "1010" => vidin_data_buf_2_sc_2(23 downto 16) <= vidin_data_reg_scld_2_2to3_right_reg; -- xor vidin_data_reg_scld_2_2to3_right_reg; when "1011" => vidin_data_buf_2_sc_2(31 downto 24) <= vidin_data_reg_scld_2_2to3_right_reg; -- xor vidin_data_reg_scld_2_2to3_right_reg; when "1100" => vidin_data_buf_2_sc_2(39 downto 32) <= vidin_data_reg_scld_2_2to3_right_reg; -- xor vidin_data_reg_scld_2_2to3_right_reg; when "1101" => vidin_data_buf_2_sc_2(47 downto 40) <= vidin_data_reg_scld_2_2to3_right_reg; -- xor vidin_data_reg_scld_2_2to3_right_reg; when "1110" => vidin_data_buf_2_sc_2(55 downto 48) <= vidin_data_reg_scld_2_2to3_right_reg; -- xor vidin_data_reg_scld_2_2to3_right_reg; when "1111" => vidin_data_buf_sc_2 <= vidin_data_reg_scld_2_2to3_right_reg & --xor vidin_data_reg_scld_2_2to3_right_reg) & vidin_data_buf_2_sc_2(55 downto 0); vidin_addr_buf_sc_2 <= "0000" & svid_comp_switch_2to3 & '0' & vidin_addr_reg_2to3_reg(16 downto 10) &(45 + ('0' & vidin_addr_reg_2to3_reg(8 downto 4))); end case; end if; if (vidin_new_data_scld_4_2to3_left_reg = '1') then case ( svid_comp_switch_2to3 & vidin_addr_reg_2to3_reg(4 downto 2)) is when "0000" => vidin_data_buf_2_sc_4(7 downto 0) <= vidin_data_reg_scld_4_2to3_left_reg; -- xor vidin_data_reg_scld_4_2to3_right_reg; when "0001" => vidin_data_buf_2_sc_4(15 downto 8) <= vidin_data_reg_scld_4_2to3_left_reg; -- xor vidin_data_reg_scld_4_2to3_right_reg; when "0010" => vidin_data_buf_2_sc_4(23 downto 16) <= vidin_data_reg_scld_4_2to3_left_reg; -- xor vidin_data_reg_scld_4_2to3_right_reg; when "0011" => vidin_data_buf_2_sc_4(31 downto 24) <= vidin_data_reg_scld_4_2to3_left_reg; -- xor vidin_data_reg_scld_4_2to3_right_reg; when "0100" => vidin_data_buf_2_sc_4(39 downto 32) <= vidin_data_reg_scld_4_2to3_left_reg; -- xor vidin_data_reg_scld_4_2to3_right_reg; when "0101" => vidin_data_buf_2_sc_4(47 downto 40) <= vidin_data_reg_scld_4_2to3_left_reg; -- xor vidin_data_reg_scld_4_2to3_right_reg; when "0110" => vidin_data_buf_2_sc_4(55 downto 48) <= vidin_data_reg_scld_4_2to3_left_reg; -- xor vidin_data_reg_scld_4_2to3_right_reg; when "0111" => vidin_data_buf_sc_4 <= vidin_data_reg_scld_4_2to3_left_reg & --xor vidin_data_reg_scld_4_2to3_right_reg) & vidin_data_buf_2_sc_4(55 downto 0); vidin_addr_buf_sc_4 <= "0000" & svid_comp_switch_2to3 & (128 + ("00" & vidin_addr_reg_2to3_reg(16 downto 11))) & (45 + ("00" & vidin_addr_reg_2to3_reg(8 downto 5))); when "1000" => vidin_data_buf_2_sc_4(7 downto 0) <= vidin_data_reg_scld_4_2to3_right_reg; -- xor vidin_data_reg_scld_4_2to3_right_reg; when "1001" => vidin_data_buf_2_sc_4(15 downto 8) <= vidin_data_reg_scld_4_2to3_right_reg; -- xor vidin_data_reg_scld_4_2to3_right_reg; when "1010" => vidin_data_buf_2_sc_4(23 downto 16) <= vidin_data_reg_scld_4_2to3_right_reg; -- xor vidin_data_reg_scld_4_2to3_right_reg; when "1011" => vidin_data_buf_2_sc_4(31 downto 24) <= vidin_data_reg_scld_4_2to3_right_reg; -- xor vidin_data_reg_scld_4_2to3_right_reg; when "1100" => vidin_data_buf_2_sc_4(39 downto 32) <= vidin_data_reg_scld_4_2to3_right_reg; -- xor vidin_data_reg_scld_4_2to3_right_reg; when "1101" => vidin_data_buf_2_sc_4(47 downto 40) <= vidin_data_reg_scld_4_2to3_right_reg; -- xor vidin_data_reg_scld_4_2to3_right_reg; when "1110" => vidin_data_buf_2_sc_4(55 downto 48) <= vidin_data_reg_scld_4_2to3_right_reg; -- xor vidin_data_reg_scld_4_2to3_right_reg; when "1111" => vidin_data_buf_sc_4 <= vidin_data_reg_scld_4_2to3_right_reg & --xor vidin_data_reg_scld_4_2to3_right_reg) & vidin_data_buf_2_sc_4(55 downto 0); vidin_addr_buf_sc_4 <= "0000" & svid_comp_switch_2to3 & (128 + ("00" & vidin_addr_reg_2to3_reg(16 downto 11))) & (45 + ("00" & vidin_addr_reg_2to3_reg(8 downto 5))); end case; end if; end if; end process;end arch_sv_chip1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -