]> cvs.zerfleddert.de Git - raggedstone/blame - dhwk/source/parity_out.vhd
move address register
[raggedstone] / dhwk / source / parity_out.vhd
CommitLineData
377c0242 1-- J.STELZNER\r
2-- INFORMATIK-3 LABOR\r
3-- 23.08.2006\r
4-- File: PARITY_OUT.VHD\r
5\r
6library ieee;\r
7use ieee.std_logic_1164.all;\r
8\r
9entity PARITY_OUT is\r
10 port(\r
11 PCI_CLOCK :in std_logic;\r
12 PCI_RSTn :in std_logic;\r
13 PAR_IN :in std_logic_vector ( 2 downto 0); \r
14 PAR_REG :in std_logic;\r
15 SERR_CHECK :in std_logic; \r
16 PERR_CHECK :in std_logic;\r
17 OE_PCI_PAR :in std_logic;\r
18 OE_PCI_PERR :in std_logic;\r
19 PA_ER_RE :in std_logic;\r
20 SERR_ENA :in std_logic;\r
21 PCI_PAR_IN :in std_logic;\r
22 PERR :out std_logic;\r
23 SERR :out std_logic;\r
24 PCI_PERRn :out std_logic; -- s/t/s\r
25 PCI_SERRn :out std_logic; -- o/d\r
26 PCI_PAR :out std_logic -- t/s\r
27 );\r
28end entity PARITY_OUT; \r
29\r
30architecture PARITY_OUT_DESIGN of PARITY_OUT is\r
31\r
32 signal PAR :std_logic;\r
33 signal PAR_FF :std_logic;\r
34 signal SERR_FF :std_logic;\r
35 signal PERR_FF :std_logic;\r
36 \r
37begin\r
38\r
39 PAR <= ( PAR_IN(2) xor PAR_IN(1) xor PAR_IN(0) ); \r
40\r
41 process (PCI_CLOCK, PCI_RSTn) \r
42 begin\r
43 if PCI_RSTn = '0' then PAR_FF <= '0';\r
44 PERR_FF <= '0';\r
45 SERR_FF <= '0'; \r
46\r
47 elsif (PCI_CLOCK'event and PCI_CLOCK = '1') then\r
48\r
49 PAR_FF <= PAR;\r
50 SERR_FF <= ((PCI_PAR_IN xor PAR) and SERR_CHECK) and PA_ER_RE and SERR_ENA and (not SERR_FF); \r
51 PERR_FF <= ((PCI_PAR_IN xor PAR) and PERR_CHECK) and (not PERR_FF); \r
52\r
53 end if;\r
54 end process; \r
55\r
56 SERR <= SERR_FF;\r
57 PERR <= PERR_FF;\r
58\r
59 PCI_PAR <= PAR_FF when OE_PCI_PAR = '1' else 'Z' ; \r
60 PCI_SERRn <= '0' when SERR_FF = '1' else 'Z' ;\r
61 PCI_PERRn <= not PERR_FF when OE_PCI_PERR = '1' and PA_ER_RE = '1' else 'Z' ;\r
62\r
63end architecture PARITY_OUT_DESIGN;\r
64\r
65\r
66\r
Impressum, Datenschutz