eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaVHDL - typy. Problem :(VHDL - typy. Problem :(
  • Data: 2011-05-26 19:20:54
    Temat: VHDL - typy. Problem :(
    Od: Piotr <b...@b...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Witam!

    Mam straszny problem z VHDL'em. Potrzebuje połączyć pewne klocki.
    Już na samym początku nie wiem o co chodzi z tym:

    -- ***************************************************8

    PACKAGE eight_bit_int IS
    SUBTYPE BYTE IS INTEGER RANGE -128 TO 127;
    TYPE ARRAY_BYTE IS ARRAY (0 TO 3) OF BYTE;
    END eight_bit_int;

    LIBRARY work;
    USE work.eight_bit_int.ALL;

    LIBRARY ieee;
    USE ieee.std_logic_1164.ALL;
    USE ieee.std_logic_arith.ALL;

    ENTITY CORDIC IS
    PORT (Clk_50MHz : IN STD_LOGIC;
    x_in, y_in : IN BYTE;
    r, phi, eps : OUT BYTE);
    END CORDIC;


    -- **************************************************


    Niby rozumiem, ale dlaczego jak zamieniam to na schemat to wejście i
    wyjście to np: x_in(0:6). Dlaczego skoro jest od -128 do 127 to ma tylko
    7 bitów, a nie 8???! Przecież to jest 255 wartości...


    Czy mógłby mi ktoś podpowiedzieć jak to zrobić by połączyć to z układem,
    który ma na wyjściu STD_LOGIC_VECTOR(7 DOWNTO 0).? Mogę zmienić wyjście
    ewentualnie w tamtym układzie.

    Jednak ten układ łączy się z układem który na wejściu ma IN(7:0). Mam
    problem z tym typem BYTE. Najchętniej bym go zamienił na
    STD_LOGIC_VECTOR. Gdy próbuje zamienić i zamiast BYTE dać
    STD_VECTOR_LOGIC(0 TO 7) dla wejść i wyjść. Następnie sygnały dać
    STD_VECTOR_LOGIC (0 TO 3). To mam masę błędów np. r <= x(3) jest zle.


    Proszę o jakas podpowiedź, bo jestem początkujący. Nie idę na łatwiznę.
    Już trochę zrobiłem, najgorzej, że muszę to co sam napisałem połączyć z
    tym kodem.

    Prosze o pomoc.


    Wklejam cały kod tego układu, jeśli ma to znaczenie:


    PACKAGE eight_bit_int IS
    SUBTYPE BYTE IS INTEGER RANGE -128 TO 127;
    TYPE ARRAY_BYTE IS ARRAY (0 TO 3) OF BYTE;
    END eight_bit_int;

    LIBRARY work;
    USE work.eight_bit_int.ALL;

    LIBRARY ieee;
    USE ieee.std_logic_1164.ALL;
    USE ieee.std_logic_arith.ALL;

    ENTITY CORDIC IS
    PORT (Clk_50MHz : IN STD_LOGIC;
    x_in, y_in : IN BYTE;
    r, phi, eps : OUT BYTE);
    END CORDIC;

    ARCHITECTURE Behavioral OF CORDIC IS
    SIGNAL x, y, z : ARRAY_BYTE;
    BEGIN

    PROCESS
    BEGIN
    WAIT UNTIL Clk_50MHz = '1';
    r <= x(3);
    phi <= z(3);
    eps <= y(3);

    IF y(2) > 0 THEN
    x(3) <= x(2) + y(2) /4;
    y(3) <= y(2) - x(2) /4;
    z(3) <= z(2) + 14;
    ELSE
    x(3) <= x(2) - y(2) /4;
    y(3) <= y(2) + x(2) /4;
    z(3) <= z(2) - 14;
    END IF;

    IF y(1) > 0 THEN
    x(2) <= x(1) + y(1) /2;
    y(2) <= y(1) - x(1) /2;
    z(2) <= z(1) + 26;
    ELSE
    x(2) <= x(1) - y(1) /2;
    y(2) <= y(1) + x(1) /2;
    z(2) <= z(1) - 26;
    END IF;

    IF y(0) > 0 THEN
    x(1) <= x(0) + y(0);
    y(1) <= y(0) - x(0);
    z(1) <= z(0) + 45;
    ELSE
    x(1) <= x(0) - y(0);
    y(1) <= y(0) + x(0);
    z(1) <= z(0) - 45;
    END IF;

    IF x_in > 0 THEN
    x(0) <= x_in;
    y(0) <= y_in;
    z(0) <= 0;
    ELSIF y_in > 0 THEN
    x(0) <= y_in;
    y(0) <= - x_in;
    z(0) <= 90;
    ELSE
    x(0) <= - y_in;
    y(0) <= x_in;
    z(0) <= - 90;
    END IF;
    END PROCESS;

    END Behavioral;

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: