VHDL Addierer: Seltsames verhalten

OP #4006465
Guten Morgen Community,

es geht eigentlich nur um folgenden Codeteil:
1
entity adder is
2
  port(
3
    debug:    OUT  STD_LOGIC;
4
    clk:      IN   STD_LOGIC;
5
    reg_in:    IN    UNSIGNED(7 downto 0);
6
    incr_in:    IN    UNSIGNED(7 downto 0);
7
    out_out:    OUT  UNSIGNED(7 downto 0)
8
  );
9
end adder;
10

11
architecture Behavioral of adder is
12
  signal temp:  UNSIGNED(8 downto 0) := (others => '0');
13
begin
14

15
  process(clk, reg_in, incr_in)
16
  begin
17
    if falling_edge(clk) then
18
      temp <= ('0' & reg_in) + ('0' & incr_in);
19
    end if;
20
  end process;
21
  
22
  out_out <= temp(7 downto 0);
23
  debug <= temp(8);
24

25
end Behavioral;
Der gesamte Code ist noch mal im Anhang. Das soll mal was DDS-ähnliches 
werden.

Wenn ich das jetzt so wie es ist simuliere, ist das Ergebnis nach einen 
Overflow der 8 Bit um genau 1 LSB kleiner als es sein söllte, das ist 
auch noch im Anhang.
174 + 87 (=incr_in) söllte bei 8 Bit ja eigentlich 6 sein, oder?

So wie ich es vermute ist das lediglich ein logisches Problem, mir 
mangelt es aber gerade an Denkvermögen.

Ich verwende übrigens die ISE 14.7, nt64
Angehängte Dateien:
Gast
Peter K. schrieb:
> Das Ausgangssignal (MSB von out_out) hat ca. 100ns Jitter. Das sollte
> IMHO eigentlich nicht so sein, gibt es da eine klar erkennbare Ursache?
Welche Frequenz erzeugst Du Dir? Ist die ein ganzzahliger Bruchteil des 
Systemtaktes?

Duke
OP
FPGA läuft mit 50MHz, Increment ist auf 85899346 bei 32 Bit gesetzt, 
also 1 MHz.

Bevor ihr aber weiter Kopf zerbrecht: Es kann auch einfach mein Scope 
sein. UNI-Trend, das sollte fürs relativ viel sagen. Ich hänge das ganze 
morgen nochmal an ein Agilent, ähh Keysight 3000
Gast
Bei Erzeugung eines Taktes auf diese Art hast du grundsätzlich einen 
Jitter von einer Clockperiode des Ausgangstaktes.

Bei deiner obigen Simulation sind das 80 nsec.
Gast
Peter K. schrieb:
> Wie haben das Analog Devices und Co gelöst? Oder ist das bei denen auch
> so? Ist mein erstes mal DDS.

Diese erzeugen einen Sinus, so direkt sichtbar ist der Jitter wenn du 
ein Rechteck (aus MSB) erzeugt.
Bei Analog Devices findest du einige Literatur zu dem Thema.

>
> Ich habe aber auch am 50MHz-Eingang diesen Jitter gemessen, ich warte
> mal bis morgen ab.

Wenn es das Signal vom onboard Oscillator ist,
taugt eventuell der Trigger deines Scopes nichts.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 11 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.