Hallo ich hab mal ne frage, in den Counterbeispielen hier programmiert ihr fleißig bit-counter. Problem 1. Meines wissens kann das VHDL nicht, also bitte klärt mich da auf, ab wann das geht, eventuell mit library oder ähnlichem. 2. ISE Webpackage mag das auch nicht. "ERROR:HDLParsers:808 - "*.*" Line 115. + can not have such operands in this context." alternative währe für mich nur eine umsetzung von integer auf std_logic_vector, habe aber 19 bit counter. schon mal im vorraus danke steffen
Schwer zu sagen was bei dir schief geht, wenn du keinen Code anhängst. Was für Bibliothelken hast du eingebunden? Gruß Jörn
mit use ieee.std_logic_arith.all; solltest du auch mit bit-typen rechnen (also auch addieren) koennen ...
wäre das nicht was ? man muss nur 1 Konstante ändern, um die Bitbreite des Counters zu ändern use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; ... constant BIT_WIDTH : integer := 8; signal cnt_q : integer range 0 to 2**BIT_WIDTH-1; process(reset, clk) begin if reset='1' then cnt_q <= 0; elsif rising_edge(clk) then if cnt_q = 0 then cnt_q <= 2**BIT_WIDTH-1; else cnt_q <= cnt_q -1; ... end if; end if; end process;
Hallo und Danke erstmal, so richtig befriedigt hat mich das leider noch nicht, also hier mein Problem. Ich habe ein Cesys USB2FPGA mit einem Spartan 2 drauf(www.cesys.de). Habe 1024 kb Ram und nen Usb2.0 port. Der Counter soll halt dazu benutzt werden die Adressen im Ram hochzuzählen, daher std_logic_vector. Bibliotheken hab ich: use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; und geh echt am stock, auch bei allen Beispielen läuft ein Bit Counter, aber ich kriegs net synthetisiert. Laut VHDL'93 Spex geht das nämlich auch nicht, baut der dann nen 19 Bit-Volladierer auf, wenn das gehen soll, dann wird nämlich mein Platz langsam etwas eng. Gruß nSteffen
>und geh echt am stock, auch bei allen Beispielen läuft ein Bit Counter, >aber ich kriegs net synthetisiert. Das gibt's nicht, das muss funktionieren, solange die Bibliotheken einbindest. Poste doch mal den Code der nicht geht.
Hallo hier die auszüge die net gehe: signal ram_adr : std_ulogic_vector(18 downto 0); ... Process(sclk,reset) begin if ... elsif rising_edge(sclk) then ... ram_adr<=ram_adr +1; ... end if;
Hallo na wenns nur daran liegt. Is ja aber komisch, std_logic ist ja auch nur ein subtype von std_ulogic, manchmal ist so was ganz schön frustrierend. aber auf jeden Fall erstmal Vielen Dank
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.