Project

General

Profile

« Previous | Next » 

Revision 11

Added by markw over 11 years ago

Split ROM into its own process, to make it easier for Quartus to infer

View differences:

common/a8core/pokey_mixer.vhdl
END pokey_mixer;
ARCHITECTURE vhdl OF pokey_mixer IS
signal volume_next : std_logic_vector(15 downto 0);
signal volume_reg : std_logic_vector(15 downto 0);
signal volume_next : std_logic_vector(15 downto 0);
signal volume_next_real : std_logic_vector(15 downto 0);
signal volume_all_next : std_logic_vector(15 downto 0);
signal volume_all_reg : std_logic_vector(15 downto 0);
signal volume_sum : std_logic_vector(5 downto 0);
......
process(clk)
begin
if (clk'event and clk='1') then
volume_reg <= volume_next_real;
volume_reg <= volume_next;
volume_all_reg <= volume_all_next;
end if;
end process;
......
when others =>
volume_next <= X"79FF"; -- in case GTIA playing at full vol!
end case;
end process;
-- volume_next_real <= std_LOGIC_vector(
-- (unsigned('0'&volume_next(15 downto 1))
-- + unsigned(gtia_en))
-- + (unsigned("00"&covox_CHANNEL_0)
-- + unsigned("00"&covox_CHANNEL_1)));
--volume_next_real <= '0'&volume_next(15 downto 1);
volume_next_real <= std_LOGIC_vector(
(unsigned("00"&volume_next(15 downto 2))
process(volume_reg, gtia_en, covox_channel_0, covox_channel_1)
begin
volume_all_next <= std_LOGIC_vector(
(unsigned("00"&volume_reg(15 downto 2))
+ unsigned(gtia_en))
+ (unsigned("000"&covox_CHANNEL_0&"00000")
+ unsigned("000"&covox_CHANNEL_1&"00000")));
......
end process;
-- output
-- TODO
volume_out <= volume_reg;
volume_out <= volume_all_reg;
END vhdl;
END vhdl;

Also available in: Unified diff