Jak zaimplementować dwukierunkową bramę w VHDL dla 8-bitowego portu w CPLD?
Brama w VHDL
From: "Maciej" <iksmada_at_nospam_friko4.onet.pl>
Subject: Brama w VHDL
Date: Mon, 1 Jul 2002 12:04:25 +0200
Witam!
Mam problem: jak opisać w VHDL bramę dwukierunkową. Dajmy na to, że mamy
układ CPLD, który ma realizować jeden 8-bitowy port wyjściowy i wejściowy:
D(7:0) - port dwukierunkowy, A(7:0) - port wyjściowy, B(7:0) - port
wejściowy, WR - sygnał zapisu, RD - sygnał odczytu. Jak wyglądałby listing?
Wielkie dzięki, pozdrawiam
Maciej
From: "Juliusz" <jul_at_nospam_fom.pl>
Subject: Re: Brama w VHDL
Date: Mon, 1 Jul 2002 13:48:43 +0200
"Maciej" <iksmada_at_nospam_friko4.onet.pl> wrote in message
news:afp9nq$jbv$1_at_nospam_news.onet.pl...
Witam!
Mam problem: jak opisać w VHDL bramę dwukierunkową. Dajmy na to, że
mamy
układ CPLD, który ma realizować jeden 8-bitowy port wyjściowy i wejściowy:
D(7:0) - port dwukierunkowy, A(7:0) - port wyjściowy, B(7:0) - port
wejściowy, WR - sygnał zapisu, RD - sygnał odczytu. Jak wyglądałby
listing?
Wielkie dzięki, pozdrawiam
Maciej
deklarujesz sobie
signal data_in :std_logic_vector(7 downto 0);
signal data out :jw ......
w entity deklarujesz data_io :inout std_logic_vector(7 downto 0);
i teraz tak
data_in <= data_io;
data_io <= data_out when rd_n='0' else "ZZZZZZZZ';
lub dla wr_n stawiasz proces gdzie zegarem jest narastajace zbocze wr_n
(wr_n'event and wr_n='1')
czaisz ?
Juliusz
From: "Maciej" <iksmada_at_nospam_friko4.onet.pl>
Subject: Re: Brama w VHDL
Date: Mon, 1 Jul 2002 14:48:17 +0200
Wielkie dzięki. W moim toku myślenia brakowało świadomości, że jest coś
takiego jak 'Z'. "Znam" vhdl od mniej więcej 4 godzin i stąd takie banalne
problemy.
Pozdrawiam
Maciej
"Juliusz" <jul_at_nospam_fom.pl> wrote in message news:afpfc1$m8v$1_at_nospam_news.tpi.pl...
"Maciej" <iksmada_at_nospam_friko4.onet.pl> wrote in message
news:afp9nq$jbv$1_at_nospam_news.onet.pl...
Witam!
Mam problem: jak opisać w VHDL bramę dwukierunkową. Dajmy na to, że
mamy
układ CPLD, który ma realizować jeden 8-bitowy port wyjściowy i
wejściowy:
D(7:0) - port dwukierunkowy, A(7:0) - port wyjściowy, B(7:0) - port
wejściowy, WR - sygnał zapisu, RD - sygnał odczytu. Jak wyglądałby
listing?
Wielkie dzięki, pozdrawiam
Maciej
deklarujesz sobie
signal data_in :std_logic_vector(7 downto 0);
signal data out :jw ......
w entity deklarujesz data_io :inout std_logic_vector(7 downto 0);
i teraz tak
data_in <= data_io;
data_io <= data_out when rd_n='0' else "ZZZZZZZZ';
lub dla wr_n stawiasz proces gdzie zegarem jest narastajace zbocze wr_n
(wr_n'event and wr_n='1')
czaisz ?
Juliusz