HierarchyFilesModulesSignalsTasksFunctionsHelp

//-////////////////////////////////////////////////////////////////////-/
//  (c) Copyrights 1996. All Rights Reserved
//
//      Virtual Chips, Inc. (formerly RAVIcad, Inc.) /CAE
//      Company confidential and Proprietary information.
//      This information may not be disclosed to unauthorized individual.
//
//  @(#)arbiter.v	1.3 7/16/96 arbitration module 
//
//-////////////////////////////////////////////////////////////////////-/

/*
      There are two arbitration methods here.
      Variable fairness controls the priority on the bus.
      fairness = `FALSE  => Fixed priority;
      fairness = `TRUE   => Fairness: Bus masters get control 
                               on a cycle to cycle basis.

      Fixed priority dictates that agent 0 has the highest priority
      while agent 7 has the lowest. During the arbitration cycle, 
      the agent with the highest priority will always win the bus.
      This scheme may lock out certain low priority agents on the
      PCI bus.
*/


`timescale 1ns/1ns

`ifdef VERSION
`else

`define VERSION "2.09g"
`define TRUE  1
`define FALSE 0

`define INTERRUPT_ACKNOWLEDGE   4'b0000
`define SPECIAL_CYCLE           4'b0001
`define IO_READ                 4'b0010
`define IO_WRITE                4'b0011
`define PCI_RESERVED1           4'b0100
`define PCI_RESERVED2           4'b0101
`define MEMORY_READ             4'b0110
`define MEMORY_WRITE            4'b0111
`define PCI_RESERVED3           4'b1000
`define PCI_RESERVED4           4'b1001
`define CONFIGURATION_READ      4'b1010
`define CONFIGURATION_WRITE     4'b1011
`define MEMORY_READ_MULTIPLE    4'b1100
`define DUAL_ADDRESS_CYCLE      4'b1101
`define MEMORY_READ_LINE        4'b1110
`define MEMORY_WRITE_INVALIDATE 4'b1111

`define MSGMSK_DMA           0 // Detected Master Abort
`define MSGMSK_DTA           1 // Detected Target Abort
`define MSGMSK_DBPRC         2 // Detected Bad Parity on Read Cycle
`define MSGMSK_GDWFA         3 // Grant Deasserted when FRAME# is active
`define MSGMSK_DBPWC         4 // Detected Bad Parity on Write Cycle
`define MSGMSK_DPERR         5 // Detectedd PERR#
`define MSGMSK_DIAC          6 // Detectedd Interrupt Acknowledge Command
`define MSGMSK_DSPC          7 // Detectedd Special Command
`define MSGMSK_DRSVDC        8 // Detectedd Reserved Command
`define MSGMSK_NDVSLP2       9 // No DEVSEL# after devselWait+2
`define MSGMSK_CYCABRT      10 // Cycle Aborted (Mabort/Tabort)
`define MSGMSK_DBPADC       11 // Detected Bad Parity on Address Cycle
`define MSGMSK_DTASA        12 // Detected Target Abort with STOP# Active
`define MSGMSK_BBA64C       13 // Bad Boundary Address for 64-bit Cycle
`define MSGMSK_DSERR        15 // Detected SERR#
`define MSGMSK_DIBE         16 // Detected Illegal Byte Enables
`define MSGMSK_DRMMC        17 // Detected Reserved Mode Memory Cycle

`endif

module arbiter_vc
`ifdef VCS  // VCS Release 5.0.1A
`protected
:R2^KdOJ1Y3&<_b@=@838KC[8#6)=&\b,/d;
<,c\100;@a3EeAa0>TPC/Ue^4I\Q4OY3_4RdFVI^_[^_^dEO_)aeP8-C3J?;ACAE
1RG8^b3T[@21+/c&gD9YK0JGJb[55MLDKa4IK>[,]5c::eHK7I,LWZ_-DB3CY)WI
LfdaD],_[>@Ncc7Rd+g]Ld;K)e
WHWVe2dVB(SHDYAQ6a5#J.9e_W?Ye(ZH(b\@4&Z^_>,I1_5=V_[B-S/WQ&^O;.[>
c>5)fIFYabLa7Z,>,]XR.KaO)3PK/H43OH4c>X\MD-R?G\f=TYD24U9]&J)e/.(2
PfOUFEgI>BbV)31]_SWKTSeY)a6KbX[^U,;KaGe6?@>J-N7\8K3e:Y/>CV;0P#R@
#7A&79S(MP=3.\#Zc7G\RJ_=S?eTRRIKV,2Cc^DG>S2032gJ3F@V3cG7GR@?2KC@
:4QU4(4S_4bSSH(e9PB7+H70f3L(T1O:+CcgKFMO))&I23+0dN=-:-4^BW6Q\VR[
RP1=DD16.T=8Pa&F(KT](\W]MSBYNd+.Xe08/.9R@d>(b)4g1DcJ/=>6+6
#OL:)Md7O;USEcW\E)G4A@P(.H8>Ra@=/&:S2(5GLW>[F:e]WSA;=&1]MbJHSHI(
V@3S[FfHD?.<(PAW0gK5a=eTS[aB3=+bFC_S04L<5SOf0UHZeP-1gT8)/EF0YcA2
@,[CSR,@H5>7ULSY;f5\/O++I(IgUU&6T_d>-g5(5b_GXHU_7EF3Aeg4cDcVbZ-3
L_[WR-?9-U36.M__:WC8K^B#_b5W<0N;c=]\IP?@4HOT:bKeb]LHC6_Z_/3G:\AJ
[R=#:RYTU7XMC@MQK6&[=(+7dE,;0gW#/XC.V_>1KUV@B1#7BT0U]PFR2OWY20>8IV]g=<]0SMaaCLS0&=F@L-3?Z=MH;YTRLM9gcCe-JN_\Ug+C-C/0SYC23
2A[]d+2-:B+&Gef1Fdca7\#)N)+OC[3V)J5]?]ED(D@VIV/E?HJ6KX0X\I5;P;/94APb\dYSZ#:f;IL6M-T<-6UC,D)5S19:>513ecNU;gQVa5(6+2Qb=[a.PUa
P_R/;fY@6V98bEQM;PSXM#a.AU9eVBBeFe7[.6X^bJ6/]O
@>N#F0\N9-)7I:b)&EeHe/V)MI(VaD:RHN,)55:9Rf)HD7/HAYad.[E[:,Y;>LR#
d;@30W7d.K8a:,MPF4.(MgSAbSY@R\K51UJI\P88]Y4PAKLPNY4W7Ed>GLeDVCKW
Y]K3D2b])L+R7524-CfDK:)OF<(V3S[c,b=b<-
#665Ba?Wd^YcT157X:_[9YJ,@A:RL>IY@LWF:482NEc(P^a?>.17,+B/-ZEXD?7ZfY9AR#A&-\2GU@Wf]S#SNQfG31fLNf7g,9C5=,e=Yca^2L-M3N#:S1BANb
K<69a2A^7&UY;cGPQ4F/@DKVgSAaJAEEDB9g:?S-QfH.W.7A\?^bVO:&fZ
[C[W;EO>?(-;1+R[^Vb[<90DS0@H?NP<+TS[5e@3J)L(#6&:>f>KTXPGM0.K?76B
.-QDM:-#c/&/dg7?GU2XW/H_J0dg+KGX&-d&A:Q@(6@8_ZG]RHH5a,
EbIW0R8EIC6=GST?HgBZJL2b4P_O2ga)Sd>-:>Y:RYD<\E1]T2bUO=^^1&Y/49Q[
MDH^8ETJcNBAOE;J)J:.a99T:
6LKZ2#7bR^bO]OZ6-W#Q]]dI1fcOH_87NKGaEA.#S>Z]eXaB^YETMJ3UYPQ]c02B
Y4]2_4>/QZgBdR^fJ,dNF@K[Kf_?eCc6M(4.N3W]C?P
?NLUR+HZH-/(&E=PFZ:T[3dN;PWSM:Z5-F?ca:Z;,1+Q25VHeKD-=@28A,&cBK2V
2UF\#b6#)Zg0EXVc,@9L_3]FW9P(L=2NQg_-3F41BCB&2FM6>>&P+HDMb@^I_]?b
WDW\1XgCEWXKLaP]QBQg[QRb\c<7+/UVN]K_0DU7eQE])?
+)CET,e1]M6[)geE9;_-5C?B)BLg/13YSaY23C6GgJ@9JD.LTc+5>HOU-#JeR&>P
4E,FBe<4Q;LJG]+G6EI3JH0Y.\GecMf.X54\IH_:P>M@gaGZUcZa,RTWJ3+#fID.
J[,YVB\@808(EP.I8M3^H4V)(N=QYgOF0c/YHD29c(G0H,=@WL7\1V=gbA8\fA.X
^C8/6f\S@A:[C=Y_e9&41,2_+PTH1YR@OUgRHF:1b32,OFSU(g)9RAcH?Q42+fD?
>K?>/OeMcb52QXfe?geMZE&R5DH=F(T/1SMSb&YUX#T+-V(
UB:]M8TcQ>FeH^NF+;V:>>F,Gg)4@TB+R@]MeX>dVXGK0@&Y\@gY4CE
>\Ha;B7B<+eDU5V<1&.:=\QMD+-,+6T2G^?@RDf/c0D88PC^7O;WH_O=dIJ&.93P
OJY9WaeeF>3ZWLL6.bBU75Sg+5I.[&N1)7e>\;Cc+XeF]](+b>V70E8AI08N,T^e
T39<)#G.#[]&-5f(.FFd4NgT=V\P;#@GBW\L/3P(IeR8K
FCUYC@Eb1<;>a\)\&[eS6X+A@A\Z(9?0\QD,=&gdd-:\;?SI/(HYVLH/)>.e]f>1SRPNMZ1Ab^M^gDN;,9L.aP,SIR8(;1.gKdaQ,QeC^K2:YEFF^bK6B
If;3&NV[AIEB:J;&DM((Qf>aW)F-#M[WQK5VI0+AI@aC,Hd[eUH5CPdaS;KT.TI^
7#OeODX;,54^).X\W6-;0/AQ;Z_3+Bc;0U\1T=XKV\D4#5bJ.IgXg,7>LN+EZOM0
)D1NF;Ua2=+Wg=VgJ<:a<,8?WZT?DRBZG^GOCG+b).#g#7V\)&NAN>Tb/JA-A3V.eB/>>)<//H(,&CW.5^Va.-)Tc0BB
GN;SW?,PC5a>aJA9Xd-K#@=@Z1eg.b6[DW\Hf>AOP7/b:#^dJUfEcF1I)bE5A7M/
cNN+]X^(A38F_/Ld(^Pf?;fC7OK8/aK.D1VR)&AEg<
CG0WO1A[ZH@+YXRB)KYDa]\X&c?=E#2_-#SgGPQEEHP:LbfBFKae:^GVP-M;=4>.aaC/2W;cTN#.D]&O-YNeVg_#._=391a.0?4bC20Ne:28.4>24^Q_3:W5g/0IP
=KfeOb7f<\C&FCO.\FEcLYDg/f,,?Y7NGZ,f^HAXTYfaK1:e85W)Yd]X&U\gB3[4ZZ^H0U[QgB+2#E&;&7[X5CJQDOBa.+fU
eHKOM8T(C]K/.Q#;2E;R6^BMRe4KL:PE?HJa^[=ZSgd_Z@.^f;cAJ5N6XB;,B8>M
N[=\=ABT+MbQCEXL<6^JU3f)#C\IJEPQY+_;-9fTEC\MHT^g2f\e/9N&TTXU67Eg
WY8MBG-D>7GRQE(C1?FeJ6D6=-V^?VU2HG@[Z8Y.dIR^c6+_C)GJ(JAaP]MOS5gX;2f0Add@]Z
bUG7^]-IHJ>_,WDYaLCUc4(R],YH[,L18TcOXR5>:OfAKdW=68-//XeD\)&,@RI
>^e&g/U/b,6^.1(e9?#;./YFP4&Q.b=4&2:06LDT1Q30@W?>f]gI?[KFP?C>T/dIB?U7PIIJ604F=:LV>OIKZP240DMK
BQ\Q_dJA85O&_KP3(]]^>EWTD^>-2(XQ_I]b?XKX3f6-aTBS5C_DG\fd=<,V)&4X
7SFGEU9-(LI7U;>2MU(\^31OM?8(56bDM_g6[:C,@]aAYROV(7>]^cc@19IZ6B=f
L=AM#\QB52/TeW_Q[VDBNGW6I8aT(BfSHN?4X[ED5--8AF&@A5\e\1+fVU7ER2b1
d>4^GSU:4)QVFJ0/G+3((T[XB]4PU,/),^0Rc>JQaQ>_Z,OMY9.WYFT3(AN4Z[C_
]?)?f-/2[NKc2&^,_4[1GR3[\8_&ZGefA6<@^QG3PA\132dY5?VWR?1a@1K3W@\B
c,>cd\)T=1QXID3H64DCJ+CPN#?JfUb@>CJ.WRMXNR5^^KL:UO=B)VNCOF5YZSaO
D[)<_^HT_T]=MY2?_MQB&9MBVc1VaK/TTM2fPC9Q+EFGE/<(H,AfWLM;X[8G4)d:9UCSQ<#AJ;>RG\SQ,
d=8ZXffQ:g2c]a7/b.0c)dR3<:.6d>8NL?O1[92>NRJ^J4AgT)ZYHWe2NOQ\Rg8J
eH.#>7^1QL>a#H(5aF>G,L0<=
TL@9-B:Ad2#=@fH1YZL)^D]0(c0?Kc[9]).?&Z8E2S2#T@dYJGP8d-17fC/f+7,:42a@PW2\WA72QBM(.5.X_T3D-L9JKZ3?X,
caZV>G0_K5:)Gc1d(5UVbG13^OG+LMNTP_<4VO+8&KYW^I^eR\R(LI/f07gF9D#T=E]Nb?6-BH^dVT:?QEA^GD(b#B.f
T,UAG;4d+:4E/0L,L&Z189I.R-:A=\6b-IIK1f1:VP6A4+]]1;H(2L0aD63gf3F9.ZXMXOLe_D#L]U_QA+P1=8gRZWRF^R0MUg=)1Y)^U.43KZ/B,>CJM>\QN2?]
:LZFWX<5)=]?3]T&T2UEP;_Y/-<8UHDbO)4L)H@C,XPb0M-@F7^L<]DW4&^_Y5:NU;
0,,f81E90KO2B#L>D.#0A(-N;AJ2a>-:d[U:,c[_S[>YZLg0SYSCgKTA;^G[)(OL
-cZAG[d@:^S)N\ESIEY9@>IGaC]Z:R]\^43;aX.e/fM)_J5A6e.a[d1?I01
W16?d)5XOW.7Q1.CPWFVcQ.O3[dc5Jd\[>S#1VKSAe.0J_Pf3Mfc?4L_SZ=.e[8B?Mb9<=/SANGTHE1g)H1O:fO&K
@Ca<]#[gIJ-,1Q-G_d4EXSNJ[C800PD\gbG+WLYIWGV9T>Af.KA2O@)BeEU#??C&
D=@W>^>-Y/^ZV9c,e(Ye27J485_OD+&5(&?]YPad2?X3\P:;DV>X4H-[#7aW@dHO<=?XKHH+32.8@6:3#E>OA^-&L]P6CNJ:0ZG[)fFWR#U
^@^TgQEX+(e,CKQ:R4MHa@AC:e))DL(bDJQ1+g;B(N:1d,cOY4V-PT:g84
+0&3E1-L.6GEg>\IeBJBDJ3J.GKK5-;AdB)LdUBc1(7W\123Je4\K\RBPTIM;K.5
[C2V<)@M]VBWLAZAg)9&95_5IVMW-&>@FQ\\_5UVH(^a.]NB^(4PC\@C\e5:+7R8
,IGceU=eCE49ZbA@XZ3=^#7G87f]gWe^DQXNg\aCcX6bBcF7(E_-1XK3?]JaA]N^
#QY)AOVdPFK7d]Y1:<[^13=TaK)=@c9EAYeS=MHY9L4Q>F&_LP_Xc;Mf/<8X;MP;eUB9X@E/?G66:-[WVYM7Fd@K+,9HTH[@/BQB+8ZQ>_2Lbb.Y;0,HV.QAH(;)10gb(;NPMDV5_-3MCBWfRaBCN0I,Y1FL5aK;_5R<-]L
>fYgQW(;=]K^DO;VF(J_&CK-F0Y]ML+5Fd31I&H\KY+?^f)TP(60UZeXZLP3Y(KP
_DYf79N^O:Z((6_SML[.b@NH;/0;+^Y]QT<&^#@.&D_)^[K7@AX#XVMRN@]G^_&Q
VX6b49a7)+bUQ=VV]4=aX-eLDaMB3T?^X?:gB;<,afR?gZFI@eR3ZgC:Zc30/c0F
U]KRU]VJT_1?C,J@g4M?R&fCK-RRZ+Y<@[^)+IV_aK=4Lb#&SLfS;JdVVIDI-R2P
NBW=E/Ked/ZOZ6-:FD;N&+?Q#/W[XbYK+\I[]@C8DWX^V6/[7>BS/e)Q7G#_C)^2
;WIA,DOB[-)SZ/7cA3:RB1;6#K[\UU@@^.5N5C8.KeZONS]fb;NAa^_eK5MFYSTb
Y8c(/eY9e5(9ZUI1F4APT?F:OHH;#\F+Q-,Te3+@9H)+EE>QD@4N\4HWe]Y:USE?
\QaB35:+gOR<;bPCJS&08:4:XXS#:S3-13,K;G7;eaXIEde[0G9IaZ,H_AbD]227
NF.-_?ICJZ\-ARU:/BaH6+H47T?Ae4##3FVPfS+;<22Le(6
5JVe:)0]d==Ab^6.FEJC+\=9#[eHSd6aQAQ=,7ZS9)Z,1F3b&EL2)WG4[=T44+)1
3P]ROF)?)W2BQ=(^DH-A)+DXVV4TR]8ZG:CXZ_;:Q4KUA-N7WDfNP.8_\6C^X@2L
#-#Yg_DI#B+R,c6ZH]Q9\=L-2BF#[Y(Y>G\:Ye\IF.W,1@f6,?9>g2(0,J\c0&ba
Q6OUG55+9B9:-:UXA-A)dT>,6O7+1FOO?QNZ81W>8)[Td9_9V>@J3CgY:5QB&FLQ
;2Jd5O6C,(0d&5g.VDI8?J@##OP[LE/KH1R\:dFG[9IAL7.8TdPM,N[JQ5J3,6;JL)JMBD@.FX3M]+R<5Q-1_e;(EaY96V=5\L
]BU.[NV0/KERbTB=3OI@H1b:c3H[aAO_^P0>e-\)_6c1L2O7RZdIDYB_cQ)K)9.Z
:1_4(f7?g7-\cIF\:cZK_0S]_3dH6fV/JJR/^4)C)SA-PbAeX0KaEb>8W9(>&IbM
#SBEM8.:AD//e/7U5,eY/4AT^2)eQKKZM5V8MX6EdIUJ/44TQc8W@>3->XN:f2\F
dQ=2+991Z42L][BfdAP2#+=]LOZZZF7\XOTX@.ZXA3G>IW0@@81(3RJI?=Z:PQ?c
AEa16;(,S,9NJ@HBe:CTfeN3,:N7ZM)-R>3^7DHOFDRPZUERRHHUYU4J>CD9?K5^,8g>aD7^#HO&QM<)10fNP+2SFAWXg[/b_H+,;0-f]b<7b+EBF>S<(
f/DQgE<]^_\17C83.4UE;]2)ZLAA;N_E[]6AI;c(+6YZ/AF5/(V4YAbSY,_;QO3]
0We3X^5(&N:KbY-a22N\1<+-]Y.bZUSD)T#aJX(CDC5B]L=AHC&@Y5PH9?)_UEQ)\O?a[?8E##20Z<8QBU_RD#6
bXc?NgfBWN/O.^YLeM7/F9NHIL_1^LT_[Q+fNddYg32fHDU0+eP5.F,X08M#/Xdc
04WgN>QLdd5MX0,8QY^UYJeM78+;QC@=db:@FPaDVT+IOG7](cX/.EV;Xb]731a]e2TC
C>/0b1[SMBg0879[\6eb1]X\E?89(_:KLW^J=9U:,V3W=D[JBOe^A5XG2,X?KY=R
OWgg>[IbV\8]6E8/5>gN(D7@(WX;Y&SH>EF[X63,3;7H[1.AR/^Nbbc
FI4(4gBGY+::^C^(WT/2<\c2UOL&CeX/I-9NYGG<96/;)7)18#/=f\=&@@)IVU2dK3HZ08-+7CD-_@MZe/DD\@EB6P:23=Z6ad;JX.YE-D=(78.[.c4NBB&3
ae326XL1WA:);\C?#(G[XW3Red\<&H>[HL]0B_Dg.VXMXPNgSHIBH]/ge\XA6>Gf
N3_E@.b&fF+@ABVV:QX0c?X1-_F>e+2&(C8M(9Z]9>9BAUa4>0ZY7@SK5>fAJa]f
Qb957\e^fVARaMaJ,B+YN+T:KJd=(HN&-a^\#17F)2JIfK)@X+MA\^KL#;+Hf(JU
41X][ES)38K5dZOT_cY1YF.3^LYS7g#JR+6KUFXe@6YUGTR1#A;R65R52b0PFabH
IF3:A)TT])Y59KaIdNfJD#F/4#R#UbJ7(IKFJWY5O>KYBb7S?0NF>T#JCME8Q=RSB],dQWOC/0ZRR(a-+C^0^+#P6=:RAW@?.
4TLO=c.[5bV,VL/@YCdUQP8bY@>GO8]aPa)8+[NHe2N2808&Q.F>0DE4&GF6Z+IZ
.(QU\E)YQ1_X&G.25F3XCdY<0E5:69eN5TNO(4f+2A@>Y9II:,cU9fKdB,S?ff<8
73&(.O8V9[gC0TLd_IAE)B+##PLLIZAcH/>O@PI#WWT]^&@FA-:-VU)M./f-fVGL
29DH<&LI3F,\J65]e4[UC(388O_]LfW.\FW6K9KR3V(b\QUDUOR;]T@#>Z0_M5\^/f:fU^A5N
&8CHKIEc],JK32>Q.6ZYX8&5AK:S_9L;>HfePAJFK<3aN8@a1+SN1N&P?VWPMN+?
VM)K2cI0QT_NEgA\)Cd]P-c&ZWXOHI]Z=@>XgOU\>^+)>R:[fGJ[bHN&gWBeB@^H
:@a8/;;QORS6a-0&LWUQ\^EPHI9L(]#a.d@ZNb4A-:D^1adX4dZTVK652;.FEVd]
AIQbMG7SDFZ#.;^3R>O,PQW.ZS@=&d9LM@PB=CP?dPK8):[P;MNUM6?)&1EA9ZWb
B:=dI;M>__-I9TD]&F8W49H&/D[ZH4M/-F+KYcHbXO5cMRd[F(PEJS-#;;DAD]>7QDFFNRFY+S5RN<9-($
`endprotected
`endif
endmodule          // end of bus_arbitration module

HierarchyFilesModulesSignalsTasksFunctionsHelp

This page: Created:Thu Aug 19 12:02:34 1999
From: ../../../sparc_v8/system/rtl/arbiter_vcs.vp

Verilog converted to html by v2html 5.0 (written by Costas Calamvokis).Help