www.mikrocontroller.net

Forum: FPGA, VHDL & Co. ChipScope zeigt komischen Counter


Autor: Samuel (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe folgenden output eines counters in chipscope. Warum sieht der 
so komisch aus?
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.STD_LOGIC_ARITH.all;
use IEEE.STD_LOGIC_UNSIGNED.all;

entity doedel is
port (
    CLK1_FB     : in  std_logic;
    -- deleted
);
end doedel ;

architecture a of doedel is

signal counter : std_logic_vector(15 downto 0);


begin

  registers : process (CLK1_FB, RESETl)
  begin
    if RESETl = '0' then
    counter <= (others => '0');
    
   elsif CLK1_FB = '1' and CLK1_FB'event then
  
    --counter <= std_logic_vector(unsigned(counter) + 1);
    counter <= counter + 1;
   end if;
  end process;
end a;


Kann das ein Abtastproblem durch die chipscope clock sein? Eigentlich 
müssten doch die counter bits alternierend ca 50%:50% sein und nicht nur 
peeks.

???

Autor: Michael Sauron (Firma: www.das-labor.org) (laborsauron)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>
 if RESETl = '0' then
    counter <= (others => '0');
> 

Wo kommt denn dein Reset1 her ?
Und willst du wirklich einen Reset bei '0' ? Üblicherweise macht man das 
bei '1'

Wie verhält sich denn eine Simulation ?

Ausserdem beschreibst du einen Asynchronen Reset. Meistens wirst du mit 
einem Synchronen Reset glücklicher.

>
 registers : process (CLK1_FB)
  begin
    
   if CLK1_FB = '1' and CLK1_FB'event then
    if RESETl = '1' then
    counter <= (others => '0');
    else  
     counter <= counter + 1;
   end if;
  end process;
> 

Ausserdem hast du einen undefinierten Startwert
Du kannst den Startwert 0 auch ohne Reset vorgeben:
>

signal counter : std_logic_vector(15 downto 0):= (others => '0');
> 

Autor: Samuel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Reset kommt von aussen und funktioniert.
Der Zähler zählt ja auch ohne Reset. Es geht mit um das komische 
Verhalten des Zählers. Es könnte aber sein, daß der nicht korrekt 
implementiert ist, weil ich nicht alle Bits abfrage und die Synthese 
möglicherweise etwas anderes gebaut hat. Ich checke das gerade.

Autor: Samuel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tja, in der Tat hat sich die Synthese einen Teil des Counters gespart 
und eine Art SR realisiert. Wenn man mehr counter-signale herausführt, 
sieht chipscope auch einen.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Tja, in der Tat hat sich die Synthese einen Teil des Counters gespart
> und eine Art SR realisiert.
Wenn überhaupt kein Signal des Couters nach aussen geführt und/oder 
verwendet wird, hätte die Synthese den Counter komplett in die Tonne 
hauen können... ;-)

Autor: Thorsten S. (thosch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

wie die Signalnamen (alle mit _CY am Ende) vermuten lassen,
handelt es sich nicht um den Zählerausgang, sondern um die Carry-Chain 
des Zählers!

Die Carry-Signale bewirken jeweis das Umschalten (Toggle)
des zugehörigen Zähler-Bits.

Betrachtet man die Signale als Clock-Enables für Toggle-Flipflops,
kommt exakt der normale Binärzählerablauf raus...

Gruß,
Thorsten

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hätte ich jetzt auch gesagt. Wenn man die toogle bits gedanklich 
integriert, ergibt sich ein Zähler.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.