Forum Elektroniki Praktycznej Strona Główna

Elektronika PraktycznaElektronika Praktyczna    FAQFAQ    SzukajSzukaj    StatystykiStatystyki    UżytkownicyUżytkownicy    GrupyGrupy    RangiRangi
RejestracjaRejestracja    ProfilProfil    Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości    ZalogujZaloguj
Użytkownik:    Hasło:      Zaloguj mnie automatycznie przy każdej wizycie    

Poprzedni temat «» Następny temat
VHDL problem z pętlą
Autor Wiadomość
ziemniak121


Dołączył: 10 Mar 2010
Posty: 1
Skąd: GDA
Wysłany: 10-03-2010, 16:29   VHDL problem z pętlą

Witam

Mam taki problem, iż musiałem stworzyć koder oraz dekoder o pewnych parametrach co jest rzeczą mało ważną. Wszystko pięknie śmiga ale, potrzebuję zrobić to tak aby wszystkie wartości 12 bitowe zostały wrzucone i zakodowane. Pytanie jak to zrobić :) na pewno jakoś trzeba by to zrobić pętlą, czy ma ktoś jakiś pomysł ? Chodzi o to, że na wejsciu mam wpisany aktualnie 111011100111, a chciałbym żeby ten program zrobił to dla wartości od 111111111111 do 000000000000.

Kod wygląda następująco:

library ieee;
use ieee.std_logic_1164.all;


entity koder is
PORT(
data :in std_logic_vector(11 downto 0):="111011100111";
dataq :out std_logic_vector(7 downto 0)
);
end koder;

architecture rtl of koder is

begin
process(data)
begin

if data(10).
.
.
.
.
.

end if;

end process;
end rtl;
 
     
Piotr Czak 
Pietia


Specjalizacja: FPGA, VHDL, up, elektronika, troche C++
Poland

Wiek: 27
Dołączył: 01 Lut 2009
Posty: 20
Skąd: Wejherowo
Wysłany: 16-03-2010, 14:53   

Witam,

rozumiem, że chodzi Ci o napisanie TestBencha który będzie generować wartości dla data w podanym zakresie? Jeśli tak to:

Kod:

library ieee;
use ieee.std_logic_1164.all;
use IEEE.STD_LOGIC_unsigned.all;

entity koder_tb is
end koder_tb;

architecture sim of koder_tb is
component koder is
PORT(
data :in std_logic_vector(11 downto 0):="111011100111";
dataq :out std_logic_vector(7 downto 0)
);
end component;

signal S_data : std_logic_vector(11 downto 0) := (others => '0');
signal S_dataq : std_logic_vector(7 downto 0)
begin
U0 : koder
PORT map(
data => S_data,
dataq => S_dataq
);

process
begin
S_data <= S_data + "1";
wait for 100ns;
end process;
end sim;


mam nadzieję że nic nie pomyliłem.

Pozdrawiam
Piotr
_________________
Pietia
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group