Moin,
hab ein Problem bei einer Abfrage von einem Bit innerhalb einer
Bitfolge.
Der folgende Codeausschnitt, fragt eine Bitfolge auf ein Bit ab und
setzt somit ein entsprechendes Signal.
Signale sind Set_Select, Set_Setzen, Set_Read, Set_Write, Set_Status
jeweils std_logic
PWDATA ist die Bitfolge (std_logic_vector 31 downto 0)
Wie frage ich die einzelnen Bits ab? So wie ich es geschrieben habe
funktioniert das irgendwie nicht. Denn ersten Teil (CLK) sowie die
nächste IF-Abfrage (Set_Select and PADDR) funktionieren ohne Probleme.
1 | If …
|
2 | elsif (clk='1' and clk'event) then
|
3 | if (Set_Select = '1' and PADDR = "00000000000000000000001111101010") then
|
4 | if (PWDATA(0) = '0') then --normaler Betrieb
|
5 | Set_Setzen <= '0';
|
6 | elsif (PWDATA (0) ='1') then --Setzen
|
7 | Set_Setzen <= '1';
|
8 | elsif (PWDATA(1) = '0') then --Lesen
|
9 | Set_Read <= '1';
|
10 | elsif (PWDATA(1) = '1') then --Schreiben
|
11 | Set_Write <= '1';
|
12 | elsif (PWDATA(2) = '0') then --Stop
|
13 | Set_Status <= '0';
|
14 | elsif (PWDATA(2) = '1') then --Start
|
15 | Set_Status <= '1';
|
16 | end if;
|
17 | end if;
|
18 | end if;
|
Ich hoffe, dass ihr mir weiterhelfen könnt.
Torben