Guten Tag!!!
Ich habe ein Problem...
Mein Projekt ist ein ZX-Spectrum 128 Nachbau im FPGA.
Sowait funzt schon alles. Jetzt schreibe ich Softcore für AY-3-8910.
Leuft auch gut :) Aber linear. Jetzt habe ich Wavetable hinzugefügt und
mein Design lässt sich ohne Fehler synthesieren, aber läuft einfach
nicht mehr.
also, so ist es früher gewesen:
1 | A <= (("0000" & Volume_A(3 downto 0)) * "00001000") when
|
2 | (Osc_A = '1' and Enable(0) = '0') or (Period_N_Out = '1' and Enable(3) = '0') else "00000000";
|
jetzt sieht's so aus:
1 | process(CLK)
|
2 | begin
|
3 | if rising_edge(CLK) then
|
4 | case Mix_A is
|
5 | when "0000" => SOUND_A <= "00000000";
|
6 | when "0001" => SOUND_A <= "00000001";
|
7 | when "0010" => SOUND_A <= "00000010";
|
8 | when "0011" => SOUND_A <= "00000011";
|
9 | when "0100" => SOUND_A <= "00000100";
|
10 | when "0101" => SOUND_A <= "00000101";
|
11 | when "0110" => SOUND_A <= "00000110";
|
12 | when "0111" => SOUND_A <= "00001000";
|
13 | when "1000" => SOUND_A <= "00001011";
|
14 | when "1001" => SOUND_A <= "00010000";
|
15 | when "1010" => SOUND_A <= "00010110";
|
16 | when "1011" => SOUND_A <= "00100000";
|
17 | when "1100" => SOUND_A <= "00101101";
|
18 | when "1101" => SOUND_A <= "00111111";
|
19 | when "1110" => SOUND_A <= "01011010";
|
20 | when "1111" => SOUND_A <= "01111111";
|
21 | when others => null;
|
22 | end case;
|
23 | end if;
|
24 | end process;
|
25 |
|
26 | Mix_A <= Volume_A(3 downto 0);
|
27 |
|
28 | A <= SOUND_A when (Osc_A = '1' and Enable(0) = '0') or (Period_N_Out = '1' and Enable(3) = '0') else "00000000";
|
Verstehe ich einfach nichts :(
Wenn da ein Fehler ist, soll ich normalerweise kein/falscher Sound oder
Fehlermeldung beim synthesieren kriegen.
Ist es aber nicht so.
p.S. mein Design ist zurzeit eine Mischung aus
Synchron/Asynchron-Modulen.
Kann es daran liegen???