VHDL - obousmerna sbernice
Milan
milger@pobox.sk
Pondělí Duben 24 13:53:29 CEST 2006
Pochopil som dobre , nefuguje to alebo co vlasne odomna chces?
To co by som ti vytkol je:
- v procese ti chybaju vsetky signaly od ktorych je stav klopaku zavisly
pr_1: process (E)
pr_1: process (E,WR,i)
- WebPack umoznuje pisat hodiny prehladnejsie /kozmetika/
if (E'event and E = '0') then
if rising_edge (E) then
- toho varovania sa zbavis ak za def. vkladanych komponentov /***/ vlozis:
attribute box_type : string;
attribute box_type of IBUF : component is "black_box";
attribute box_type of OBUFE : component is "black_box";
Je to len varovanie ze vkladane komponenty nemaju....ani presne neviem
co
- signal "en" bude realizovany iba kombinacnou logikou. V jednoduchom CPLD
to nevadi, pri vacsich FPGA by si mal problem, chcelo by to hodiny.
- mozno som daco prehliadol a daco nedomyslel....
Ak si tie komponenty spravne pochopil, tak vo svojej inej zdrojovke mozes
kludne vlozit komponent "jednoduchy_obvod" a pripojit sa na 3 signaly
D,RW,E.
Je to vlasne sposob hierarchickeho navrhu.
Milan
----- Original Message -----
From: "Petr Sremr" <petr.sremr@hwserver.cz>
To: "HW-news" <hw-list@list.hw.cz>
Sent: Monday, April 24, 2006 12:57 PM
Subject: Re: VHDL - obousmerna sbernice
Zdravim,
> Doporucujem vo vnutri pracovat s 2 nezavilymi zbernicami,
> vstupna - rozvedie vstupne data do reg. /zapisovat WR najlepsie synchronne
> ak sa da/
> vystupna - vpodstate mux. na zaklade adresy
>
> Obe zbernice spojit na pine pomocou vlozenych komponentov
> IBUF - pre vstupnu
> OBUFT /OBUFE/ - pre vystupnu trojstavovu, na tomto mieste priamo riadit 3
> stav /signalom RD&CS/
Tak jsem to nejak takto zkusil. Ty komponenty jsou super.
Tady je muj pokus pro jednobitovy pripad. Prosim, muzete se podivat, kde
delam chyby. S VHDL zacinam, a zrejme mi porad unikaji zakladni
principy. Mimo jine, dostavam tyto upozrneni:
WARNING:Xst:766 - D:/Projects/Logic_01/jspp/jspp1/jspp1.vhd (Line 56).
Generating a Black Box for component <obufe>.
WARNING:Xst:766 - D:/Projects/Logic_01/jspp/jspp1/jspp1.vhd (Line 60).
Generating a Black Box for component <ibuf>.
WARNING:Xst:819 - D:/Projects/Logic_01/jspp/jspp1/jspp1.vhd (Line 64).
The following signals are missing in the process sens
itivity list: rw.
------------------------------------------------------------------------
--
-- Zapis: Cteni:
-- | |
-- |-\________/-- |-------------
-- RW |=============> RW |=============>
-- | |
-- |----\___/---- |----\___/----
-- E |=============> E |=============>
-- | |
-- |xxxWWWxxxxxxx |xxxxxWWWxxxxx
-- Dx |=============> Dx |=============>
--
-- po celou dobu je
-- na sbernici 3.stav
--
-- x ... lib. data x ... 3.stav
-- W ... platna data W ... platna data
-- (strobovana sest. (sbernice aktivni)
-- hranou)
--
------------------------------------------------------------------------
-- http://toolbox.xilinx.com/docsan/xilinx5/data/docs/lib/lib0318_302.html
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity jednoduchy_obvod is
Port (D: inout STD_LOGIC;
RW: in STD_LOGIC;
E: in STD_LOGIC);
end jednoduchy_obvod;
architecture moje_architektura of jednoduchy_obvod is
component OBUFE
port (O : out STD_LOGIC;
E : in STD_LOGIC;
I : in STD_LOGIC);
end component;
component IBUF
port (O : out STD_LOGIC;
I : in STD_LOGIC);
end component;
***
signal r: STD_LOGIC; -- registr, ktery. ctu/zapisuju
signal en: STD_LOGIC;
signal i: STD_LOGIC;
begin
output : OBUFE
port map (O => D,
E => en,
I => r);
input : IBUF
port map (O => i,
I => D);
pr_1: process (E)
begin
if (E'event and E = '0') then
if (RW = '0') then
r <= i;
end if;
end if;
en <= RW and not E;
end process;
end moje_architektura;
--
Petr Sremr
HW group
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list@list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
__________ Informacia od NOD32 1.1504 (20060424) __________
Tato sprava bola preverena antivirusovym systemom NOD32.
http://www.eset.sk
Další informace o konferenci Hw-list