OpenCores
URL https://opencores.org/ocsvn/ahbmaster/ahbmaster/trunk

Subversion Repositories ahbmaster

[/] [ahbmaster/] [trunk/] [test79_AHBmaster/] [component/] [work/] [top/] [CoreUARTapb_0/] [rtl/] [vhdl/] [amba_bfm/] [bfm_ahbtoapb.vhd] - Blame information for rev 3

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 uson
-- Actel Corporation Proprietary and Confidential
2
-- Copyright 2008 Actel Corporation.  All rights reserved.
3
-- ANY USE OR REDISTRIBUTION IN PART OR IN WHOLE MUST BE HANDLED IN 
4
-- ACCORDANCE WITH THE ACTEL LICENSE AGREEMENT AND MUST BE APPROVED 
5
-- IN ADVANCE IN WRITING.  
6
-- Revision Information:
7
-- SVN Revision Information:
8
-- SVN $Revision: 6419 $
9
-- SVN $Date: 2009-02-04 04:34:22 -0800 (Wed, 04 Feb 2009) $
10
library Ieee;
11
use ieee.stD_LogiC_1164.all;
12
use ieEE.NUMeric_Std.all;
13
use Work.BFM_misC.all;
14
use work.bfm_TEXtio.all;
15
use Work.top_CoreUARTapb_0_bfM_packAGE.all;
16
entity top_CoreUARTapb_0_BFMA1i1lI is
17
generic (tpD: IntegER range 0 to 1000 := 1); port (Hclk: in std_LOGic;
18
HreseTN: in std_LOgic;
19
hSEL: in STd_lOGIc;
20
hwRITe: in sTD_logIC;
21
HaddR: in STD_loGIC_vecTOr(31 downto 0);
22
hwDATa: in STD_logIC_veCTOr(31 downto 0);
23
HRdata: out STd_loGIC_veCTOr(31 downto 0);
24
HreaDYIN: in Std_LOGic;
25
hrEADyout: out Std_LOGic;
26
hTRAns: in std_LOGic_VECtor(1 downto 0);
27
hSIZe: in std_LOgic_VEctoR(2 downto 0);
28
HbursT: in std_LOGic_VECtor(2 downto 0);
29
hMAStlocK: in std_LOGic;
30
hPROt: in std_LOgic_VEctoR(3 downto 0);
31
Hresp: out sTD_logIC;
32
pseL: out std_LOGic_vECTor(15 downto 0);
33
pADDr: out STd_loGIC_veCTOr(31 downto 0);
34
PwriTE: out sTD_logIC;
35
penABLe: out STd_loGIC;
36
PWData: out STD_logIC_veCTOr(31 downto 0);
37
PRdatA: in std_LOGic_vECTor(31 downto 0);
38
PreadY: in std_LOgic;
39
PSLverr: in Std_LOGIc);
40
end top_CoreUARTapb_0_BFMA1i1lI;
41
 
42
architecture BFMA1IO1ol of top_CoreUARTapb_0_BFMA1i1lI is
43
 
44
type BFMA1ol1oL is (BFMA1LL1ol,BFMA1il1OL,BFMA1oI1Ol,BFMA1Li1oL);
45
 
46
signal BFMA1II1ol: BFMA1ol1oL;
47
 
48
signal BFMA1O01ol: STD_loGIC;
49
 
50
signal BFMA1L01ol: STd_lOGIc;
51
 
52
signal BFMA1I01ol: Std_lOGIc_vECTor(15 downto 0);
53
 
54
signal BFMA1O11ol: stD_LogiC_VectOR(31 downto 0);
55
 
56
signal BFMA1l11OL: stD_logiC;
57
 
58
signal BFMA1I11oL: STd_loGIC;
59
 
60
signal BFMA1oOOLl: stD_LogiC_VectOR(31 downto 0);
61
 
62
signal BFMA1LOOll: std_LOGic_vECtor(31 downto 0);
63
 
64
signal BFMA1iOOLl: std_LOGic;
65
 
66
signal BFMA1olOLL: STd_loGIC;
67
 
68
constant BFMA1ol00: tIME := tpD*1 ns;
69
 
70
begin
71
process (hclk,HResetN)
72
begin
73
if hrESEtn = '0' then
74
BFMA1II1ol <= BFMA1LL1ol;
75
BFMA1o01ol <= '1';
76
BFMA1O11ol <= ( others => '0');
77
BFMA1Oooll <= ( others => '0');
78
BFMA1l11OL <= '0';
79
BFMA1i11OL <= '0';
80
BFMA1L01ol <= '0';
81
BFMA1iooLL <= '0';
82
BFMA1Ololl <= '0';
83
elsif hCLK = '1' and HClk'EVEnt then
84
BFMA1l01Ol <= '0';
85
BFMA1O01ol <= '0';
86
BFMA1IOOll <= '0';
87
case BFMA1ii1oL is
88
when BFMA1LL1ol =>
89
if Hsel = '1' and hreaDYIn = '1'
90
and HtraNS(1) = '1' then
91
BFMA1Ii1ol <= BFMA1Il1oL;
92
BFMA1o11OL <= HADdr;
93
BFMA1L11ol <= HWrite;
94
BFMA1I11ol <= '0';
95
BFMA1IOoll <= HWRite;
96
BFMA1oloLL <= '1';
97
else
98
BFMA1o01OL <= '1';
99
end if;
100
when BFMA1il1OL =>
101
BFMA1I11ol <= '1';
102
BFMA1iI1Ol <= BFMA1OI1ol;
103
when BFMA1oI1Ol =>
104
if PREady = '1' then
105
BFMA1I11ol <= '0';
106
BFMA1Ololl <= '0';
107
if PSLverr = '0' then
108
BFMA1II1ol <= BFMA1ll1OL;
109
if hsel = '1' and HREadyiN = '1'
110
and HTRans(1) = '1' then
111
BFMA1ii1oL <= BFMA1iL1Ol;
112
BFMA1o11oL <= haDDR;
113
BFMA1l11OL <= HWrite;
114
BFMA1iOOLl <= hWRIte;
115
BFMA1oLOLl <= '1';
116
end if;
117
else
118
BFMA1l01OL <= '1';
119
BFMA1ii1OL <= BFMA1li1OL;
120
end if;
121
end if;
122
when BFMA1li1OL =>
123
BFMA1L01ol <= '1';
124
BFMA1o01Ol <= '1';
125
BFMA1Ii1ol <= BFMA1lL1Ol;
126
end case;
127
if BFMA1ioolL = '1' then
128
BFMA1oOOLl <= HwdatA;
129
end if;
130
end if;
131
end process;
132
process (BFMA1o11Ol,BFMA1oLOLl)
133
begin
134
BFMA1I01ol <= ( others => '0');
135
if BFMA1olOLL = '1' then
136
for BFMA1I0Ii in 0 to 15
137
loop
138
BFMA1I01oL(BFMA1I0Ii) <= TO_std_LOgic(TO_intEGEr((TO_unsIGNEd(BFMA1o11OL(27 downto 24)))) = BFMA1i0ii);
139
end loop;
140
end if;
141
end process;
142
BFMA1lOOLl <= hwdaTA when (BFMA1iooLL = '1') else
143
BFMA1Oooll;
144
HRData <= prdATA after BFMA1oL00;
145
hreADYout <= BFMA1o01OL or (PREady and BFMA1olOLL
146
and BFMA1i11OL
147
and not pslVERr) after BFMA1Ol00;
148
HresP <= BFMA1L01ol after BFMA1OL00;
149
PSel <= BFMA1i01Ol after BFMA1OL00;
150
PaddR <= BFMA1O11ol after BFMA1ol00;
151
pwRITe <= BFMA1L11ol after BFMA1OL00;
152
peNABle <= BFMA1i11Ol after BFMA1OL00;
153
pwdaTA <= BFMA1loOLL after BFMA1ol00;
154
end BFMA1io1OL;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.