tom schrieb:
> OverStromSD_o <= '1'; --latch! --> muss reset FPGA!
Du solltest das Signal auch mal auf '0' setzen...
So wie es jetzt aussieht, wird statt des Signals einf eine '1' erzeugt.
Probier mal, ob die Synthese das kapiert:
1 | PORT
|
2 | (sys_clk : IN STD_LOGIC;
|
3 | MeasStrom : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
|
4 | MeasOverStromSD : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
|
5 | OverStromSD_o : OUT STD_LOGIC := '0');
|
Wenn nicht, solltest du ein Hilfsignal einführen und das mit '0'
initialisieren:
1 | architecture Behavioral of strom_ueberwach is
|
2 | signal oc : std_logic :='0'; -- Defaultwert
|
3 | begin
|
4 | process begin
|
5 | wait until rising_edge(sys_clk);
|
6 | if (((signed(MeasOverStromSD) < signed(MeasStrom)) OR
|
7 | (-signed(MeasOverStromSD) > signed(MeasStrom)))) then
|
8 | oc <= '1'; --latch! --> muss reset FPGA! <<-- ist das eine gute Idee????
|
9 | end if;
|
10 | end process;
|
11 |
|
12 | OverStromSD_o <= oc;
|
13 |
|
14 | end Behavioral;
|
> ich will mit dem code hier einen latch realisieren.
Das ist übrigens kein Latch, sondern ein normales getaktetes Register.
Ein Latch sähe anders aus: es hätte keinen Takt...