[an error occurred while processing this directive]
|
PCI контроллер на Verilog
assign pci_ad = pci_ad_oe ? pci_dat_out : 32'bZ;
assign pci_devsel_l = dts_oe ? devsel_l : 1'bZ;
assign pci_trdy_l = dts_oe ? trdy_l : 1'bZ;
assign pci_stop_l = dts_oe ? stop_l : 1'bZ;
assign pci_par = par_oe ? par_out : 1'bZ; // The parity bit the target drives
assign bkend_dat = bk_oe ? pci_ad : 32'bZ;
assign be_l = be_oe ? pci_cbe_l: 4'bZ;
assign pci_inta_l = bkend_int_l; // asynchronous input is passed through
assign bkend_ad = pci_addr[19:0];
Или на VHDL
IB7: IBUF port map(I => DEVSELn_p, O => DEVSELnil); -- Direct Input
IFF7: FDPE port map(C=> CLKi, D => DEVSELnil, Q => DEVSELnid, CE=>Log1, PRE=>RESETi); -- Clocked Input
OFF7: FDPE port map(C=> CLKi, D => NEW_DEVSELno, Q => DEVSELno,CE=>Log1,PRE =>RESETi); -- Clocked Input
OB7: OBUFT port map(I=> DEVSELno, O => DEVSELn_p, T => OT_DEVSEL);
ASIO7: DEVSELni <= DEVSELnil;
На VHDL уже проверено и работает в железе, на Verilog пока еще нет, но будет.
Все неиспользуемые сигналы (даже например GNT и REG - которые в слейве не нужны) на PCI должны выходить подтянутыми к 1.
E-mail: info@telesys.ru