VHDL Addierer: Seltsames verhalten

OP #4006465
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
Angehängte Dateien:
Gast #4010520
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.

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