Frage zum Warning Latch

Gast #1562691
Lesenswert?

Hallo

eine Frage zum Latch. Ich möchte auf einem 12 bit Ausgang entweder ein 
Signal oder das anderes Signal geben also ein Switch. Im 3 fall soll er 
auf beim letzten Wert bleiben. Dazu habe ich folgendes programmiert :
1
FLASH_ENABLE                          : in   std_logic;  
2
-----------
3
Signal BRAM_WRITE_OR_READ_ENABLE      : std_logic:='0';
4
Signal BRAM_OUT_DATA_1                : std_logic_vector  (11 downto 0);
5
Signal SWITCH                         : std_logic_vector (1 downto 0);
6

7
 begin
8
SWITCH <= (BRAM_WRITE_OR_READ_ENABLE, FLASH_ENABLE);
9

10

11
with SWITCH select  
12
  WEITERGABE_DATEN_BRAM<=  BRAM_OUT_DATA_2     when  "01",
13
                  BRAM_OUT_DATA_1              when  "11",
14
                  WEITERGABE_DATEN_BRAM        when others;

Jetzt kommt die Warnung Latch gefunden... und im Prinzip will ich ja 
auch ein Speicherzustand.

So ist das gutes Design? Oder kann ich die auch schöner umschreiben, so 
das das Signal immer hin und her Schaltet und beim 3 Fall da bleibt wo 
er zu letzt war.



Danke


Gruß Igor
Gast #1562766
Lesenswert?

Hi, naja der Switch ist kein physikalischer switch, das FLASH_ENABLE 
wird nach eine Trigger erzeugt und dauert dem entsprechend, und 
BRAM_WRITE_OR_READ_ENABLE wird in einem Zustandsautomat definiert. Also 
alles eigentlich mit Takten.


Ändert das was?
(Firma: www.collion.de) Persönliche Seite #1567600
Lesenswert?

Igor schrieb:
> Hi, naja der Switch ist kein physikalischer switch, das FLASH_ENABLE
> wird nach eine Trigger erzeugt und dauert dem entsprechend, und
> BRAM_WRITE_OR_READ_ENABLE wird in einem Zustandsautomat definiert. Also
> alles eigentlich mit Takten.

Wenn Du eh alles getaktest hast, was hindert Dich dann dein CASE in 
einem getakteten Prozess zu stecken? Damit hast Du die unterschiedlichen 
Latenzen deiner beiden Signale vom Switchvector elemeniert und XST gibt 
auch Ruhe...

Gruß

Andreas

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren