Operiert man mit Indexes, Adressen, etc. so ist dies am einfachsten mit dez. Zahlen:12 + 100 = 112;
Das selbe gilt auch für die Zähler.
VHDL hat dafür 3 Types: integer, unsigned, natural .
- Integer
signal addr: integer range 0 to 15; addr <= to_integer(value_a);
Adresse kann Werte von 0, 1, 2, … 15 annehmen.
cnt: integer range 0 to 3;
Der Zähler zählt 0, 1, 2, 3 und beginnt wieder bei 0.
.
2. Unsigned
-- 5 Werte signal count: unsigned(4 downto 0); signal value_a: unsigned(15 downto 0); signal value_b: unsigned(15 downto 0);
Der Zähler kann die Werte 4, 3, 2, 1, und 0 annahmen. Er besitzt 5 Zustände.
value_b <= to_unsigned(max_value, 4); ????? not shure
.
3. Natural
CONSTANT max_value: natural := 200; signal s_reg_index: natural; signal s_next_reg_indes: natural;
s_next_reg_index := s_reg_index + 1;
Zuweisung braucht ein : vor dem = line_cnt := line_cnt + 1; reset := 1;
…