Forum: FPGA, VHDL & Co. VHDL Addierer: Seltsames verhalten


von Peter K. (peterka2000)


Angehängte Dateien:

Lesenswert?

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

von Peter K. (peterka2000)


Lesenswert?

Ach, danke, hat sich erledigt (denke ich):
Hab mal wieder die 0 vergessen

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Peter K. schrieb:
> 174 + 87 (=incr_in) söllte bei 8 Bit ja eigentlich 6 sein, oder?
174 + 87  = 261
261 % 256 = 261 - 256 = 5

Peter K. schrieb:
> Hab mal wieder die 0 vergessen
So kann man es auf die handwerkliche Art auch sagen...  ;-)

von Peter K. (peterka2000)


Lesenswert?

Lothar Miller schrieb:
> Peter K. schrieb:
>> Hab mal wieder die 0 vergessen
> So kann man es auf die handwerkliche Art auch sagen...  ;-)
Genau. Ich wollte schon fast schreiben, dass ich den FPGA programmiere.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Peter K. schrieb:
> den FPGA
"Den" Array?  ;-)

von Schlumpf (Gast)


Lesenswert?

Lothar Miller schrieb:
> Peter K. schrieb:
> den FPGA
>
> "Den" Array?  ;-)

Lt. Duden sowohl als Neutrum als auch maskulin zulässig

von uwe (Gast)


Lesenswert?

Jaja immer diese Feld programmierbaren Gatterfelder

von Peter K. (peterka2000)


Lesenswert?

So, ich muss doch noch mal stören:
Das Ausgangssignal (MSB von out_out) hat ca. 100ns Jitter. Das sollte 
IMHO eigentlich nicht so sein, gibt es da eine klar erkennbare Ursache?
Woher kann so was überhaupt kommen?

: Bearbeitet durch User
von Duke Scarring (Gast)


Lesenswert?

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

von Peter K. (peterka2000)


Lesenswert?

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

von Lattice User (Gast)


Lesenswert?

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.

von Peter K. (peterka2000)


Lesenswert?

Wie haben das Analog Devices und Co gelöst? Oder ist das bei denen auch 
so? Ist mein erstes mal DDS.

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

: Bearbeitet durch User
von Lattice User (Gast)


Lesenswert?

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.

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
Noch kein Account? Hier anmelden.